tardis.plasma.equilibrium.thermal_balance module

class tardis.plasma.equilibrium.thermal_balance.ThermalBalanceSolver(bound_free_solver: BoundFreeThermalRates, free_free_solver: FreeFreeThermalRates, collisional_ionization_solver: CollisionalIonizationThermalRates, collisional_bound_solver: CollisionalBoundThermalRates)[source]

Bases: object

Class to solve the thermal balance equation using all available heating and cooling processes. See section 6.4 in Lucy 03, especially equations 55-57.

Initialize the thermal balance solver with individual solver components.

Parameters:
bound_free_solver

Solver for bound-free heating and free-bound cooling processes.

free_free_solver

Solver for free-free heating and cooling processes.

collisional_ionization_solver

Solver for collisional ionization heating and cooling processes.

collisional_bound_solver

Solver for collisional bound-bound heating and cooling processes.

solve(thermal_electron_distribution: ThermalElectronEnergyDistribution, level_population: DataFrame, ion_population: DataFrame, collisional_ionization_rate_coefficient: DataFrame, collisional_deexcitation_rate_coefficient: DataFrame, collisional_excitation_rate_coefficient: DataFrame, free_free_heating_estimator: DataFrame, 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 current heating rate and the fractional heating rate using all available processes. See section 6.4 in Lucy 03.

Parameters:
thermal_electron_distributionThermalElectronEnergyDistribution

Electron energy, temperature, and density.

level_populationpd.DataFrame

Level number density.

ion_populationpd.DataFrame

Ion number density.

collisional_ionization_rate_coefficientpd.DataFrame

Collisional ionization rate coefficient.

collisional_deexcitation_rate_coefficientpd.DataFrame

Collisional deexcitation rate coefficient.

collisional_excitation_rate_coefficientpd.DataFrame

Collisional excitation rate coefficient.

free_free_heating_estimatorpd.DataFrame

Montecarlo estimator for free-free heating.

level_population_ratiopd.DataFrame

Level population to ion population ratio. Lucy 03, equation 14.

radiation_fieldRadiationField, optional

Radiation field for mean intensity calculation.

bound_free_heating_estimatorpd.DataFrame, optional

Bound-free heating estimator.

stimulated_recombination_estimatorpd.DataFrame, optional

Stimulated recombination estimator.

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

Total heating rate and fractional heating rate for each cell.