TBAtmoPath

Top  Previous  Next

RESTRICTED AVAILABILITY NOTICE:

The thermal-blooming components of LightLike are only available with specific permission from the government sponsor.  Contact TimeLike Systems for details.

 

LL_TBAtmoPath

View Inside TBAtmoPath:

LL_TBAtmoPathInside

 

TBAtmoPath 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 PropConfig, 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 TurbBloomAtmosphere 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 TurbBloomAtmosphere and PropagationController directly.

 

C++ type

name

value

description

Parameters

AcsAtmSpec

acsSpec


specifies all the properties of the atmospheric path model: range, turbulence distribution, number of phase screens, etc.

MtbAtmSpec

mtbSpec


specifies thermal blooming properties

int

atmoSeed

-123456789

random number seed for atmospheric phase screens

int

propnxy

512

propagation mesh dimension (for both x & y)

double

propdxy

0.01

propagation mesh spacing (for both x & y)

double

superApDiameter

1.8

used in modeling point sources and surface speckle; defines a circular region at the aperture plane which in vacuum would be uniformly illuminated

double

edgeSigma

0.05

used in modeling point sources and surface speckle; defines a gaussian round odd at the edge of the superaperture

double

xp1


used to define phase screen extents; defines lower bound in x at "platform" (z=0) end of propagation path

double

xp2


used to define phase screen extents; defines upper bound in x at "platform" (z=0) end of propagation path

double

yp1


used to define phase screen extents; defines lower bound in y at "platform" (z=0) end of propagation path

double

yp2


used to define phase screen extents; defines upper bound in y at "platform" (z=0) end of propagation path

double

xt1


used to define phase screen extents; defines lower bound in x at "target" (z=range) end of propagation path

double

xt2


used to define phase screen extents; defines upper bound in x at "target" (z=range) end of propagation path

double

yt1


used to define phase screen extents; defines lower bound in y at "target" (z=range) end of propagation path

double

yt2


used to define phase screen extents; defines upper bound in y at "target" (z=range) end of propagation path

double

screenDxy


phase screen mesh spacing

double

xReferenceFocus

0.0

used to define propagation geometry; set to zero for plane wave propagation.

double

yReferenceFocus

0.0

used to define propagation geometry; set to zero for plane wave propagation. (ignored at present)

int

locFlag

0

Low order correction flag

bool

useDispersion

false

use atmospheric dispersion calculations

double

nominalWavelength

0.0

nominal wavelength (m) for dispersion calculations

Inputs

Light

incomingIncident

Light()

Describes all light incident from the "incoming" direction

Light

outgoingIncident

Light()

Describes all light incident from the "outgoing" direction

Outputs

Light

incomingTransmitted


Describes all light transmitted in the "incoming" direction

Light

outgoingTransmitted


Describes all light transmitted in the "outgoing" direction