solrat.atom_model.multi_term_atom_model.object.transition_registry module¶
- class solrat.atom_model.multi_term_atom_model.object.transition_registry.TransitionRegistry[source]¶
Bases:
objectThis class serves as a registry for all transitions. The transitions are defined as ones occurring between terms, not levels, so the Einstein coefficients need to be adjusted accordingly.
Only pure E1 \(LS\) transitions are fully supported.
- register_transition(term_upper: Term, term_lower: Term, einstein_a_ul_sm1: float, lower_J_constraint: List[float] | None = None, upper_J_constraint: List[float] | None = None)[source]¶
Einstein coefficients are on \(\beta LS \to \beta LS\) level, so need to sum over \(J\) in advance.
- Parameters:
term_upper – upper Term instance
term_lower – lower Term instance
einstein_a_ul_sm1 – spontaneous emission in [1/s]
lower_J_constraint – constrain lower term \(J\) values in RTE to these values
upper_J_constraint – constrain upper term \(J\) values in RTE to these values
- class solrat.atom_model.multi_term_atom_model.object.transition_registry.Transition(transition_id: str, term_upper: Term, term_lower: Term, einstein_a_ul: float, einstein_b_ul: float, einstein_b_lu: float, lower_J_constraint: List[float] | None = None, upper_J_constraint: List[float] | None = None)[source]¶
Bases:
objectTransition coefficients are registered between terms, not levels.
- Parameters:
transition_id – Unique transition ID
term_upper – upper Term instance
term_lower – lower Term instance
einstein_a_ul – Einstein coefficient \(A_{ul}\)
einstein_b_ul – Einstein coefficient \(B_{ul}\)
einstein_b_lu – Einstein coefficient \(B_{lu}\)
lower_J_constraint – constrain lower term \(J\) values in RTE to these values
upper_J_constraint – constrain lower term \(J\) values in RTE to these values