tardis.plasma.equilibrium.rate_matrix module

class tardis.plasma.equilibrium.rate_matrix.IonRateMatrix(radiative_ionization_rate_solver, collisional_ionization_rate_solver)[source]

Bases: object

Constructs the ionization rate matrix from radiative and collisional ionization rate solvers.

Parameters:
radiative_ionization_rate_solverAnalyticPhotoionizationRateSolver | EstimatedPhotoionizationRateSolver

Solver for radiative ionization and recombination rates.

collisional_ionization_rate_solverCollisionalIonizationRateSolver

Solver for collisional ionization and recombination rates.

solve(radiation_field, thermal_electron_energy_distribution, lte_level_population, level_population, lte_ion_population, ion_population, partition_function, boltzmann_factor, charge_conservation=False)[source]

Compute the ionization rate matrix.

Parameters:
radiation_fieldRadiationField

A radiation field that can compute its mean intensity.

thermal_electron_energy_distributionThermalElectronEnergyDistribution

Electron properties.

lte_level_populationpd.DataFrame

LTE level number density. Columns are cells.

level_populationpd.DataFrame

Estimated level number density. Columns are cells.

lte_ion_populationpd.DataFrame

LTE ion number density. Columns are cells.

ion_populationpd.DataFrame

Estimated ion number density. Columns are cells.

charge_conservationbool, optional

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

Returns:
pd.DataFrame

A DataFrame of rate matrices indexed by atomic number and ion number, with each column being a cell. Each entry is a numpy array.

class tardis.plasma.equilibrium.rate_matrix.RateMatrix(rate_solvers: list, levels: DataFrame)[source]

Bases: object

Constructs the rate matrix from an arbitrary number of rate solvers.

Parameters:
rate_solverslist

List of rate solver objects.

levelspd.DataFrame

DataFrame of energy levels.

solve(radiation_field, thermal_electron_energy_distribution)[source]

Construct the compiled rate matrix dataframe.

Parameters:
radiation_fieldRadiationField

Radiation field containing radiative temperature.

thermal_electron_energy_distributionThermalElectronEnergyDistribution

Distribution of electrons in the plasma, containing electron energies, temperatures and number densities.

Returns:
pd.DataFrame

A DataFrame of rate matrices indexed by atomic number and ion number, with each column being a cell.