#include <CompositeWavelengthGrid.hpp>
Public Member Functions | |
bool | log () const |
const vector< DisjointWavelengthGrid * > & | wavelengthGrids () const |
![]() | |
int | bin (double lambda) const override |
vector< int > | bins (double lambda) const override |
const Array & | dlambdav () const |
double | effectiveWidth (int ell) const override |
Array | extdlambdav () const |
Array | extlambdav () const |
const Array & | lambdav () const |
double | leftBorder (int ell) const override |
int | numBins () const override |
double | rightBorder (int ell) const override |
double | transmission (int ell, double lambda) const override |
double | wavelength (int ell) const override |
![]() | |
virtual int | bin (double lambda) const =0 |
virtual vector< int > | bins (double lambda) const =0 |
virtual double | effectiveWidth (int ell) const =0 |
virtual double | leftBorder (int ell) const =0 |
virtual int | numBins () const =0 |
virtual double | rightBorder (int ell) const =0 |
virtual double | transmission (int ell, double lambda) const =0 |
virtual double | wavelength (int ell) const =0 |
Range | wavelengthRange () 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 | |
CompositeWavelengthGrid () | |
void | setupSelfAfter () override |
![]() | |
DisjointWavelengthGrid () | |
void | setupSelfAfter () override |
void | setWavelengthBins (const Array &lambdav, double relativeHalfWidth, bool constantWidth=false) |
void | setWavelengthBorders (const Array &borderv, bool logScale) |
void | setWavelengthRange (const Array &lambdav, bool logScale) |
void | setWavelengthSegments (const Array &bordcharv) |
void | setWavelengthSegments (const vector< double > &borderv, const vector< double > &characv) |
![]() | |
WavelengthGrid () | |
![]() | |
SimulationItem () | |
virtual bool | offersInterface (const std::type_info &interfaceTypeInfo) const |
virtual void | setupSelfAfter () |
virtual void | setupSelfBefore () |
![]() | |
Item () | |
Private Types | |
using | BaseType = DisjointWavelengthGrid |
using | ItemType = CompositeWavelengthGrid |
Private Attributes | |
bool | _log |
vector< DisjointWavelengthGrid * > | _wavelengthGrids |
Friends | |
class | ItemRegistry |
The CompositeWavelengthGrid class aggregates a number of "child" wavelength grids configured by the user into a single, composite wavelength grid. All involved wavelength grids (i.e. all child grids and the composited grid) are disjoint wavelength grids, i.e. they inherit from the DisjointWavelengthGrid class. These grids have non-overlapping but possibly adjacent wavelength bins with constant maximum transmission within the bins and zero transmission outside of the bins. Refer to the DisjointWavelengthGrid class description for a more formal definition. Many of the wavelength grids frequently used in SKIRT have these properties. Refer to the list of DisjointWavelengthGrid subclasses for more information.
The wavelengthGrids property specifies a nonempty list of disjoint wavelength grids of any type and with arbitrary configuration options. To construct a single combined grid, each of the child grids is processed one by one in order of occurrence in the user configuration. After initializing the result buffer to an empty grid, the procedure composites each child grid in turn into the current contents of the result buffer. Specifically, the procedure replaces any bins in the result buffer that are overlapped by child bins by those child bins, splitting partially overlapped bins where needed. The characteristic wavelengths of the bins are preserved where possible. If needed, a new characteristic wavelength is calculated for a shortened (partially overlapped) bin from the new bin borders using linear or logarithmic interpolation as indicated by the log configuration option.
It is worth noting the following:
It is possible to nest a composite wavelength grid inside another composite wavelength grid. This allows joining multiple groups of child wavelength grids each with a different setting of the log option. However, this seems useful only in pathetic cases.
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.
|
inlineprotected |
Default constructor for concrete Item subclass CompositeWavelengthGrid : "a wavelength grid composited from a list of wavelength grids" .
|
inline |
This function returns the value of the discoverable Boolean property log : "use logarithmic scale" .
The default value for this property is given by the conditional value expression "true" .
|
overrideprotectedvirtual |
This function constructs the composite wavelength grid from the configured list of wavelength grids.
Reimplemented from SimulationItem.
|
inline |
This function returns the value of the discoverable item list property wavelengthGrids : "the wavelength grids to be composited" .
The default value for this property is given by the conditional value expression "LogWavelengthGrid" .