tardis.plasma.equilibrium.evaluator module

class tardis.plasma.equilibrium.evaluator.PlasmaEquilibriumEvaluation(trial_electron_density: Series, normalized_population: DataFrame, diagnostic_ion_ratio: Series, trial_beta_sobolev: DataFrame, trial_level_residual: DataFrame, charge_solved_electron_density: Series | None, absolute_level_population: DataFrame, ion_population: DataFrame | None, tau_sobolev: DataFrame, beta_sobolev: DataFrame, level_residual: DataFrame, charge_residual: Series | None, electron_residual: Series | None, total_heating: Series | None, fractional_heating: Series | None)[source]

Bases: object

Fixed-density and terminal equilibrium outputs.

absolute_level_population: DataFrame
beta_sobolev: DataFrame
charge_residual: Series | None
charge_solved_electron_density: Series | None
diagnostic_ion_ratio: Series
electron_residual: Series | None
fractional_heating: Series | None
ion_population: DataFrame | None
level_residual: DataFrame
normalized_population: DataFrame
tau_sobolev: DataFrame
total_heating: Series | None
trial_beta_sobolev: DataFrame
trial_electron_density: Series
trial_level_residual: DataFrame
class tardis.plasma.equilibrium.evaluator.PlasmaEquilibriumEvaluator(photoionization_cross_sections: DataFrame, level2continuum_edge_idx: Series, estimators_continuum: EstimatorsContinuum, time_simulation: Quantity, volume: Quantity, levels: DataFrame, ionization_data: Series, rate_matrix_solver: RateMatrix, j_blues: DataFrame, shell_number_densities: tuple[ShellNumberDensity, ...], sobolev_inputs: tuple[SobolevInputs, ...], level_population_index: MultiIndex, hydrogen_species: tuple[int, int], elemental_number_density: DataFrame, maximum_electron_density: ArrayLike, ion_population_solver: object | None = None, ion_population_arguments: Mapping[str, object] | None = None, thermal_balance_solver: object | None = None, thermal_balance_arguments: Mapping[str, object] | None = None, reference_electron_temperature: Quantity | None = None)[source]

Bases: object

Evaluate the reduced fixed-density equilibrium composition.

The four per-shell input tuples are kept separate so each level-rate dependency remains visible at construction and evaluation call sites.

Construct an evaluator from fixed scientific inputs.

Parameters:
photoionization_cross_sectionspandas.DataFrame

Photoionization cross sections for the selected continuum species.

level2continuum_edge_idxpandas.Series

Continuum-estimator positions indexed by level.

estimators_continuumEstimatorsContinuum

Fixed post-Monte-Carlo continuum estimators.

time_simulationastropy.units.Quantity

Monte Carlo simulation time used to normalize estimators.

volumeastropy.units.Quantity

Shell volumes used to normalize estimators.

levelspandas.DataFrame

Atomic level energies and statistical weights.

ionization_datapandas.Series

Ionization energies indexed by atomic and ion number.

rate_matrix_solverRateMatrix

Shared bound-bound matrix owner.

j_bluespandas.DataFrame

Fixed post-Monte-Carlo line mean intensities.

shell_number_densitiestuple[ShellNumberDensity, …]

Per-shell absolute number densities, level number densities and species level positions.

sobolev_inputstuple[SobolevInputs, …]

Per-shell Sobolev line inputs.

level_population_indexpandas.MultiIndex

Complete level-population index used for returned absolute levels.

hydrogen_speciestuple[int, int]

Atomic and ion number of the reduced NLTE species.

elemental_number_densitypandas.DataFrame

Elemental number density indexed by atomic number and shell.

maximum_electron_densityarray-like

Maximum electron density used by the charge residual.

ion_population_solverIonPopulationSolver, optional

Existing authoritative charge solver.

ion_population_argumentsmapping, optional

Fixed keyword arguments for ion_population_solver.solve.

thermal_balance_solverThermalBalanceSolver, optional

Existing thermal-rate owner.

thermal_balance_argumentsmapping, optional

Fixed keyword arguments for thermal_balance_solver.solve.

reference_electron_temperatureastropy.units.Quantity, optional

Temperature at which fixed thermal rate coefficients were built.

evaluate(trial_electron_density: ArrayLike, electron_temperature: Quantity | ArrayLike, level_seed: DataFrame) PlasmaEquilibriumEvaluation[source]

Evaluate levels and the existing optional charge/thermal stages.

tardis.plasma.equilibrium.evaluator.calculate_nlte_level_population_residual(level_fractions: ndarray[tuple[Any, ...], dtype[float64]], level_rates: LevelEquationRates, rate_matrix_solver: RateMatrix, j_blues: DataFrame, thermal_electron_energy_distribution: ThermalElectronEnergyDistribution, species: tuple[int, int], shell_number_density: ShellNumberDensity, sobolev: SobolevInputs, level_density: ndarray[tuple[Any, ...], dtype[float64]] | None = None) tuple[ndarray[tuple[Any, ...], dtype[float64]], ndarray[tuple[Any, ...], dtype[float64]], float][source]

Calculate the reduced fixed-density NLTE level residual.

The auxiliary continuum ratio is eliminated algebraically as

ionized_to_neutral_ratio = (total_ionization_rates @ b) / total_recombination_rate.

Parameters:
level_fractionsnumpy.ndarray

Candidate normalized bound-level fractions.

level_ratesLevelEquationRates

Density-specific ionization, recombination, and ionization-loss rates.

rate_matrix_solverRateMatrix

Shared bound-bound matrix owner.

j_bluespandas.DataFrame

Fixed mean intensities for this residual shell.

thermal_electron_energy_distributionThermalElectronEnergyDistribution

Candidate shell electron distribution.

speciestuple[int, int]

Atomic and ion number of the reduced NLTE species.

number_density_per_shellNumberDensityPerShell

Absolute level-density state and selected-level positions.

sobolevSobolevInputs

Line geometry used to calculate candidate beta.

level_densitynumpy.ndarray, optional

Authoritative absolute level-density state used for final-state closure. When omitted, the temporary state implied by the ionized-to-neutral ratio is reconstructed from reconstructed from hydrogen_number_density.

Returns:
tuple[numpy.ndarray, numpy.ndarray, float]

Component level residual, candidate Sobolev escape probabilities, and the reduced ionized-to-neutral ratio.