mxlib
c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo]
|
A class to manage low-frequency sub-harmonic phase screen generation in atmospheric turbulence.
Implements the method of Johansson and Gavel (1994)[11]. This is needed to generate adequate tip/tilt variance with large outer scales.
Definition at line 57 of file turbSubHarmonic.hpp.
#include <ao/sim/turbSubHarmonic.hpp>
Public Member Functions | |
Construction | |
turbSubHarmonic () | |
Configuration | |
void | turbAtmo (turbAtmosphereT *atm) |
Set the pointer to the turbulent atmosphere. More... | |
turbAtmosphereT * | turbAtmo () |
Get the pointer to the AO atmosphere. More... | |
void | level (uint32_t ml) |
Set the subharmonic level to apply. More... | |
uint32_t | level () |
Get the subharmonic level. More... | |
void | preCalc (bool pc) |
Set whether or not to pre-calculate the modes. More... | |
bool | preCalc () |
Get whether or not the modes are pre-calculated. More... | |
Screen Generation | |
void | initGrid (uint32_t layerNo) |
void | screen (improc::eigenImage< realT > &scrn) |
void | deinit () |
Deallocate memory. More... | |
Protected Attributes | |
Configuration Parameters | |
turbAtmosphereT * | m_turbAtmo {nullptr} |
unsigned | m_level {1} |
The subharmonic level to apply. More... | |
bool | m_preCalc {false} |
whether or not the modes are pre-calculated. More... | |
Internal State | |
uint32_t | m_scrnSz |
The wavefront screen size from the layer being simulated. More... | |
std::vector< realT > | m_noise |
std::vector< realT > | m_m |
std::vector< realT > | m_n |
std::vector< realT > | m_sqrtPSD |
improc::eigenCube< realT > | m_modes |
the pre-calculated modes More... | |
void mx::AO::sim::turbSubHarmonic< turbAtmosphereT >::deinit |
Deallocate memory.
Definition at line 386 of file turbSubHarmonic.hpp.
uint32_t mx::AO::sim::turbSubHarmonic< turbAtmosphereT >::level |
Get the subharmonic level.
Definition at line 176 of file turbSubHarmonic.hpp.
void mx::AO::sim::turbSubHarmonic< turbAtmosphereT >::level | ( | uint32_t | ml | ) |
Set the subharmonic level to apply.
[in] | ml | the new level |
Definition at line 170 of file turbSubHarmonic.hpp.
bool mx::AO::sim::turbSubHarmonic< turbAtmosphereT >::preCalc |
Get whether or not the modes are pre-calculated.
Definition at line 188 of file turbSubHarmonic.hpp.
void mx::AO::sim::turbSubHarmonic< turbAtmosphereT >::preCalc | ( | bool | pc | ) |
Set whether or not to pre-calculate the modes.
[in] | pc | the new value of the preCalc flag |
Definition at line 182 of file turbSubHarmonic.hpp.
turbAtmosphereT * mx::AO::sim::turbSubHarmonic< turbAtmosphereT >::turbAtmo |
Get the pointer to the AO atmosphere.
Definition at line 164 of file turbSubHarmonic.hpp.
void mx::AO::sim::turbSubHarmonic< turbAtmosphereT >::turbAtmo | ( | turbAtmosphereT * | atm | ) |
Set the pointer to the turbulent atmosphere.
[in] | atm | the new pointer to an AO atmosphere |
Definition at line 158 of file turbSubHarmonic.hpp.
|
protected |
The subharmonic level to apply.
Definition at line 73 of file turbSubHarmonic.hpp.
|
protected |
the pre-calculated modes
Definition at line 92 of file turbSubHarmonic.hpp.
|
protected |
whether or not the modes are pre-calculated.
Definition at line 75 of file turbSubHarmonic.hpp.
|
protected |
The wavefront screen size from the layer being simulated.
Definition at line 83 of file turbSubHarmonic.hpp.