tardis.plasma.equilibrium.rates.heating_cooling_rates module

class tardis.plasma.equilibrium.rates.heating_cooling_rates.AdiabaticThermalRates[source]

Bases: object

Class to solve the adiabatic cooling rate.

solve(thermal_electron_distribution: ThermalElectronEnergyDistribution, time: Quantity) Quantity[source]

Solve for the adiabatic cooling rate.

Parameters:
thermal_electron_distributionThermalElectronEnergyDistribution

The thermal electron distribution containing the number density and temperature.

timeu.Quantity

The time over which the adiabatic cooling is calculated.

Returns:
u.Quantity

The adiabatic cooling rate in erg cm^-3 s^-1.

class tardis.plasma.equilibrium.rates.heating_cooling_rates.BoundFreeThermalRates(photoionization_cross_sections: DataFrame)[source]

Bases: object

Class to solve the bound-free heating and cooling rates.

Initialize the solver.

Parameters:
photoionization_cross_sectionspd.DataFrame

Photoionization cross section data.

solve(level_population: DataFrame, ion_population: DataFrame, thermal_electron_distribution: ThermalElectronEnergyDistribution, level_population_ratio: DataFrame, radiation_field: DilutePlanckianRadiationField | None = None, bound_free_heating_estimator: DataFrame | None = None, stimulated_recombination_estimator: DataFrame | None = None) tuple[Series, Series][source]

Compute the bound-free heating and cooling rates.

Parameters:
level_populationpd.DataFrame

Estimated level number density. Columns represent cells.

ion_populationpd.DataFrame

Estimated ion number density. Columns represent cells.

thermal_electron_distributionThermalElectronEnergyDistribution

Electron energy distribution containing the number density, temperature and energy.

level_population_ratiopd.DataFrame

Saha factor for the ion populations as defined in Lucy 03 equation 14. Columns represent cells.

radiation_fieldRadiationField, optional

A radiation field that can compute its mean intensity.

bound_free_heating_estimatorpd.DataFrame, optional

Montecarlo bound free heating estimator. Columns represent cells, by default None

stimulated_recombination_estimatorpd.DataFrame, optional

Montecarlo stimulated recombination estimator. Columns represent cells, by default None

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

Heating and cooling rates for the bound-free process for all cells.

class tardis.plasma.equilibrium.rates.heating_cooling_rates.CollisionalBoundThermalRates(lines: DataFrame)[source]

Bases: object

Class to solve the collisional bound heating and cooling rates.

Initialize the solver.

Parameters:
linespd.DataFrame

Atomic line data.

solve(electron_density: Quantity, collisional_deexcitation_rate_coefficient: DataFrame, collisional_excitation_rate_coefficient: DataFrame, level_population: DataFrame) tuple[Series, Series][source]

Compute the collisional bound heating and cooling rates.

Parameters:
electron_densityu.Quantity

Electron number density with units.

collisional_deexcitation_rate_coefficientpd.DataFrame

Collisional deexcitation rate coefficients. Columns represent cells.

collisional_excitation_rate_coefficientpd.DataFrame

Collisional excitation rate coefficients. Columns represent cells.

level_populationpd.DataFrame

Level number density. Columns represent cells.

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

Heating and cooling rates for the collisional bound process for all cells.

class tardis.plasma.equilibrium.rates.heating_cooling_rates.CollisionalIonizationThermalRates(photoionization_cross_sections: DataFrame)[source]

Bases: object

Class to solve the collisional ionization heating and cooling rates.

Initialize the solver.

Parameters:
photoionization_cross_sectionspd.DataFrame

Photoionization cross section data.

solve(electron_density: Quantity, ion_population: DataFrame, level_population: DataFrame, collisional_ionization_rate_coefficient: DataFrame, level_population_ratio: DataFrame) tuple[Series, Series][source]

Compute the collisional ionization heating and cooling rates.

Parameters:
electron_densityu.Quantity

Electron number density with units.

ion_populationpd.DataFrame

Ion number density. Columns represent cells.

level_populationpd.DataFrame

Level number density. Columns represent cells.

collisional_ionization_rate_coefficientpd.DataFrame

Collisional ionization rate coefficients. Columns represent cells.

level_population_ratiopd.DataFrame

Saha factor for the ion populations as defined in Lucy 03 equation 14. Columns represent cells.

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

Heating and cooling rates for the collisional ionization process for all cells.

class tardis.plasma.equilibrium.rates.heating_cooling_rates.FreeFreeThermalRates[source]

Bases: object

Class to solve the free-free heating and cooling rates.

heating_factor(ion_population: DataFrame, electron_density: float) Series[source]

Compute the free-free heating factor.

Parameters:
ion_populationpd.DataFrame

Ion number density. Columns represent cells.

electron_densityfloat

Electron number density value.

Returns:
pd.Series

The free-free heating factor for all cells.

solve(heating_estimator: DataFrame, thermal_electron_distribution: ThermalElectronEnergyDistribution, ion_population: DataFrame) tuple[Series, Series][source]

Compute the free-free heating and cooling rates for the input plasma conditions.

Parameters:
heating_estimatorpd.DataFrame

Montecarlo free-free heating estimator value. Columns represent cells.

thermal_electron_distributionThermalElectronEnergyDistribution

Electron energy distribution containing the number density, temperature and energy.

ion_populationpd.DataFrame

Ion number density. Columns represent cells.

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

The heating and cooling rates for the free-free process for all cells.