tardis.plasma.equilibrium.rates.collisional_ionization_rates module

class tardis.plasma.equilibrium.rates.collisional_ionization_rates.CollisionalIonizationRateSolver(photoionization_cross_sections: DataFrame)[source]

Bases: object

Solver for collisional ionization and recombination rates.

Initialize the collisional ionization rate solver.

Parameters:
photoionization_cross_sectionspd.DataFrame

Photoionization cross sections indexed by atomic number, ion number, and level number.

solve(electron_distribution: ThermalElectronEnergyDistribution, level_to_ion_population_factor: DataFrame, partition_function: DataFrame, level_boltzmann_factor: DataFrame, level_population: DataFrame | None = None, ion_population: DataFrame | None = None, approximation: str = 'seaton') tuple[DataFrame, DataFrame][source]

Solve the collisional ionization and recombination rates.

Parameters:
electron_distributionThermalElectronEnergyDistribution

Electron energy distribution per cell.

level_to_ion_population_factorpd.DataFrame

The level to ion population factor for each cell, Lucy 2003 Eq 14. Indexed by atom number, ion number, level number.

partition_functionpd.DataFrame

Partition function for each ion and cell.

level_boltzmann_factorpd.DataFrame

Boltzmann factor for each level and cell.

level_populationpandas.DataFrame, optional

Estimated level populations used instead of LTE fractions.

ion_populationpandas.DataFrame, optional

Estimated ion populations used to normalize level populations.

approximationstr, optional

The rate approximation to use, by default "seaton".

Returns:
tuple[pd.DataFrame, pd.DataFrame]

Collisional ionization rates and collisional recombination rates.

Raises:
ValueError

If an unsupported approximation is requested.

solve_coefficients(electron_temperature: Quantity, approximation: str = 'seaton') DataFrame[source]

Solve raw collisional-ionization rate coefficients.