WaveHolder

Top  Previous  Next

LL_WaveHolder

View Inside WaveHolder:

LL_WaveHolder_Inside

 

WaveHolder is a special purpose system class used to avoid redundant propagations in models where both the atmosphere and all light sources visible to a particular sensor or sensors are known to not change over time. A WaveHolder would be connected somewhere along a source-sensor path, typically on the sensor's side of the atmospheric path, and its parameters (min and max wavelength, and polarization) would be set to match those of the known-to-be-static sources. Then, the first time the sensor (or sensors) ask for the light incident upon them, we model it as usual, going back to the source for its transmitted light, then propagating it across the atmosphere, and through the beam line, to the WaveHolder, where we make a copy of each wavefront received. After that, each time WaveHolder is asked for light by the same sensor (or another one with an identical WaveReceiverDescription) it returns an identical set of wavefronts. Used correctly, WaveHolder can dramatically improve execution speed for an important class of system models. Used incorrectly, in a system where either the atmosphere or the relevant light sources are not held constant can result in hard-to-diagnose errors.

C++ type

name

value

description

Parameters

double

min_wavelength

0.0

Holds waves for waveReceiverDescriptions such that min_wavelength <= rcvr.min_wavelength and max_wavelength => rcvr.max_wavelength

double

max_wavelength

0.0

Holds waves for waveReceiverDescriptions such that min_wavelength <= rcvr.min_wavelength and max_wavelength => rcvr.max_wavelength

int

polarization


If equal to WAVE_POLARIZATION_NONE, holds waves of ALL polarizations; otherwise, holds only waves of polarization specified.

Inputs

Light

incident

Light()

Light containing the Waves to be "sampled and held" or "passed through".  

Outputs

Light

transmitted


Light transmitting copies of the the "sampled and held" Waves or those "passed through".