PropagationController

Top  Previous  Next

LL_PropagationController

View Inside PropagationController:

LL_PropagationController_Inside

 

PropagationController is a special purpose system class used for setting various propagation modeling options. These options include the mesh parameters, the type of reference wavefront (planar or spherical), spatial filtering and absorbing boundaries, and the types of models to use for point sources and speckle imaging.

The AtmoPath library system contains PropagationControllers, so it is frequently unnecessary to explicitly insert Propagation Controllers into a LightLike system. See the LightLike User Guide for further discussion of the conditions that warrant explicit use f the PropagationController.

A PropagationController can be connected anywhere along the path between an optical source and an optical sensor, and it is required that there be one somewhere on the path, if there is an optical propagation on it. If there are two or more PropagationControllers along the same source-sensor path, the one nearest the source overrides the others. Thus placing a PropagationController on a common path for two or more sources means that it will control the propagation options for all the sensors, unless another PropagationController, typically placed on some non-common part of the path, is used to override it.

The atmospheric dispersion option ("useDispersion" ="true") in PropagationController can still be used, but a separate DispersionController is now available that has greater functionality. (Dispersion allows the treatment of the slightly different paths taken through phase screens by different wavelengths.) The bending of ray paths is calculated relative to a straight path taken by light with the "nominalWavelength".

C++ type

name

value

description

Parameters

GridGeometry

targetGrid


Geometry of propagation grid at sensor aperture

double

xReferenceFocus

0.0

Focus to put in the reference wave (0 or 1e20 unless using SWP)

double

yReferenceFocus

0.0

Focus to put in the reference wave (0 or 1e20 unless using SWP)

constFilter&

oneTimeSpatialFilter


See filter documentation; used to remove high spatial frequency content from initial wavefront

constFilter&

spatialFilter

NullFilter()

See filter documentation; used to remove high spatial frequency content at each propagation step

constFilter&

absorbingBoundary

NullFilter()

See filter documentation; used to remove energy near the edge of the propagation mesh

PointSourceModel

pointSourceModel

NullFilter()

See point source/speckle documentation; sets which point source model is used

SpeckleModel

speckleModel


See point source/speckle documentation; sets which speckle model is used

double

superApDiameter

1.5*Dap

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

double

edgeSigma

5.0*dxy

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

bool

useDispersion

false

Flag, model atmospheric dispersion; don't set here - use DispersionController instead

double

nominalWavelength

0.0

Nominal wavelength (m) for dispersion calculations; don't set here - use DispersionController instead

Inputs

Light

incident

Light()

Describes all light incident from the "incoming" direction

Outputs

Light

transmitted


Describes all light transmitted in the "outgoing" direction