tardis.iip_plasma.properties.ion_population module

class tardis.iip_plasma.properties.ion_population.IonNumberDensity(plasma_parent, ion_zero_threshold=1e-20)[source]

Bases: ProcessingPlasmaProperty

Attributes:
ion_number_densityPandas DataFrame, dtype float

Index atom number, ion number. Columns zones.

electron_densitiesNumpy Array, dtype float
Convergence process to find the correct solution. A trial value for
the electron density is initiated in a particular zone. The ion
number densities are then calculated using the Saha equation. The
electron density is then re-calculated by using the ion number
densities to sum over the number of free electrons. If the two values
for the electron densities are not similar to within the threshold
value, a new guess for the value of the electron density is chosen
and the process is repeated.
calculate(phi, partition_function, number_density)[source]
calculate_with_n_electron(phi, partition_function, number_density, n_electron)[source]
latex_name = ('N_{i,j}', 'n_{e}')
outputs = ('ion_number_density', 'electron_densities')
update_helium_nlte(ion_number_density, number_density)[source]
class tardis.iip_plasma.properties.ion_population.LTEIonNumberDensity(plasma_parent, ion_zero_threshold=1e-20)[source]

Bases: IonNumberDensity

calculate(phi_Te, lte_partition_function_Te, number_density, electron_densities)[source]
latex_name = ('N_{i,j}^*',)
outputs = ('lte_ion_number_density',)
class tardis.iip_plasma.properties.ion_population.NLTEIonNumberDensity(plasma_parent)[source]

Bases: ProcessingPlasmaProperty

calculate(phi, alpha_stim, alpha_sp, gamma, coll_ion_coeff, coll_recomb_coeff, number_density, level_boltzmann_factor)[source]
latex_name = ('N_{i,j}', 'n_{e}')
outputs = ('ion_number_density', 'electron_densities')
class tardis.iip_plasma.properties.ion_population.PhiSahaElectrons(plasma_parent)[source]

Bases: PhiSahaLTE

static calculate(g_electron_Te, beta_electron, lte_partition_function_Te, ionization_data)[source]
latex_name = ('\\Phi_Te',)
outputs = ('phi_Te',)
class tardis.iip_plasma.properties.ion_population.PhiSahaLTE(plasma_parent)[source]

Bases: ProcessingPlasmaProperty

Attributes:
phiPandas DataFrame, dtype float

Used for LTE ionization. Indexed by atomic number, ion number. Columns are zones.

broadcast_ionization_energy = None
static calculate(g_electron, beta_rad, partition_function, ionization_data)[source]
latex_formula = ('\\dfrac{2Z_{i,j+1}}{Z_{i,j}}\\Big(                     \\dfrac{2\\pi m_{e}/\\beta_{\\textrm{rad}}}{h^2}                     \\Big)^{3/2}e^{\\dfrac{-\\chi_{i,j}}{kT_{                     \\textrm{rad}}}}',)
latex_name = ('\\Phi',)
outputs = ('phi',)
class tardis.iip_plasma.properties.ion_population.PhiSahaLTECont(plasma_parent)[source]

Bases: PhiSahaLTE

latex_name = ('\\Phi_lte',)
outputs = ('phi_lte',)
class tardis.iip_plasma.properties.ion_population.PhiSahaNebular(plasma_parent)[source]

Bases: ProcessingPlasmaProperty

Attributes:
phiPandas DataFrame, dtype float

Used for nebular ionization. Indexed by atomic number, ion number. Columns are zones.

static calculate(t_rad, w, zeta_data, t_electrons, delta, g_electron, beta_rad, partition_function, ionization_data)[source]
static get_zeta_values(zeta_data, ion_index, t_rad)[source]
latex_formula = ('W(\\delta\\zeta_{i,j}+W(1-\\zeta_{i,j}))\\left(                     \\dfrac{T_{\\textrm{electron}}}{T_{\\textrm{rad}}}                     \\right)^{1/2}',)
latex_name = ('\\Phi',)
outputs = ('phi',)
class tardis.iip_plasma.properties.ion_population.RadiationFieldCorrection(plasma_parent=None, departure_coefficient=None, chi_0_species=(1, 1), delta_treatment=None)[source]

Bases: ProcessingPlasmaProperty

Attributes:
deltaPandas DataFrame, dtype float

Calculates the radiation field correction (see Mazzali & Lucy, 1993) if not given as input in the config. file. The default chi_0_species is Ca II, which is good for type Ia supernovae. For type II supernovae, (1, 1) should be used. Indexed by atomic number, ion number. The columns are zones.

calculate(w, ionization_data, beta_rad, t_electrons, t_rad, beta_electron)[source]
latex_name = ('\\delta',)
outputs = ('delta',)