tardis.plasma.equilibrium.matrix_assembly module

Shared helpers for assembling rate matrices.

tardis.plasma.equilibrium.matrix_assembly.assemble_bound_bound_rate_matrix(number_of_levels: int, source_level_idx: ndarray[tuple[Any, ...], dtype[int64]], destination_level_idx: ndarray[tuple[Any, ...], dtype[int64]], radiative_rate_coefficient: ndarray[tuple[Any, ...], dtype[float64]], collisional_rate: ndarray[tuple[Any, ...], dtype[float64]], beta_line_idx: ndarray[tuple[Any, ...], dtype[int64]], beta_sobolev: ndarray[tuple[Any, ...], dtype[float64]]) → ndarray[tuple[Any, ...], dtype[float64]][source]

Assemble one bound-bound matrix from prepared transition arrays.

tardis.plasma.equilibrium.matrix_assembly.construct_rate_matrices(rates: DataFrame, shape: tuple[int, int], source_level: str, destination_level: str) → ndarray[tuple[Any, ...], dtype[float64]][source]

Construct dense destination-row/source-column matrices.

Parameters:
ratespandas.DataFrame

Rates indexed by source and destination levels, with one column per shell.

shapetuple of int

Matrix row and column dimensions.

source_level, destination_levelstr

Index level names identifying matrix columns and rows.

Returns:
numpy.typing.NDArray

One dense matrix per rate-frame column.

tardis.plasma.equilibrium.matrix_assembly.normalize_rate_matrices(matrices: ndarray[tuple[Any, ...], dtype[float64]]) → ndarray[tuple[Any, ...], dtype[float64]][source]

Add balance diagonals and the population-normalization row.

tardis.plasma.equilibrium.matrix_assembly.sum_duplicate_rates(rates: DataFrame) → DataFrame[source]

Sum duplicate ion transitions in a rate frame.

tardis.plasma.equilibrium.matrix_assembly.sum_rate_frames(rate_frames: Iterable[DataFrame], multipliers: Sequence[float] | None = None) → DataFrame[source]

Align rate frames on their union of indexes and add them.

Parameters:
rate_framesiterable of pandas.DataFrame

Rate frames with matching columns.

multiplierssequence of float, optional

Factors applied to the corresponding rate frames before summation.

Returns:
pandas.DataFrame

The aligned sum of the rate frames.