tardis.plasma.equilibrium.ion_populations module

class tardis.plasma.equilibrium.ion_populations.IonPopulationSolver(rate_matrix_solver, max_solver_iterations=100)[source]

Bases: object

Solve the normalized ion population values from the rate matrices.

Parameters:
rate_matrix_solverIonRateMatrix
solve(radiation_field, thermal_electron_energy_distribution, elemental_number_density, lte_level_population, estimated_level_population, lte_ion_population, estimated_ion_population, partition_function, boltzmann_factor, charge_conservation=False, tolerance=1e-14)[source]

Solves the normalized ion population values from the rate matrices.

Parameters:
radiation_fieldRadiationField

A radiation field that can compute its mean intensity.

thermal_electron_energy_distributionThermalElectronEnergyDistribution

Electron properties.

elemental_number_densitypd.DataFrame

Elemental number density. Index is atomic number, columns are cells.

lte_level_populationpd.DataFrame

LTE level number density. Columns are cells.

estimated_level_populationpd.DataFrame

Estimated level number density. Columns are cells.

lte_ion_populationpd.DataFrame

LTE ion number density. Columns are cells.

estimated_ion_populationpd.DataFrame

Estimated ion number density. Columns are cells.

charge_conservationbool, optional

Whether to include a charge conservation row in the rate matrix.

tolerancefloat, optional

Tolerance for convergence of the ion population solver.

Returns:
pd.DataFrame

Normalized ion population values indexed by atomic number, ion number and ion number. Columns are cells.

pd.DataFrame

Normalized electron fraction values. Columns are cells.