tardis.opacities.opacity_state module

class tardis.opacities.opacity_state.OpacityState(electron_density: DataFrame, t_electrons: ndarray[tuple[Any, ...], dtype[float64]], line_list_nu: Series, tau_sobolev: DataFrame, beta_sobolev: DataFrame | None, continuum_state: ContinuumState | None)[source]

Bases: object

Store Python-native line and continuum opacity data for one iteration.

The state preserves labelled plasma data for the MC solver and formal-integral. Use to_numba() to produce the Numba-compatible transport representation.

Initialize the Python-native opacity state.

Parameters:
electron_densitypd.DataFrame
t_electronsnumpy.ndarray

Electron temperatures in each shell [K].

line_list_nupd.DataFrame
tau_sobolevpd.DataFrame
beta_sobolevpd.DataFrame or None

Sobolev escape probabilities for each line and shell.

continuum_statetardis.opacities.continuum.continuum_state.ContinuumState or None

Continuum quantities needed when continuum interactions are enabled.

classmethod from_legacy_plasma(plasma: BasePlasma, tau_sobolev: DataFrame) Self[source]

Construct an opacity state from a legacy plasma object.

Parameters:
plasmatardis.plasma.BasePlasma

Plasma object containing the line and continuum quantities.

tau_sobolevpd.DataFrame

Sobolev optical depths for each line and shell.

Returns:
OpacityState

Python-native opacity state.

classmethod from_plasma(plasma: BasePlasma, tau_sobolev: DataFrame, beta_sobolev: DataFrame | None) Self[source]

Construct an opacity state from a plasma object.

Parameters:
plasmatardis.plasma.base.BasePlasma

Plasma object containing the line and continuum quantities.

tau_sobolevpd.DataFrame

Sobolev optical depths for each line and shell.

beta_sobolevpd.DataFrame or None

Sobolev escape probabilities for each line and shell.

Returns:
OpacityState

Python-native opacity state.

to_numba(macro_atom_state: MacroAtomState | None, line_interaction_type: str) OpacityStateNumba | OpacityStateNumbaIIP[source]

Convert this state to the Numba-compatible transport representation.

Parameters:
macro_atom_statetardis.opacities.macro_atom.macroatom_state.MacroAtomState or None

Macro-atom transition data. It is required unless line_interaction_type is "scatter".

line_interaction_typestr

Configured line-interaction mode.

Returns:
tardis.opacities.opacity_state_numba.OpacityStateNumba or tardis.opacities.opacity_state_numba_iip.OpacityStateNumbaIIP

Array-backed opacity and interaction data used by transport.