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:
objectFixed-density and terminal equilibrium outputs.
- 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:
objectEvaluate 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.