Arsenal Gear Code Architecture¶
Top-Level Population Class¶
The main way that users should interact with the code in python scripts
is through the top level StellarPopulation
class. It has member
classes for both single and binary stellar sub-populations:
StellarPopulation
params
samp_mode (stochastic, integrative)
mstar (total stellar mass)
metallicity (stellar metallicity)
fbin (total binary fraction)
member classes
SingleStarPop
BinaryPop
StellarOutput
Atmosphere
MechanicalFeedback
Yields
methods
__init__()
output(times)
wind_mass_loss(times)
radiation(times, band_data)
sn_rate(times)
yields(times)
save_outputs(times)
Abstract Stellar Population Classes¶
These classes contain information on the initial population of single stars and binaries as well as methods for evolving them, which are stellar evolution instances:
SingleStarPop
params
IMF (kroupa, chabrier, etc.)
Evolution (MIST, PARSEC, etc.)
BinaryPop
params
IMF (IMF of the primary)
Evolution (BPASS...)
fbin_dist (binary fraction distribution)
q_dist (mass ratio distribution)
P_dist (period distribution)
e_dist (eccentricity distribution)
Abstract Stellar Evolution Classes¶
These classes contain interfaces to stellar evolution codes:
SingleStellarEvolution
params
SingleStarPop
methods
props(times) (get stellar properties)
BinaryStellarEvolution
params
BinaryPop
methods
props_i(times)
e(times) (eccentricity evolution)
P(times) (Period evolution)
The props
methods will return StellarProperties
structures which are
containers for all of the properies of a star that are important for its
radiation and feedback.
Abstract Atmosphere Classes¶
This provides the radiative output of a star based on its properties such as bolometric luminosity, mass, radius, effective temperature, metallicity:
Atmosphere
params
StellarProperties
methods
get_band(times, band_data)
get_spec(times)
Abstract Mechanical Feedback Classes¶
Classes related to the return of mass, energy, and elements to the ISM:
MechanicalFeedback
params
inputs
member classes
Winds
Supernovae
Yields
Winds
params
StellarProperties
methods
mdotw(times) (wind mass loss rates)
vwind(times) (wind velocities)
Supernovae
params
StellarEvolution (not necessary depending on choices)
methods
get_mmax(times) (get maximum mass still alive)
Yields
params
wind_ops
sn_ops
methods
yi_wind (wind yields)
yi_sn(m) (supernova yields as a funciton of mass)