tempusSystem Class TBAtmoPath
TBAtmoPath is part of the WaveTrain system class library

AtmoPath models optical propagation through atmospheric turbulence. The atmosphere is modeled using multiple "phase screens", typically 5-20, distributed along the propagation path. Each phase screen represents the cumulative optical path differences for a slab of atmosphere, and in between phase screens we perform vacuum propagations, using a two-step FFT propagator. The details of the path model (number and placement of screens, turbulence strengths, inner scale, etc.) are specified by "atmosphere specification" (an object of type AcsAtmSpec). Atmosphere specifications can be created using TurbTool, and for certain common cases (e.g. uniformed turbulence, or scaled Clear1) we have also provided a more convenient function call interface. The dimensions of each phase screen dimensions are controlled by a user-defined bounding rectangle for the region of interest at each end of the propagation path. If the specified bounds should be exceeded, each screen will be "scrolled" as necessary. AtmoPath is a composite system class, consisting of a GeneralAtmosphere and two PropagationControllers, and provides a simplified interface for propagation modeling options, which assumes that the same modeling options will be used in both propagation directions, including using planar reference waves and the defaults for point source and speckle modeling, with no spatial filtering or absorbing boundaries. If this is not what is desired, the user may wish to work with GeneralAtmosphere and PropagationController directly.

Tempus Block Diagram Editor Snapshot
Parameters
acsSpec  AcsAtmSpec   specifies all the properties of the atmospheric path model: range, turbulence distribution, number of phase screens, etc.   
mtbSpec  MtbAtmSpec   specifies thermal blooming properties   
atmoSeed  int   random number seed for atmospheric phase screens   -123456789
propnxy  int   propagation mesh dimension (for both x & y)   512
propdxy  float   propagation mesh spacing (for both x & y)   .01
superApDiameter  float   used in modeling point sources and surface speckle; defines a circular region at the aperture plane which in vacuum would be uniformly illuminated   1.8
edgeSigma  float   used in modeling point sources and surface speckle; defines a gaussian round odd at the edge of the superaperture   0.05
xp1  float   used to define phase screen extents; defines lower bound in x at "platform" (z=0) end of propagation path   
xp2  float   used to define phase screen extents; defines upper bound in x at "platform" (z=0) end of propagation path   
yp1  float   used to define phase screen extents; defines lower bound in y at "platform" (z=0) end of propagation path   
yp2  float   used to define phase screen extents; defines upper bound in y at "platform" (z=0) end of propagation path   
xt1  float   used to define phase screen extents; defines lower bound in x at "target" (z=range) end of propagation path   
xt2  float   used to define phase screen extents; defines upper bound in x at "target" (z=range) end of propagation path   
yt1  float   used to define phase screen extents; defines lower bound in y at "target" (z=range) end of propagation path   
yt2  float   used to define phase screen extents; defines upper bound in y at "target" (z=range) end of propagation path   
screenDxy  float   phase screen mesh spacing   
xReferenceFocus  float   used to define propagation geometry; set to zero for plane wave propagation.   0.0
yReferenceFocus  float   used to define propagation geometry; set to zero for plane wave propagation. (ignored at present)   0.0
locFlag  int      0
useDispersion  bool   use atmospheric dispersion calculations   false
nominalWavelength  float   nominal wavelength (m) for dispersion calculations   0.0
Inputs
incomingIncident  WaveTrain   describes all light incident from the "incoming" direction   WaveTrain()
outgoingIncident  WaveTrain   describes all light incident from the "outgoing" direction   WaveTrain()
Outputs
incomingTransmitted  WaveTrain   describes all light transmitted in the "incoming" direction   
outgoingTransmitted  WaveTrain   describes all light transmitted in the "outgoing" direction   
Subsystems

Subsystem icon
  PropagationController    propagationcontroller2
targetGrid  GridGeometry   grid_with_origin_on_mesh(propnxy,propnxy,propdxy,propdxy)
xReferenceFocus  float   -xReferenceFocus
yReferenceFocus  float   -yReferenceFocus
oneTimeSpatialFilter  constFilter&   NullFilter()
spatialFilter  constFilter&   NullFilter()
absorbingBoundary  constFilter&   NullFilter()
pointSourceModel  PointSourceModel   DEFAULT_PSM
speckleModel  SpeckleModel   DEFAULT_SM
superApDiameter  float   superApDiameter
edgeSigma  float   edgeSigma
useDispersion  bool   useDispersion
nominalWavelength  float   nominalWavelength

Subsystem icon
  PropagationController    propagationcontroller
targetGrid  GridGeometry   grid_with_origin_on_mesh(propnxy,propnxy,propdxy,propdxy)
xReferenceFocus  float   xReferenceFocus
yReferenceFocus  float   yReferenceFocus
oneTimeSpatialFilter  constFilter&   NullFilter()
spatialFilter  constFilter&   NullFilter()
absorbingBoundary  constFilter&   NullFilter()
pointSourceModel  PointSourceModel   DEFAULT_PSM
speckleModel  SpeckleModel   DEFAULT_SM
superApDiameter  float   superApDiameter
edgeSigma  float   edgeSigma
useDispersion  bool   useDispersion
nominalWavelength  float   nominalWavelength

Subsystem icon
  TurbBloomAtmosphere    generalatmosphere
acsSpec  AcsAtmSpec   acsSpec
mtbSpec  MtbAtmSpec   mtbSpec
randomSeed  int   atmoSeed
regionPlatform  RectangularRegion   RectangularRegion(xp1,xp2,yp1,yp2)
regionTarget  RectangularRegion   RectangularRegion(xt1,xt2,yt1,yt2)
dxy  float   screenDxy
locFlag  int   locFlag


Connections
propagationcontroller2.incident  <<=  incomingIncident
propagationcontroller.incident  <<=  outgoingIncident
incomingTransmitted  <<=  generalatmosphere.incomingTransmitted
outgoingTransmitted  <<=  generalatmosphere.outgoingTransmitted
generalatmosphere.outgoingIncident  <<=  propagationcontroller.transmitted
generalatmosphere.incomingIncident  <<=  propagationcontroller2.transmitted
Last Saved: Fri Feb 24 08:37:27 MST 2006 by TVE version 2007B