Stellar populations

Populations

Description

This module contains the type for storing IMFs, and the properties of the stellar populations

Quick access

Types:

population

Variables:

popii, popiii

Routines:

compute_ionizing_mass_rate(), create_pop(), get_index_of_mass_cutoff(), init_stellar_populations(), massprobabilityimf(), output_pop(), set_yields()

Needed modules

Types

  • type  populations/population
    Type fields:
    • % f_esc [real] :: ionizing photon escape fraction

    • % ion_m_rate (*) [real,allocatable] :: mass heating rate (M_sun/s) due to ionizing radiation

    • % lbol (*) [real,allocatable] :: bolometric luminosity on Lsun

    • % mass (*) [real,allocatable] :: stellar mass in the bin

    • % n_bins [integer] :: number of bins

    • % n_cutoff [integer] :: Index in IMF array at which “massive” stars begin

    • % n_ion [real] :: Number of ionizing photons per stellar baryon

    • % p (*) [real,allocatable] :: relative likelihood to form star in the bin

    • % pop [integer] :: what stellar population is this?

    • % q (*) [real,allocatable] :: ionizing photon emission rate

    • % sn_energy (*) [real,allocatable] :: Energy of a SN in this bin (erg)

    • % sn_momentum (*) [real,allocatable] :: mass blown out SN (Msun cm/s)

    • % tlife (*) [real,allocatable] :: lifetime

    • % yields (,) [real,allocatable] :: mass blown out SN (Msun cm/s)

Variables

Subroutines and functions

function  populations/create_pop(n, pop)
Parameters:
  • n [integer,in]

  • pop [integer,in]

Return:

this [population]

Call to:

massprobabilityimf(), get_index_of_mass_cutoff(), q_popii(), lbol_ii(), lifetime_popii(), e_sn_popii(), momentum_sn(), q_popiii(), lbol_iii(), lifetime_popiii(), e_sn_popiii()

subroutine  populations/init_stellar_populations()
Called from:

asloth

function  populations/get_index_of_mass_cutoff(nstarmassbin, mstarpop)

This function determins the index where the desired mass is at in the mass bins.

Options:

nstarmassbin [integer,in,optional/default=len(mstarpop)]

Parameters:

mstarpop (nstarmassbin) [real,in]

Return:

n_cutoff [integer]

Called from:

create_pop()

subroutine  populations/massprobabilityimf(p_starmassbin, mstarpop, pop, n_starmassbin)

This routine determins the mass probability of a mass bin. We determine the total stellar mass form in one step first and then draw individual stars from the IMF.

Parameters:
  • p_starmassbin (n_starmassbin) [real,out]

  • mstarpop (n_starmassbin) [real,out]

  • pop [integer,in] :: PopII (2) or PopIII (3)?

  • n_starmassbin [integer,in]

Called from:

create_pop()

Call to:

assert()

subroutine  populations/compute_ionizing_mass_rate(this)

Gas mass heating/ionizing rate from massive stars throughout their lifetimes. Gas density dependent.

Parameters:

this [real]

subroutine  populations/set_yields(this[, yields])
Parameters:
  • this [real]

  • yields (,) [real,in,allocatable]

subroutine  populations/output_pop(pop, fname)
Parameters:
  • pop [real]

  • fname [character,in]

Called from:

asloth

Initial mass functions

Description

This module contains intial mass functions

Quick access

Types:

initial_mass_function, unknown_type

Routines:

kroupa_cumulative_mass_df(), kroupa_cumulative_pdf(), kroupa_m_func(), kroupa_p_func(), kroupa_pdf(), m_func_dummy(), p_func_dummy(), power_law_mass_func(), power_law_p_func()

Needed modules

Types

  • type  imfs/initial_mass_function

    This type acts as a framework to implement additional IMFs. It cannot directly be used Rather, the idea is to create new types and inherit the basic structure from this one Note: This should be implemented as abstract type, but f2py.crackfortrant does not support these yet, which would break the documentation with sphinxfortran

  • type  imfs/unknown_type
    Type fields:
    • % m_max [real]

    • % m_min [real]

    • % slope [real]

  • type  imfs/unknown_type
    Type fields:
    • % m_max [real]

    • % m_min [real]

    • % m_turn1 [real,optional/default=0.08]

    • % m_turn2 [real,optional/default=0.5]

    • % slope1 [real,optional/default=-0.3]

    • % slope2 [real,optional/default=-1.3]

    • % slope3 [real,optional/default=-2.3]

Subroutines and functions

function  imfs/m_func_dummy(this, m1, m2)
Parameters:
  • this [real]

  • m1 [real,in]

  • m2 [real,in]

Return:

res [real]

function  imfs/p_func_dummy(this, m1, m2)
Parameters:
  • this [real]

  • m1 [real,in]

  • m2 [real,in]

Return:

res [real]

function  imfs/power_law_mass_func(this, m1, m2)
Parameters:
  • this [real]

  • m1 [real,in]

  • m2 [real,in]

Return:

res [real]

function  imfs/power_law_p_func(this, m1, m2)
Parameters:
  • this [real]

  • m1 [real,in]

  • m2 [real,in]

Return:

res [real]

function  imfs/kroupa_p_func(this, m1, m2)
Parameters:
  • this [real]

  • m1 [real,in]

  • m2 [real,in]

Return:

res [real]

Call to:

assert(), kroupa_cumulative_mass_df()

function  imfs/kroupa_m_func(this, m1, m2)
Parameters:
  • this [real]

  • m1 [real,in]

  • m2 [real,in]

Return:

res [real]

Call to:

assert(), kroupa_cumulative_mass_df(), kroupa_cumulative_pdf()

function  imfs/kroupa_cumulative_mass_df(this, m)
Parameters:
  • this [real]

  • m [real,in]

Return:

res [real]

Called from:

kroupa_p_func(), kroupa_m_func()

function  imfs/kroupa_pdf(this, m)
Parameters:
  • this [real]

  • m [real,in]

Return:

res [real]

function  imfs/kroupa_cumulative_pdf(this, m)
Parameters:
  • this [real]

  • m [real,in]

Return:

res [real]

Called from:

kroupa_m_func()

Stellar Properties

Quick access

Routines:

e_sn_popii(), e_sn_popiii(), lbol_ii(), lbol_iii(), lifetime_popii(), lifetime_popiii(), momentum_sn(), q_popii(), q_popiii()

Needed modules

Subroutines and functions

function  stellar_props/q_popiii(m)
Parameters:

m [real,in]

Return:

q [real]

Called from:

create_pop()

function  stellar_props/lifetime_popiii(m)
Parameters:

m [real,in]

Return:

lt [real]

Called from:

create_pop()

function  stellar_props/q_popii(m)
Parameters:

m [real,in]

Return:

q [real]

Called from:

create_pop()

function  stellar_props/lifetime_popii(m)
Parameters:

m [real,in]

Return:

lt [real]

Called from:

create_pop()

function  stellar_props/e_sn_popii(m)
Parameters:

m [real,in]

Return:

e_sn [real]

Called from:

create_pop()

function  stellar_props/e_sn_popiii(m)
Parameters:

m [real,in]

Return:

e_sn [real]

Called from:

create_pop()

function  stellar_props/momentum_sn(e_sn)
Parameters:

e_sn [real,in]

Return:

p_sn [real]

Called from:

create_pop()

function  stellar_props/lbol_iii(m)
Parameters:

m [real,in]

Return:

lbol [real]

Called from:

create_pop()

function  stellar_props/lbol_ii(m)
Parameters:

m [real,in]

Return:

lbol [real]

Called from:

create_pop()