tardis.plasma.equilibrium.rates.photoionization_rates module

class tardis.plasma.equilibrium.rates.photoionization_rates.AnalyticPhotoionizationRateSolver(photoionization_cross_sections)[source]

Bases: object

Solve analytic photoionization and spontaneous recombination rates.

solve(radiation_field: DilutePlanckianRadiationField | PlanckianRadiationField, electron_energy_distribution: ThermalElectronEnergyDistribution, lte_level_population: DataFrame, level_population: DataFrame, lte_ion_population: DataFrame, ion_population: DataFrame, partition_function: DataFrame, level_boltzmann_factor: DataFrame, level_to_continuum_saha_factor: DataFrame | None = None) tuple[DataFrame, DataFrame][source]

Solve analytic photoionization and recombination rates.

This case is used when the radiation field is not estimated.

Parameters:
radiation_fieldRadiationField

A radiation field that can compute its mean intensity.

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.

level_to_continuum_saha_factorpd.DataFrame, optional

Density-independent Lucy level-to-continuum Saha factor.

Returns:
pd.DataFrame

Photoionization rate. Columns are cells.

pd.DataFrame

Spontaneous recombination rate. Columns are cells.

class tardis.plasma.equilibrium.rates.photoionization_rates.EstimatedPhotoionizationRateSolver(photoionization_cross_sections, level2continuum_edge_idx, estimators_continuum=None, time_simulation=None, volume=None)[source]

Bases: object

Solve fixed-estimator photoionization and recombination rates.

solve(electron_energy_distribution: ThermalElectronEnergyDistribution, level_population: DataFrame, ion_population: DataFrame, level_to_continuum_saha_factor: DataFrame) tuple[DataFrame, DataFrame][source]

Solve rates using fixed Monte Carlo estimators.

The estimator supplies the photoionization and stimulated- recombination factors. The returned rates are the coefficients used by the ionization rate matrix, following Lucy (2003), Eqs. 44–45.

Parameters:
electron_energy_distributionThermalElectronEnergyDistribution

Electron properties.

level_populationpd.DataFrame

Estimated bound-level number densities. Columns are cells.

ion_populationpd.DataFrame

Estimated ion number densities. Columns are cells.

level_to_continuum_saha_factorpd.DataFrame

Density-independent Lucy level-to-continuum Saha factors.

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

Photoionization and recombination rates used by the ionization rate matrix.

solve_coefficients(electron_temperature: Quantity) tuple[DataFrame, DataFrame, DataFrame][source]

Solve fixed-estimator photoionization coefficients.