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

TwoWayDispersionController applies the same dispersion parameters to light traveling in both directions along an optical path, by using a DispersionController for light traveling in each direction.

DispersionController is a special purpose system class used for setting the modeling options to be used in refractive bending (dispersion). A DispersionController can be connected anywhere along the path between an optical source and an optical sensor; if no DispersionController is in the path, then dispersion will not be applied to that beam. If there are two or more DispersionControllers along the same source-sensor path, the one nearest the source overrides the others. Typically, you will want to apply the same dispersion parameters to all propagations, so a single DispersionController should be placed on a common path for all sources. You will need one DispersionController or outgoing beams and another for incoming beams.

The useDispersion flag is used to turn dispersion on or off. Bending of light rays is calculated relative to the path taken by light with the nominalWavelength, i.e., phase screens are centered on the path taken by light with the nominal wavelength. Bending occurs in the vertical direction, but as WaveTrain does not currently contain an earth-based coordinate system the upDirection must be specified by the user as a vector in the (x,y) plane. upDirection will be normalized if it is not a unit vector, and if it is not defined the y axis will be assumed to be up.

Use the WaveTrainInspector system to check that dispersion is being applied to a wave.

Tempus Block Diagram Editor Snapshot
Parameters
useDispersion  bool   Apply atmospheric dispersion calculations   false
nominalWavelength  float   Nominal wavelength (m) for dispersion calculations   0.0
upDirection  Vector<float>   Direction from the center of the earth   TwoVecF(0,1)
Inputs
incomingincident  WaveTrain      
outgoingingincident  WaveTrain      
Outputs
incomingtransmitted  WaveTrain      
outgoingtransmitted  WaveTrain      
Subsystems

Subsystem icon
  DispersionController    indispersioncontroller
useDispersion  bool   useDispersion
nominalWavelength  float   nominalWavelength
upDirection  Vector<float>   upDirection

Subsystem icon
  DispersionController    outdispersioncontroller
useDispersion  bool   useDispersion
nominalWavelength  float   nominalWavelength
upDirection  Vector<float>   upDirection


Connections
outdispersioncontroller.incident  <<=  outgoingingincident
indispersioncontroller.incident  <<=  incomingincident
incomingtransmitted  <<=  indispersioncontroller.transmitted
outgoingtransmitted  <<=  outdispersioncontroller.transmitted
Last Saved: Thu May 04 12:15:15 MDT 2006 by TVE version 2007B