|
| | Configuration (SimulationItem *parent) |
| double | angularDiameterDistance () const |
| SpatialCellLibrary * | cellLibrary () const |
| double | dustEmissionSourceWeight () const |
| double | dustEmissionWavelengthBias () const |
| WavelengthDistribution * | dustEmissionWavelengthBiasDistribution () const |
| DisjointWavelengthGrid * | dustEmissionWLG () const |
| bool | emulationMode () const |
| bool | explicitAbsorption () const |
| bool | forceScattering () const |
| int | gridDimension () const |
| bool | hasConstantPerceivedWavelength () const |
| bool | hasDustEmission () const |
| bool | hasDynamicState () const |
| bool | hasDynamicStateRecipes () const |
| bool | hasGasEmission () const |
| bool | hasMagneticField () const |
| bool | hasMedium () const |
| bool | hasMergedIterations () const |
| bool | hasMovingMedia () const |
| bool | hasMultipleConstantSectionMedia () const |
| bool | hasNegativeExtinction () const |
| bool | hasPanRadiationField () const |
| bool | hasPolarization () const |
| bool | hasPrimaryDynamicState () const |
| bool | hasPrimaryDynamicStateMedia () const |
| bool | hasPrimaryIterations () const |
| bool | hasRadiationField () const |
| bool | hasSecondaryDynamicState () const |
| bool | hasSecondaryDynamicStateMedia () const |
| bool | hasSecondaryEmission () const |
| bool | hasSecondaryIterations () const |
| bool | hasSecondaryRadiationField () const |
| bool | hasSingleConstantSectionMedium () const |
| bool | hasSpheroidalPolarization () const |
| bool | hasStochasticDustEmission () const |
| bool | hasVariableMedia () const |
| double | hubbleExpansionRate () const |
| bool | includeHeatingByCMB () const |
| double | luminosityDistance () const |
| LyaAccelerationScheme | lyaAccelerationScheme () const |
| double | lyaAccelerationStrength () const |
| int | magneticFieldMediumIndex () const |
| double | maxFractionOfPrevious () const |
| double | maxFractionOfPrimary () const |
| int | maxPrimaryIterations () const |
| int | maxSecondaryIterations () const |
| int | mediaDimension () const |
| bool | mediaNeedGeneratePosition () const |
| int | minPrimaryIterations () const |
| int | minScattEvents () const |
| int | minSecondaryIterations () const |
| double | minWeightReduction () const |
| int | modelDimension () const |
| bool | needIndividualPeelOff () const |
| int | numDensitySamples () const |
| double | numPrimaryIterationPackets () const |
| double | numPrimaryPackets () const |
| int | numPropertySamples () const |
| double | numSecondaryIterationPackets () const |
| double | numSecondaryPackets () const |
| bool | oligochromatic () const |
| WavelengthDistribution * | oligoWavelengthBiasDistribution () |
| double | pathLengthBias () const |
| double | primaryIterationInitialPacketsFraction () const |
| double | primaryIterationPacketsRamp () const |
| DisjointWavelengthGrid * | radiationFieldWLG () const |
| double | redshift () const |
| bool | scatteringEmulatesSecondaryEmission () const |
| double | secondarySourceBias () const |
| double | secondarySpatialBias () const |
| void | setEmulationMode () |
| virtual Range | simulationWavelengthRange () const =0 |
| virtual vector< double > | simulationWavelengths () const =0 |
| bool | snapshotsNeedGetEntities () const |
| int | sourceDimension () const |
| Range | sourceWavelengthRange () const |
| bool | storeEmissionRadiationField () const |
| WavelengthGrid * | wavelengthGrid (WavelengthGrid *localWavelengthGrid) const |
| template<class T> |
| T * | find (bool setup=true) const |
| template<class T> |
| T * | interface (int upLevels, int downLevels, bool setup) const |
| virtual string | itemName () const |
| void | setup () |
| string | typeAndName () const |
| | Item (const Item &)=delete |
| virtual | ~Item () |
| void | addChild (Item *child) |
| const vector< Item * > & | children () const |
| virtual void | clearItemListProperty (const PropertyDef *property) |
| void | destroyChild (Item *child) |
| virtual bool | getBoolProperty (const PropertyDef *property) const |
| virtual vector< double > | getDoubleListProperty (const PropertyDef *property) const |
| virtual double | getDoubleProperty (const PropertyDef *property) const |
| virtual string | getEnumProperty (const PropertyDef *property) const |
| virtual int | getIntProperty (const PropertyDef *property) const |
| virtual vector< Item * > | getItemListProperty (const PropertyDef *property) const |
| virtual Item * | getItemProperty (const PropertyDef *property) const |
| virtual string | getStringProperty (const PropertyDef *property) const |
| int | getUtilityProperty (string name) const |
| virtual void | insertIntoItemListProperty (const PropertyDef *property, int index, Item *item) |
| Item & | operator= (const Item &)=delete |
| Item * | parent () const |
| virtual void | removeFromItemListProperty (const PropertyDef *property, int index) |
| virtual void | setBoolProperty (const PropertyDef *property, bool value) |
| virtual void | setDoubleListProperty (const PropertyDef *property, vector< double > value) |
| virtual void | setDoubleProperty (const PropertyDef *property, double value) |
| virtual void | setEnumProperty (const PropertyDef *property, string value) |
| virtual void | setIntProperty (const PropertyDef *property, int value) |
| virtual void | setItemProperty (const PropertyDef *property, Item *item) |
| virtual void | setStringProperty (const PropertyDef *property, string value) |
| void | setUtilityProperty (string name, int value) |
| virtual string | type () const |
|
|
double | _angularDiameterDistance |
|
SpatialCellLibrary * | _cellLibrary |
|
WavelengthGrid * | _defaultWavelengthGrid |
|
double | _dustEmissionSourceWeight |
|
double | _dustEmissionWavelengthBias |
|
WavelengthDistribution * | _dustEmissionWavelengthBiasDistribution |
|
DisjointWavelengthGrid * | _dustEmissionWLG |
|
bool | _emulationMode |
|
bool | _explicitAbsorption |
|
bool | _forceScattering |
|
int | _gridDimension |
|
bool | _hasConstantPerceivedWavelength |
|
bool | _hasDustEmission |
|
bool | _hasDynamicStateRecipes |
|
bool | _hasGasEmission |
|
bool | _hasLymanAlpha |
|
bool | _hasMedium |
|
bool | _hasMergedIterations |
|
bool | _hasMovingMedia |
|
bool | _hasMovingSources |
|
bool | _hasMultipleConstantSectionMedia |
|
bool | _hasNegativeExtinction |
|
bool | _hasPanRadiationField |
|
bool | _hasPolarization |
|
bool | _hasPrimaryDynamicState |
|
bool | _hasPrimaryDynamicStateMedia |
|
bool | _hasPrimaryIterations |
|
bool | _hasRadiationField |
|
bool | _hasScatteringDispersion |
|
bool | _hasSecondaryDynamicState |
|
bool | _hasSecondaryDynamicStateMedia |
|
bool | _hasSecondaryEmission |
|
bool | _hasSecondaryIterations |
|
bool | _hasSecondaryRadiationField |
|
bool | _hasSingleConstantSectionMedium |
|
bool | _hasSpheroidalPolarization |
|
bool | _hasStochasticDustEmission |
|
bool | _hasVariableMedia |
|
double | _hubbleExpansionRate |
|
bool | _includeHeatingByCMB |
|
double | _luminosityDistance |
|
LyaAccelerationScheme | _lyaAccelerationScheme |
|
double | _lyaAccelerationStrength |
|
int | _magneticFieldMediumIndex |
|
double | _maxFractionOfPrevious |
|
double | _maxFractionOfPrimary |
|
int | _maxPrimaryIterations |
|
int | _maxSecondaryIterations |
|
int | _mediaDimension |
|
bool | _mediaNeedGeneratePosition |
|
int | _minPrimaryIterations |
|
int | _minScattEvents |
|
int | _minSecondaryIterations |
|
double | _minWeightReduction |
|
int | _modelDimension |
|
bool | _needIndividualPeelOff |
|
int | _numDensitySamples |
|
double | _numPrimaryIterationPackets |
|
double | _numPrimaryPackets |
|
int | _numPropertySamples |
|
double | _numSecondaryIterationPackets |
|
double | _numSecondaryPackets |
|
bool | _oligochromatic |
|
WavelengthDistribution * | _oligoWavelengthBiasDistribution |
|
double | _pathLengthBias |
|
double | _primaryIterationInitialPacketsFraction |
|
double | _primaryIterationPacketsRamp |
|
DisjointWavelengthGrid * | _radiationFieldWLG |
|
double | _redshift |
|
bool | _scatteringEmulatesSecondaryEmission |
|
double | _secondarySourceBias |
|
double | _secondarySpatialBias |
|
bool | _snapshotsNeedGetEntities |
|
int | _sourceDimension |
|
Range | _sourceWavelengthRange |
|
bool | _storeEmissionRadiationField |
Configuration is an abstract class that serves as a central clearing house for overall simulation configuration options including the simulation mode. It declares the getters for these options. Getters that are trivial to compute are implemented right here as non-virtual inline functions, so that querying them costs no more than reading a data member and the compiler can optimize the call away entirely. The handful of getters that must be computed from live simulation state (rather than a value cached during setup) are declared as pure virtual functions instead.
The concrete subclass ConfigurationSetup performs the actual retrieval: during setup, it retrieves many properties and options from the simulation hierarchy, verifying consistency of the configuration and flagging any conflicts while doing so, and stores the results in the (protected) data members declared here. Once this process has completed, any simulation item can call the getters declared in this class to retrieve the information, without needing to know about ConfigurationSetup or link against the (many) other classes it depends on.
The Configuration class is based on SimulationItem so that it can be part of a simulation item hierarchy, however it is not discoverable because it is not intended to be selected or configured by the user.
| bool Configuration::hasMultipleConstantSectionMedia |
( |
| ) |
const |
|
inline |
Returns true if the simulation has two or more medium components and the absorption and scattering cross sections for a photon packet traversing those medium components are spatially constant, so that the opacity in each crossed cell can be calculated by multiplying these constant cross sections by the corresponding number densities in the cell. Otherwise the function returns false.
The following conditions cause this function to return false: Hubble expansion is enabled, some media may have a non-zero velocity in some cells, so that the perceived wavelength changes between cells; some media have a variable material mix; the cross sections for some material mixes depend on extra medium state variables such as temperature or fragment weight factors.
| bool Configuration::hasSingleConstantSectionMedium |
( |
| ) |
const |
|
inline |
Returns true if the simulation has a exactly one medium component and the absorption and scattering cross sections for a photon packet traversing that medium component are spatially constant, so that the opacity in each crossed cell can be calculated by multiplying this constant cross section by the number density in the cell. Otherwise the function returns false.
The following conditions cause this function to return false: Hubble expansion is enabled, there is more than one medium component, the medium may have a non-zero velocity in some cells, the medium has a variable material mix; the cross sections for some material mixes depend on extra medium state variables such as temperature or fragment weight factors.
| int Configuration::modelDimension |
( |
| ) |
const |
|
inline |
Returns the minimum symmetry dimension required of the spatial grid for the model to be simulated correctly, or, if the simulation does not include any media (so that there is no spatial grid), the symmetry dimension of the primary sources.
Because primary sources are not discretized onto the spatial grid, the grid needs to support their symmetry only if the radiation field is being stored (see hasRadiationField()), for example because the simulation iterates over primary emission or includes secondary emission. In that case, this function returns the maximum of the source and media dimension. Otherwise, the grid merely needs to support the symmetry of the media, and this function returns the media dimension. A value of 1 means spherical symmetry, 2 means axial symmetry and 3 means none of these symmetries.
| virtual Range Configuration::simulationWavelengthRange |
( |
| ) |
const |
|
pure virtual |
Returns a wavelength range that covers all wavelengths possibly used in the simulation for photon transport or for otherwise probing material properties (e.g. optical depth). This range includes the primary and secondary source wavelength ranges extended on both sides to accommodate a redshift or blueshift caused by kinematics corresponding to \(v/c=1/3\). It also includes the range of the instrument wavelength grids and the wavelengths used for material normalization and material property probes.
This function must query the live simulation hierarchy (e.g. the instrument system and any items implementing MaterialWavelengthRangeInterface) rather than a value cached during setup, so it is implemented by the ConfigurationSetup subclass.
Implemented in ConfigurationSetup.
| virtual vector< double > Configuration::simulationWavelengths |
( |
| ) |
const |
|
pure virtual |
Returns a list of wavelengths that are explicitly or indirectly mentioned by the simulation configuration. This includes the characteristic wavelengths of all configured wavelength grids (for instruments, probes, radiation field or dust emission) and specific wavelengths used for normalization or probing.
This function must query the live simulation hierarchy (e.g. the instrument system and any items implementing MaterialWavelengthRangeInterface) rather than a value cached during setup, so it is implemented by the ConfigurationSetup subclass.
Implemented in ConfigurationSetup.