#include <MieSilicateGrainComposition.hpp>
Public Member Functions | |
MieSilicateGrainComposition (SimulationItem *parent) | |
double | bulkDensity () const override |
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 | |
MieSilicateGrainComposition () | |
![]() | |
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 = MieSilicateGrainComposition |
Friends | |
class | ItemRegistry |
The MieSilicateGrainComposition class represents the optical and calorimetric properties of spherical silicate dust grains, based on the dielectric constants of astronomical silicate taken from Bruce Draine's website.
The optical properties are obtained from a file containing precomputed values calculated using Mie theory. Sebastian Wolf's Mie program MieX was used to do the computations (it allows for large grains). This dust mixture is similar to the DraineSilicateGrainComposition class, except that the current class contains optical properties over a much wider grain size range: the current dust mixture contains 301 grain sizes ranging from 1 nm to 1 mm, whereas DraineSilicateGrainComposition contains 81 grain sizes from 1 nm to 10 micron.
The calorimetric properties follow the analytical enthalpy prescription for silicate given by equation (11) of Draine & Li (2001), properly integrated to obtain internal energy rather than heat capacity. The bulk mass density is set to the standard value of 3000 kg/m3 for silicate grains.
|
inlineprotected |
Default constructor for concrete Item subclass MieSilicateGrainComposition : "a MieX-based Draine silicate dust grain composition" .
|
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), and it's setup() function has been called.
|
overridevirtual |
This function returns the bulk mass density of this grain material.
Implements GrainComposition.
|
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.