#include <FieldStrengthCellLibrary.hpp>
Public Member Functions | |
int | numFieldStrengths () const |
virtual vector< int > | mapping (const Array &bv) const =0 |
virtual int | numEntries () const =0 |
Public Member Functions inherited from SimulationItem | |
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 |
Public Member Functions inherited from Item | |
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 | |
FieldStrengthCellLibrary () | |
vector< int > | mapping (const Array &bv) const override |
int | numEntries () const override |
Protected Member Functions inherited from SpatialCellLibrary | |
SpatialCellLibrary () | |
Protected Member Functions inherited from SimulationItem | |
SimulationItem () | |
virtual bool | offersInterface (const std::type_info &interfaceTypeInfo) const |
virtual void | setupSelfAfter () |
virtual void | setupSelfBefore () |
Protected Member Functions inherited from Item | |
Item () | |
Private Types | |
using | BaseType = SpatialCellLibrary |
using | ItemType = FieldStrengthCellLibrary |
Private Attributes | |
int | _numFieldStrengths |
Friends | |
class | ItemRegistry |
The FieldStrengthCellLibrary class provides a library scheme for grouping spatial cells based on radiation field strength.
The library contains a one-dimensional set of entries corresponding to different strengths of the stored radiation field, parameterized by the quantity
\[ U = \frac{ \int_0^\infty J_\lambda\, {\text{d}}\lambda }{ \int_0^\infty J_\lambda^{\text{MW}}\, {\text{d}}\lambda }, \]
where \(J_\lambda^{\text{MW}}\) is the the local interstellar radiation field in the Milky Way according to Mathis et al. (1983). The mapping from spatial cells to library entries is built dynamically from binning the \(N_{\text{cells}}\) values of \(U\) as calculated from the medium system onto a one-dimensional grid with a user-configurable number of field strength bins.
When an item of this type is used, the names provided by the conditional value expression "NonIdentitySpatialCellLibrary" are inserted into the name sets used for evaluating Boolean expressions.
|
inlineprotected |
Default constructor for concrete Item subclass FieldStrengthCellLibrary : "a library scheme for grouping spatial cells based on radiation field strength" .
|
overrideprotectedvirtual |
This function returns a vector nv with length \(N_{\text{cells}}\) that maps each cell index \(m\) to the corresponding library entry index \(n_m\). In this class the function loops over all spatial cells and calculates the strength \(U_m\) of the radiation field for each of them. Based on these values, a logarithmic grid in \(U\) embracing these values is established,
\[ U_{(n)} = U_{\text{min}} \left( \frac{ U_{\text{max}} }{ U_{\text{min}} } \right)^{n/N_U} \qquad n=0,\ldots,N_U, \]
where \(U_{\text{min}}\) and \(U_{\text{max}}\) represent the smallest and largest values of the field strength found among all cells. Then the function determines for each cell \(m\) the corresponding library entry \(n\).
Implements SpatialCellLibrary.
|
overrideprotectedvirtual |
This function returns the number of entries in the library. In this class the function returns the user-configured number of field strength bins.
Implements SpatialCellLibrary.
|
inline |
This function returns the value of the discoverable integer property numFieldStrengths : "the number of field strength bins" .
The minimum value for this property is "10" .
The maximum value for this property is "10000000" .
The default value for this property is given by the conditional value expression "1000" .