#include <DustEmGrainComposition.hpp>
Public Types | |
enum class | GrainType : int { aSil , Gra , PAH0DL07 , PAH1DL07 , PAH0MC10 , PAH1MC10 , CM20 , aOlM5 , aPyM5 } |
Public Member Functions | |
DustEmGrainComposition (SimulationItem *parent, GrainType grainType, double bulkMassDensity) | |
double | bulkDensity () const override |
double | bulkMassDensity () const |
GrainType | grainType () const |
string | name () const override |
string | resourceNameForEnthalpies () const override |
string | resourceNameForOpticalProps () const override |
![]() | |
virtual double | bulkDensity () const =0 |
virtual string | name () const =0 |
virtual string | resourceNameForEnthalpies () const =0 |
virtual string | resourceNameForMuellerMatrix () const |
virtual string | resourceNameForOpticalProps () const =0 |
virtual bool | resourcesForSpheroidalEmission (bool &resource, double &interpol, string &tableName1, string &tableName2) 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 |
Protected Member Functions | |
DustEmGrainComposition () | |
![]() | |
GrainComposition () | |
![]() | |
SimulationItem () | |
virtual bool | offersInterface (const std::type_info &interfaceTypeInfo) const |
virtual void | setupSelfAfter () |
virtual void | setupSelfBefore () |
![]() | |
Item () | |
Private Types | |
using | BaseType = GrainComposition |
using | ItemType = DustEmGrainComposition |
Private Attributes | |
double | _bulkMassDensity |
GrainType | _grainType |
Friends | |
class | ItemRegistry |
The DustEmGrainComposition class represents the optical and calorimetric properties of one of a selection of dust grain types taken from the data supplied with the DustEM code, described by Compiègne et al. 2011 (AA, 525, A103), downloaded from http://www.ias.u-psud.fr/DUSTEM/.
Through the grainType attribute, this class can be configured to represent any one of the following DustEM grain materials (text copied from the DustEM documentation). Both the optical and calorimetric properties are read from the DustEM data:
The bulk mass density must be configured by the user, although a reasonable default value is provided for each of the supported grain types: 3000 kg/m3 for astronomical silicate, 2240 kg/m3 for graphite and for the PAHs, 1600 kg/m3 for the H-rich carbonaceous grains, and 2190 kg/m3 for the amorphous olivine and pyroxene.
The last three listed grain types are used in the Themis dust model described by Jones et al. 2017 (A&A, 602, A46) and the references therein. Specifically, CM20 represents the amorphous carbonaceous dust grains in that model, aOlM5 (olivine) represents the amorphous silicates with forsterite-normative composition, and aPyM5 (pyroxene) represents the amorphous silicates with enstatite-normative composition.
|
strong |
The enumeration type indicating the DustEM grain type represented by this class instance.
aSil : "astronomical silicate grains (Draine & Li 2007)" .
Gra : "graphite grains (Draine & Li 2001; Li & Draine 2001)" .
PAH0DL07 : "neutral PAHs (Draine & Li 2007)" .
PAH1DL07 : "ionized PAHs (Draine & Li 2007)" .
PAH0MC10 : "neutral PAHs (Compiègne et al. 2011)" .
PAH1MC10 : "ionized PAHs (Compiègne et al. 2011)" .
CM20 : "amorphous hydro-carbon grains (Jones et al. 2013)" .
aOlM5 : "amorphous olivine/forsterite grains (Koehler et al. 2014)" .
aPyM5 : "amorphous pyroxene/enstatite grains (Koehler et al. 2014)" .
|
inlineprotected |
Default constructor for concrete Item subclass DustEmGrainComposition : "a dust grain composition based on DustEM data" .
|
explicit |
This constructor can be invoked by classes that wish to hard-code the creation of a new grain composition object of this type (as opposed to creation through the ski file). Before the constructor returns, the newly created object is hooked up as a child to the specified parent in the simulation hierarchy (so it will automatically be deleted), the grain type attribute has been set to the value specified in the second argument, the bulk mass density has been set to the value specified in the third argument, and the setup() function has been called.
|
overridevirtual |
This function returns the bulk mass density of this grain material.
Implements GrainComposition.
|
inline |
This function returns the value of the discoverable double property bulkMassDensity : "the bulk mass density for this grain material" .
This property represents a physical quantity of type "bulkmassdensity" .
The minimum value for this property is "[100 kg/m3" .
The maximum value for this property is "10000 kg/m3]" .
The default value for this property is given by the conditional value expression "grainTypeaSil:3500 kg/m3;grainTypeCM20:1600 kg/m3;grainTypeaOlM5|grainTypeaPyM5:2190 kg/m3;2240 kg/m3" .
|
inline |
This function returns the value of the discoverable GrainType enumeration property grainType : "the DustEM grain type" .
|
overridevirtual |
This function returns a brief human-readable identifier for this grain composition.
Implements GrainComposition.
|
overridevirtual |
This function returns the name of the stored table resource tabulating the specific enthalpies per unit volume as a function of temperature.
Implements GrainComposition.
|
overridevirtual |
This function returns the name of the stored table resource tabulating the basic optical properties (absorption and scattering efficiencies and asymmetry parameter) as a function of wavelength and grain size.
Implements GrainComposition.