tardis.opacities.macro_atom.macroatom_solver module¶
- class tardis.opacities.macro_atom.macroatom_solver.BoundBoundMacroAtomSolver(levels, lines)[source]¶
Bases:
object
- levels: DataFrame¶
- lines: DataFrame¶
- solve(mean_intensities_blue_wing, beta_sobolevs, stimulated_emission_factors)[source]¶
Solves the transition probabilities and returns a DataFrame with the probabilities and a DataFrame with the macro atom transition metadata. Referenced as $p_i$ in Lucy 2003, https://doi.org/10.1051/0004-6361:20030357
- Parameters:
- mean_intensities_blue_wingpd.DataFrame
Mean intensity of the radiation field of each line in the blue wing for each shell. For more detail see Lucy 2003, https://doi.org/10.1051/0004-6361:20030357 Referenced as ‘J^b_{lu}’ internally, or ‘J^b_{ji}’ in the original paper.
- beta_sobolevspd.DataFrame
Escape probabilites for the Sobolev approximation.
- stimulated_emission_factorspd.DataFrame
Stimulated emission factors for the lines.
- Returns:
- MacroAtomState
A MacroAtomState object containing the transition probabilities, transition metadata, and a mapping from line IDs to macro atom level upper indices.
- class tardis.opacities.macro_atom.macroatom_solver.LegacyMacroAtomSolver(initialize=True, normalize=True)[source]¶
Bases:
object
Solver class for Macro Atom related opacities
- Parameters:
- initialize: bool
Whether or not to initialize the transition probabilitiy coefficients and block references when solving the first time (default True)
- normalize: bool
Whether or not to normalize the transition probabilities to unity. Default True
- initialize_transition_probabilities(atomic_data)[source]¶
initialize the transition probability coefficients and block references when solving the first time
- Parameters:
- atomic_datatardis.io.atom_data.AtomData
Atomic Data
- solve(mean_intensities_lines_blue_wing, atomic_data, tau_sobolev, stimulated_emission_factor, beta_sobolev=None)[source]¶
Solved the Macro Atom State
- Parameters:
- mean_intensities_lines_blue_wingpd.DataFrame
Mean intensity of the radiation field of each line in the blue wing for each shell
- atomic_datatardis.io.atom_data.AtomData
Atomic Data
- tau_sobolevpd.DataFrame
Expansion Optical Depths
- stimulated_emission_factorpd.DataFrame
- beta_sobolevpd.DataFrame
- Returns:
- tardis.opacities.macroatom_state.MacroAtomState
State of the macro atom ready to be placed into the OpacityState
- solve_transition_probabilities(atomic_data, mean_intensities_lines_blue_wing, tau_sobolev, beta_sobolev, stimulated_emission_factor)[source]¶
Solve the basic transition probabilities for the macroatom
- Parameters:
- atomic_datatardis.io.atom_data.AtomData
Atomic Data
- mean_intensities_lines_blue_wingpd.DataFrame
Mean intensity of the radiation field of each line in the blue wing for each shell For more detail see Lucy 2003, https://doi.org/10.1051/0004-6361:20030357
- tau_sobolevpd.DataFrame
Expansion Optical Depths
- beta_sobolevpd.DataFrame
Modified expansion Optical Depths
- stimulated_emission_factornp.ndarray
- Returns:
- pd.DataFrame
Transition Probabilities
- tardis.opacities.macro_atom.macroatom_solver.create_line2macro_level_upper(macro_atom_transition_metadata, lines_level_upper)[source]¶
Create a mapping from line transitions to macro atom level indices for upper levels. This method creates a mapping that connects line transition upper levels to their corresponding macro atom level indices. It first extracts unique source levels from the macro atom transition metadata and assigns sequential indices to them, then maps the line upper levels to these indices.
- Parameters:
- macro_atom_transition_metadatapandas.DataFrame
- lines_level_upperpandas.MultiIndex or array-like
- Returns:
- pandas.Series
- tardis.opacities.macro_atom.macroatom_solver.normalize_transition_probabilities(probabilities_df)[source]¶
Normalize transition probabilities by their source levels.
- Parameters:
- probabilities_dfpandas.DataFrame
DataFrame containing transition probabilities with a ‘source’ column for grouping.
- Returns:
- pandas.DataFrame
Normalized probabilities where each source group sums to 1.0. NaN values are replaced with 0.0 for cases where all transition probabilities are zero (typically ground levels in macroatom).
- tardis.opacities.macro_atom.macroatom_solver.reindex_sort_and_clean_probabilities_and_metadata(normalized_probabilities, macro_atom_transition_metadata)[source]¶
Reindex and sort macro atom transition probabilities and metadata.
- Parameters:
- normalized_probabilitiespandas.DataFrame
DataFrame containing normalized transition probabilities.
- macro_atom_transition_metadatapandas.DataFrame
DataFrame containing metadata for macro atom transitions.
- Returns:
- tuple of pandas.DataFrame
Reindexed normalized probabilities and cleaned metadata sorted by atomic number, ion number, and source level.