#include <ToddlersSEDFamily.hpp>
Public Types | |
enum class | Resolution : int { Low , High } |
enum class | SedMode : int { SFRNormalized , Cloud } |
enum class | SFRPeriod : int { Period10Myr , Period30Myr } |
enum class | StellarTemplate : int { SB99Kroupa100Sin , BPASSChab100Bin , BPASSChab300Bin } |
Public Member Functions | |
ToddlersSEDFamily (SimulationItem *parent, SedMode sedMode, StellarTemplate stellarTemplate, bool includeDust, Resolution resolution, SFRPeriod sfrPeriod=SFRPeriod::Period10Myr) | |
double | cdf (Array &lambdav, Array &pv, Array &Pv, const Range &wavelengthRange, const Array ¶meters) const override |
bool | includeDust () const |
Range | intrinsicWavelengthRange () const override |
vector< SnapshotParameter > | parameterInfo () const override |
Resolution | resolution () const |
SedMode | sedMode () const |
SFRPeriod | sfrPeriod () const |
double | specificLuminosity (double wavelength, const Array ¶meters) const override |
StellarTemplate | stellarTemplate () const |
virtual double | cdf (Array &lambdav, Array &pv, Array &Pv, const Range &wavelengthRange, const Array ¶meters) const =0 |
virtual Range | intrinsicWavelengthRange () const =0 |
virtual vector< SnapshotParameter > | parameterInfo () const =0 |
virtual double | specificLuminosity (double wavelength, const Array ¶meters) const =0 |
![]() | |
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 | |
ToddlersSEDFamily () | |
void | setupSelfBefore () override |
![]() | |
SEDFamily () | |
![]() | |
SimulationItem () | |
virtual bool | offersInterface (const std::type_info &interfaceTypeInfo) const |
virtual void | setupSelfAfter () |
virtual void | setupSelfBefore () |
![]() | |
Item () | |
Private Types | |
using | BaseType = SEDFamily |
using | ItemType = ToddlersSEDFamily |
Private Attributes | |
StoredTable< 6 > | _cloudTable |
bool | _includeDust |
Resolution | _resolution |
SedMode | _sedMode |
StoredTable< 4 > | _sfrNormalizedTable |
SFRPeriod | _sfrPeriod |
StellarTemplate | _stellarTemplate |
Friends | |
class | ItemRegistry |
An instance of the ToddlersSEDFamily class represents the family of star-forming region templates from the TODDLERS model suite (Time evolution of Observables including Dust Diagnostics and Line Emission from Regions containing young Stars).
The TODDLERS model calculates the spherical evolution of a gas cloud around a young stellar cluster, accounting for stellar feedback processes such as stellar winds, supernovae, radiation pressure, and gravitational forces; see Kapoor et al. 2023 (MNRAS, 526, 3871) and Kapoor et al. 2024 (A&A, 692A, 79). The spectra were generated using the third-party Cloudy code based on the results of the evolution model.
Configuration Options
This class offers several user-configured options as described below.
sedMode determines how the SED is calculated and scaled:
stellarTemplate determines the stellar population model, IMF, and stellar evolution:
includeDust determines dust processing in the SEDs:
resolution determines the spectral resolution of the SEDs:
sfrPeriod sets the time period over which SFR is averaged and integrated (only used in SFRNormalized mode):
Wavelength Coverage
The SEDs in the TODDLERS library are tabulated over a wavelength range from
Emission Line Artifacts
For the high-resolution Cloud-mode models with includeDust=true, the process of subtracting low-resolution line emission from the total low-resolution spectrum before adding high-resolution line profiles can occasionally produce numerical artifacts. These artifacts appear as sharp drops in flux sometimes up to 5 orders of magnitude below the continuum level. This has been observed particularly around mid-IR lines in the 10-30
Parameter space
The SEDs in the TODDLERS library are tabulated for combinations of the following parameters.
When using SFRNormalized mode, the parameters must appear in the following order, with the specified default units unless overridden by column header info:
where
When using Cloud mode, the parameters must appear in the following order, with the specified default units unless overridden by column header info:
where
Recollapse
If stellar feedback is insufficient to overcome gravity, the evolution of a star-forming cloud includes a recollapse phase, triggering a subsequent generation of star formation. Consequently, at a given point in time, multiple stellar populations of different ages may be present.
In SFRNormalized mode, a constant star formation history is assumed over the past 10 or 30 Myr period (as determined by the sfrPeriod parameter). The model properly accounts for recollapse: any recollapse contribution is pre-integrated over the time evolution (10 or 30 Myr) and cloud mass spectrum (
In Cloud mode, users must apply the appropriate scaling to ensure that the star formation rate follows the input model when recollapse occurs. Assuming SKIRT is used to post-process a galaxy snapshot from a hydrodynamical simulation, this can be achieved with the following steps:
A Python implementation of this algorithm can be found at https://github.com/anandutsavkapoor/reSample
In other words, when a recollapse event occurs, stellar mass is effectively added to one part of the galaxy while being removed from other parts based solely on the time bin in which the recollapse occurs, without any consideration of spatial proximity or physical connection between these regions. Although this approach preserves the galaxy's total star formation rate, users should consider this limitation when interpreting results, particularly for analyses that are sensitive to local star formation or that examine spatially resolved properties of simulated galaxies. The SFRNormalized mode circumvents this issue at the expense of explicit time evolution.
Resource packs
The tabulated data used by the various TODDLERS models is contained in SKIRT resource packs that need to be downloaded separately. Because of the large size of the Cloud-mode tables, the data are distributed over multiple resource packs. It is recommended to download and install only the packs for the required models:
|
strong |
The enumeration type indicating the wavelength resolution
Low : "Low wavelength resolution (continuum and lines at R=300)" .
High : "High wavelength resolution (continuum at R=300 and lines at R=5e4)" .
|
strong |
The enumeration type indicating the SED calculation mode
SFRNormalized : "SEDs normalized by star formation rate" .
Cloud : "Individual cloud SEDs with time evolution" .
|
strong |
The enumeration type indicating the SFR integration period
Period10Myr : "SFR integrated over 10 Myr" .
Period30Myr : "SFR integrated over 30 Myr" .
|
strong |
The enumeration type indicating the stellar template to use
SB99Kroupa100Sin : "Starburst99 with Kroupa IMF (0.1-100 Msun) and single star evolution" .
BPASSChab100Bin : "BPASS with Chabrier IMF (0.1-100 Msun) and binary star evolution" .
BPASSChab300Bin : "BPASS with Chabrier IMF (0.1-300 Msun) and binary star evolution" .
|
inlineprotected |
Default constructor for concrete Item subclass ToddlersSEDFamily : "a TODDLERS SED family for emission from star-forming regions" .
|
explicit |
|
overridevirtual |
This function constructs the normalized probability density function (pdf) and cumulative distribution function (cdf) for the SED with the specified parameters.
Implements SEDFamily.
|
inline |
This function returns the value of the discoverable Boolean property includeDust : "include dust processing in the SED models" .
The default value for this property is given by the conditional value expression "true" .
|
overridevirtual |
This function returns the intrinsic wavelength range of the SED family from the stored table.
Implements SEDFamily.
|
overridevirtual |
This function returns the number and type of parameters used by this particular SED family as a list of SnapshotParameter objects. Each object specifies unit information and a human-readable description for the parameter.
Implements SEDFamily.
|
inline |
This function returns the value of the discoverable Resolution enumeration property resolution : "the wavelength resolution" .
The default value for this property is given by the conditional value expression "Low" .
|
inline |
This function returns the value of the discoverable SedMode enumeration property sedMode : "SED calculation mode" .
The default value for this property is given by the conditional value expression "SFRNormalized" .
|
overrideprotectedvirtual |
This function opens the appropriate resource file (in SKIRT stored table format).
Reimplemented from SimulationItem.
|
inline |
This function returns the value of the discoverable SFRPeriod enumeration property sfrPeriod : "the SFR integration time period" .
The default value for this property is given by the conditional value expression "Period10Myr" .
This property is relevant only if the Boolean expression "sedModeSFRNormalized" evaluates to true after replacing the names by true or false depending on their presence.
|
overridevirtual |
This function returns the specific luminosity
Implements SEDFamily.
|
inline |
This function returns the value of the discoverable StellarTemplate enumeration property stellarTemplate : "the stellar template, IMF, and evolution model to use" .
The default value for this property is given by the conditional value expression "SB99Kroupa100Sin" .