Configuration
Starmatrix reads a configuration file where several input parameters (all of them optional) can be set in yaml format:
z # Metallicity. Default value: 0.02
sol_ab # Solar abundances data. Default value: as09
imf # Initial Mass function to use. Default value: kroupa
imf_alpha # If IMF is salpeter/starburst, this extra param is needed. Defaults to 2.35
imf_m_low # Lower limit (in solar masses) for the IMF. Default value: 0.15
imf_m_up # Upper limit (in solar masses) for the IMF. Default value: 100
m_min # Minimum mass (in solar masses) for the resulting Q-Matrices. Default: 0.98
m_max # Maximum mass (in solar masses) for the resulting Q-Matrices. Default: 40.0
total_time_steps # Total time steps for integration. Default value: 300
binary_fraction # Fraction of binary systems. Default value: 0.15
snia_m_max # Upper mass limit for binaries with SN Ia. Default value: 16 Msun
dtd_sn # Delay time distribution to use for Supernovae. Default value: rpl
sn_yields # Dataset for Supernovae yields. Default value: iwa1998
output_dir # Name of the directory where results are written. Defaults to "results"
matrix_headers # Flag to include headers in the qm-matrices file. Default value: yes
return_fractions # Flag to calculate R: fraction of mass restored to the ISM. Default: False
integration_step # The integration step can be constant in t or in log(t). Default: "logt"
dtd_correction_factor # Correction for the uncertainty in the DTD integral. Default: 1.0
deprecation_warnings # If False Starmatrix won't show deprecation warnings. Default: True
expelled_elements_filename # Filename of ejected data. Defaults to an internal file with
# data for z=0.02 from Gavilan et al, 2006, A&A, 450, 509
# and Chieffi & Limongi, 2004, ApJ, 608, 405
yield_corrections # A map of individual correction factors for items in the ejected data file
Starmatrix will use its internal default values for all params for which no values are provided.
If you want to use an existent configuration file as template for your own, you can run:
$ starmatrix --generate-config
That command will create a config-example.yml
file in the current dir.
Starmatrix uses solar mass (M*) as the reference unit for all quantities, so internally the upper and lower limits for IMF are expressed in solar masses, Delay Time Distributions are expressed as [Supernovae per Year per M*] and the expelled elements file is expected to express data as expelled mass per solar mass, same as the supernova yields.
Initial mass function
The imf
param in the config file can be set to use any of the predefined IMFs from different papers/authors:
- salpeter:
Salpeter 1955
- starburst:
Starburst 1999 (a Salpeter with mass limits in [1, 120])
- miller_scalo:
Miller & Scalo 1979
- ferrini:
Ferrini, Palla & Penco 1998
- kroupa2001:
Kroupa 2001
- kroupa2002:
Kroupa 2002
- chabrier:
Chabrier 2003
- maschberger:
Maschberger 2012
The default value is kroupa2002
. If you want to use your own IMF you can do so subclassing the IMF class.
The IMF will be normalized integrating in the [imf_m_low, imf_m_up]
mass interval
(default: [0.15, 100]
, except Starburst
: [1, 120]
).
Solar abundances
The sol_ab
param in the config file can be set to use any of the available abundances datasets from different papers/authors:
- ag89:
Anders & Grevesse 1989
- gs98:
Grevesse & Sauval 1998
- as05:
Asplund et al. 2005
- as09:
Asplund et al. 2009
- he10:
Heger 2010
- lo19:
Lodders et al. 2019
The default value is as09
. If you want to use your own abundances data you can do so subclassing the Abundances class.
Delay Time Distributions
The dtd_sn
param in the config file can be set to use any of the available Delay Time Distributions for supernova rates from different papers/authors:
- rlp:
Supernova rates from Ruiz-Lapuente et al. 2000
- maoz:
The DTD of Type Ia supernovae from Maoz & Graur (2017)
- castrillo:
DTD of Type Ia supernovae from Castrillo et al. (2021)
- greggio:
DTD of Type Ia supernovae from Greggio, L. (2005)
- chen:
DTD of Type Ia supernovae from Chen et al. (2021)
- greggio-CDD04:
DTD from model Close DD 0.4 Gyrs from Greggio, L. (2005)
- greggio-CDD1:
DTD from model Close DD 1 Gyr from Greggio, L. (2005)
- greggio-WDD04:
DTD from model Wide DD 0.4 Gyrs from Greggio, L. (2005)
- greggio-WDD1:
DTD from model Wide DD 1 Gyr from Greggio, L. (2005)
- greggio-SDCH:
DTD from model SD Chandra from Greggio, L. (2005)
- greggio-SDSCH:
DTD from model SD sub-Chandra from Greggio, L. (2005)
- strolger-fit1:
Phi function from Strolger et al (2020) with (ξ, ω, 𝛼) = (10, 600, 220)
- strolger-fit2:
Phi function from Strolger et al (2020) with (ξ, ω, 𝛼) = (110, 1000, 2)
- strolger-fit3:
Phi function from Strolger et al (2020) with (ξ, ω, 𝛼) = (350, 1200, 20)
- strolger-fit4:
Phi function from Strolger et al (2020) with (ξ, ω, 𝛼) = (6000, 6000, -2)
- strolger-fit5:
Phi function from Strolger et al (2020) with (ξ, ω, 𝛼) = (-650, 2200, 1100)
- strolger-optimized:
Phi function from Strolger et al (2020) with (ξ, ω, 𝛼) = (-1518, 51, 50)
Supernovae yields
The sn_yields
param in the config file can be set to use any of the available supernova yields datasets from different papers/authors:
- iwa1998:
Data from Iwamoto, K. et al., 1999, ApJ 125, 439
- sei2013:
Data from Seitenzahl et al. 2013, MNRAS 429, 2, 1156–1172
- ln2018-1:
Data from Leung & Nomoto 2018, ApJ, Vol 861, 2, Id 143, Tables 6/7
- ln2018-2:
Data from Leung & Nomoto 2018, ApJ, Vol 861, 2, Id 143, Tables 8/9
- ln2018-3:
Data from Leung & Nomoto 2018, ApJ, Vol 861, 2, Id 143, Tables 10/11
- ln2020:
Data from Leung & Nomoto 2020, ApJ Vol 888, Issue 2, Id 80
- br2019-1:
Data from Bravo, E. et al., 2019, MNRAS, 482, Issue 4, 4346–4363, Table 3
- br2019-2:
Data from Bravo, E. et al., 2019, MNRAS, 482, Issue 4, 4346–4363, Table 4
- gro2021-1:
Data from Gronow, S. et al., 2021, A&A, Tables 3/A10 He+Core detonations
- gro2021-2:
Data from Gronow, S. et al., 2021, A&A, Tables 4/A8 He+Core detonations
- mor2018-1:
Data from Mori, K. et al, 2018, ApJ, 863:176 W7
- mor2018-2:
Data from Mori, K. et al, 2018, ApJ, 863:176 WDD2
Integration step
By default integration steps are constant in log(t) but this behavior can be changed via the integration_step setting, that can take these values:
- logt:
Integration step is constant in log(t), so it is smaller for short-lived stars and gradually increases when time increases (stellar mass decreases). The total number of steps should be set using the total_time_steps setting
- t:
Integration step is constant in t. Less efficient than log(t) but can be used to study specific intervals. Should be tuned with the total_time_steps setting
- two_steps_t:
The integration will use two time steps: [half the lifetime of a 100 solar masses star for the given metallicity] as time step for stars bigger than 4 solar masses, and 100 times that for less massive stars. If this option is selected the total_time_steps setting is ignored
- fixed_n_steps:
The integration will take exactly the number of time steps specified in the next two settings (integration_steps_stars_smaller_than_4Msun and integration_steps_stars_bigger_than_4Msun)
- integration_steps_stars_bigger_than_4Msun:
integer number of integration time steps for m = 4Msun to m_max. This option is ignored unless integration_step value is fixed_n_steps
- integration_steps_stars_smaller_than_4Msun:
integer number of integration time steps for m = m_min to 4Msun. This option is ignored unless integration_step value is fixed_n_steps
Ejected data file
The expelled_elements_filename
setting should be a valid path of a text file containing data for expelled elements per stellar mass.
Format:
The file should include a row of data for each stellar mass. Structure of each row should be:
First column: stellar mass
2nd to 19th columns: expelled mass of element i where i is in the following ordered list
H, D, He3, He4, C12, C13, N14primary, n.r., O16, Ne, Mg, Si, S, Ca, Fe, remnants, C13secondary, N14secondary
This data will be used internally to interpolate/extrapolate values for all the mass range of the model.
There is a special case: When using the combination of yields from Cristallo et al. 2011 (for low mass stars) + Limongi & Chieffi 2012 (for massive stars) data needs to be corrected because for non solar metalicities they don’t follow solar scale. Starmatrix will perform this correction automatically if the name of the file with the ejected data includes ‘CRI-LIM’ or ‘CRI_LIM’.
Yield corrections
Using the yield_corrections
setting you can specify correction factors for the yields contained in the ejected data file.
This setting is a map of key: value pairs.
The allowed keys correspond to the elements included in the ejected data file:
H, D, He3, He4, C12, C13, N14p, n.r., O16, Ne, Mg, Si, S, Ca, Fe, remnants, C13s and N14s
Example:
If you want to multiply all magnesium data by 2, and all Sulfur data by 0.87 your settings file should include:
yield_corrections:
mg: 2
s: 0.87
Default values
If Starmatrix is run with an empty configuration file or using the file generated by the command starmatrix --generate-config
with no modifications the set of default values that will be used for each parameter are the following:
- z:
0.02
- sol_ab:
as09
- imf:
kroupa
- imf_m_low:
0.15
- imf_m_up:
100
- m_min:
0.98
- m_max:
40.0
- total_time_steps:
300
- binary_fraction:
0.15
- dtd_sn:
rpl
- sn_yields:
iwa1998
- output_dir:
results
- matrix_headers:
yes
- return_fractions:
False
- integration_step:
logt
- dtd_correction_factor:
1.0 # No corrections
- deprecation_warnings:
True
- expelled_elements_filename:
data for z=0.02 from Gavilan et al, and Chieffi & Limongi
- yield_corrections:
# No corrections
This set of values is a mix of solar values were possible and common options from the literature for the Milky Way for star masses from 0.98 to 40 Msun without correcting yields or SN factors.