#include <ConfigurableDustMix.hpp>
Public Types | |
enum class | ScatteringType : int { HenyeyGreenstein , MaterialPhaseFunction , SphericalPolarization , SpheroidalPolarization } |
![]() | |
enum class | ScatteringMode { HenyeyGreenstein , MaterialPhaseFunction , SphericalPolarization , SpheroidalPolarization } |
![]() | |
enum class | DynamicStateType { None , Primary , Secondary , PrimaryIfMergedIterations } |
enum class | MaterialType { Dust , Electrons , Gas } |
Public Member Functions | |
bool | hasPolarizedEmission () const override |
bool | hasPolarizedScattering () const override |
const vector< GrainPopulation * > & | populations () const |
ScatteringMode | scatteringMode () const override |
ScatteringType | scatteringType () const |
![]() | |
Array | emissivity (const Array &Jv) const override |
bool | hasStochasticDustEmission () const override |
int | numPopulations () const override |
const GrainPopulation * | population (int c) const |
double | populationBulkDensity (int c) const override |
string | populationGrainType (int c) const override |
double | populationMass (int c) const override |
double | populationNormalization (int c) const |
const GrainSizeDistribution * | populationSizeDistribution (int c) const override |
Range | populationSizeRange (int c) const override |
double | totalMass () const override |
![]() | |
double | asymmpar (double lambda) const override |
Array | emissionSpectrum (const MaterialState *state, const Array &Jv) const override |
DisjointWavelengthGrid * | emissionWavelengthGrid () const override |
Array | emissivity (const Array &Jv) const override |
bool | hasContinuumEmission () const override |
double | indicativeTemperature (const MaterialState *state, const Array &Jv) const override |
double | mass () const override |
MaterialType | materialType () const override |
double | opacityAbs (double lambda, const MaterialState *state, const PhotonPacket *pp) const override |
double | opacityExt (double lambda, const MaterialState *state, const PhotonPacket *pp) const override |
double | opacitySca (double lambda, const MaterialState *state, const PhotonPacket *pp) const override |
void | peeloffScattering (double &I, double &Q, double &U, double &V, double &lambda, Direction bfkobs, Direction bfky, const MaterialState *state, const PhotonPacket *pp) const override |
void | performScattering (double lambda, const MaterialState *state, PhotonPacket *pp) const override |
virtual ScatteringMode | scatteringMode () const |
double | sectionAbs (double lambda) const override |
double | sectionExt (double lambda) const override |
const Array & | sectionsAbs (double lambda) const override |
const Array & | sectionsAbspol (double lambda) const override |
double | sectionSca (double lambda) const override |
vector< StateVariable > | specificStateVariableInfo () const override |
const Array & | thetaGrid () const override |
![]() | |
virtual double | asymmpar (double lambda) const |
virtual Array | emissionSpectrum (const MaterialState *state, const Array &Jv) const |
virtual DisjointWavelengthGrid * | emissionWavelengthGrid () const |
virtual Array | emissivity (const Array &Jv) const |
virtual bool | hasContinuumEmission () const |
virtual DynamicStateType | hasDynamicMediumState () const |
virtual bool | hasExtraSpecificState () const |
virtual bool | hasLineEmission () const |
virtual bool | hasNegativeExtinction () const |
virtual bool | hasPolarizedAbsorption () const |
virtual bool | hasPolarizedEmission () const |
virtual bool | hasPolarizedScattering () const |
virtual bool | hasResonantScattering () const |
virtual bool | hasScatteringDispersion () const |
virtual bool | hasStochasticDustEmission () const |
virtual double | indicativeTemperature (const MaterialState *state, const Array &Jv) const |
virtual void | initializeSpecificState (MaterialState *state, double metallicity, double temperature, const Array ¶ms) const |
bool | isDust () const |
bool | isElectrons () const |
bool | isGas () const |
virtual bool | isSpecificStateConverged (int numCells, int numUpdated, int numNotConverged, MaterialState *currentAggregate, MaterialState *previousAggregate) const |
virtual Array | lineEmissionCenters () const |
virtual Array | lineEmissionMasses () const |
virtual Array | lineEmissionSpectrum (const MaterialState *state, const Array &Jv) const |
virtual double | mass () const =0 |
virtual MaterialType | materialType () const =0 |
virtual double | opacityAbs (double lambda, const MaterialState *state, const PhotonPacket *pp) const =0 |
virtual double | opacityExt (double lambda, const MaterialState *state, const PhotonPacket *pp) const =0 |
virtual double | opacitySca (double lambda, const MaterialState *state, const PhotonPacket *pp) const =0 |
virtual vector< SnapshotParameter > | parameterInfo () const |
virtual void | peeloffScattering (double &I, double &Q, double &U, double &V, double &lambda, Direction bfkobs, Direction bfky, const MaterialState *state, const PhotonPacket *pp) const =0 |
virtual void | performScattering (double lambda, const MaterialState *state, PhotonPacket *pp) const =0 |
virtual double | sectionAbs (double lambda) const =0 |
virtual double | sectionExt (double lambda) const =0 |
virtual const Array & | sectionsAbs (double lambda) const |
virtual const Array & | sectionsAbspol (double lambda) const |
virtual double | sectionSca (double lambda) const =0 |
virtual vector< StateVariable > | specificStateVariableInfo () const =0 |
virtual const Array & | thetaGrid () const |
virtual UpdateStatus | updateSpecificState (MaterialState *state, const Array &Jv) const |
![]() | |
template<class T > | |
T * | find (bool setup=true) const |
template<class T > | |
T * | interface (int levels=-999999, bool setup=true) 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 |
![]() | |
virtual | ~MultiGrainPopulationInterface () |
virtual int | numPopulations () const =0 |
virtual double | populationBulkDensity (int c) const =0 |
virtual string | populationGrainType (int c) const =0 |
virtual double | populationMass (int c) const =0 |
virtual const GrainSizeDistribution * | populationSizeDistribution (int c) const =0 |
virtual Range | populationSizeRange (int c) const =0 |
virtual double | totalMass () const =0 |
Protected Member Functions | |
ConfigurableDustMix () | |
void | setupSelfBefore () override |
![]() | |
MultiGrainDustMix () | |
void | addPopulation (const GrainPopulation *population) |
void | addPopulation (GrainComposition *composition, GrainSizeDistribution *sizeDistribution, int numSizes, GrainPopulation::NormalizationType normType, double normValue) |
double | getOpticalProperties (const Array &lambdav, const Array &thetav, Array &sigmaabsv, Array &sigmascav, Array &asymmparv, Table< 2 > &S11vv, Table< 2 > &S12vv, Table< 2 > &S33vv, Table< 2 > &S34vv, ArrayTable< 2 > &sigmaabsvv, ArrayTable< 2 > &sigmaabspolvv) override |
size_t | initializeExtraProperties (const Array &lambdav) override |
![]() | |
DustMix () | |
virtual double | getOpticalProperties (const Array &lambdav, const Array &thetav, Array &sigmaabsv, Array &sigmascav, Array &asymmparv, Table< 2 > &S11vv, Table< 2 > &S12vv, Table< 2 > &S33vv, Table< 2 > &S34vv, ArrayTable< 2 > &sigmaabsvv, ArrayTable< 2 > &sigmaabspolvv)=0 |
void | informAvailableWavelengthRange (Range available) |
virtual size_t | initializeExtraProperties (const Array &lambdav) |
void | setupSelfAfter () override |
![]() | |
MaterialMix () | |
Configuration * | config () const |
Random * | random () const |
void | setupSelfBefore () override |
![]() | |
SimulationItem () | |
virtual bool | offersInterface (const std::type_info &interfaceTypeInfo) const |
virtual void | setupSelfAfter () |
virtual void | setupSelfBefore () |
![]() | |
Item () | |
![]() | |
MultiGrainPopulationInterface () | |
Private Types | |
using | BaseType = MultiGrainDustMix |
using | ItemType = ConfigurableDustMix |
Private Attributes | |
vector< GrainPopulation * > | _populations |
ScatteringType | _scatteringType |
Friends | |
class | ItemRegistry |
The ConfigurableDustMix class represents a fully user-configurable dust mix described by one or more dust grain populations. Specifically, the class can be configured with a list of GrainPopulation instances, each of which represents a particular dust grain population with configurable grain composition, grain size distribution, and size bin discretization. During setup, this list of grain populations is simply passed to the base class.
This item type is displayed only if the Boolean expression "Level2" evaluates to true after replacing the names by true or false depending on their presence.
|
strong |
The enumeration type indicating the scattering mode.
HenyeyGreenstein : "use the Henyey-Greenstein phase function (unpolarized)" .
MaterialPhaseFunction : "use the phase function derived from actual material properties (unpolarized)" .
SphericalPolarization : "support polarization through scattering by spherical grains" .
SpheroidalPolarization : "support polarization through scattering, absorption and emission by spheroidal grains" .
|
inlineprotected |
Default constructor for concrete Item subclass ConfigurableDustMix : "a configurable dust mix with one or more grain populations" .
|
overridevirtual |
This function returns a flag indicating whether the secondary emission for this material mix may be polarized and anisotropic. For this dust mix, the function returns true if the user configured the SpheroidalPolarization scattering type, and false otherwise.
Reimplemented from MaterialMix.
|
overridevirtual |
This function returns a flag indicating whether the material mix supports polarization during scattering events or not. For this dust mix, the function returns true if the user configured the SphericalPolarization or the SpheroidalPolarization scattering type, and false otherwise.
Reimplemented from MaterialMix.
|
inline |
This function returns the value of the discoverable item list property populations : "the grain populations" .
The default value for this property is given by the conditional value expression "GrainPopulation" .
|
overridevirtual |
This function returns the scattering mode supported by this material mix as configured by the user through the scatteringType property.
Reimplemented from DustMix.
|
inline |
This function returns the value of the discoverable ScatteringType enumeration property scatteringType : "the type of scattering to be implemented" .
The default value for this property is given by the conditional value expression "HenyeyGreenstein" .
When a value is entered for this property, the names provided by the conditional value expression "scatteringTypeSpheroidalPolarization:Spheroidal" are inserted into the name sets used for evaluating Boolean expressions.
|
overrideprotectedvirtual |
This function adds the configured grain populations to the dust mix.
Reimplemented from SimulationItem.