Source code for solrat.atom_model.multi_term_atom_model.data.NiI

from solrat.atom_model.multi_term_atom_model.object.level_registry import LevelRegistry
from solrat.atom_model.multi_term_atom_model.object.multi_term_atom_config import MultiTermAtomConfig
from solrat.atom_model.multi_term_atom_model.object.transition_registry import TransitionRegistry
from solrat.engine.functions.decorators import log_function


[docs] @log_function def get_Ni_I_5435_config() -> MultiTermAtomConfig: # pragma: no cover r""" Atomic model for Ni I 5435.9 A line, constrained to :math:`J=1 \to J=0` transition. :return: :any:`MultiTermAtomConfig` instance """ level_registry = LevelRegistry() # lower term: 3P (L=1, S=1), J = 0..2 level_registry.register_level(beta="3P", L=1, S=1, J=0, energy_cmm1=16017.306) level_registry.register_level(beta="3P", L=1, S=1, J=1, energy_cmm1=15734.001) level_registry.register_level(beta="3P", L=1, S=1, J=2, energy_cmm1=15609.844) # upper term: 3D (L=2, S=1), J = 1..3 level_registry.register_level(beta="3D", L=2, S=1, J=1, energy_cmm1=34408.555) level_registry.register_level(beta="3D", L=2, S=1, J=2, energy_cmm1=33610.890) level_registry.register_level(beta="3D", L=2, S=1, J=3, energy_cmm1=33500.822) level_registry.validate() # Transitions transition_registry = TransitionRegistry() transition_registry.register_transition( term_lower=level_registry.get_term(beta="3P", L=1, S=1), term_upper=level_registry.get_term(beta="3D", L=2, S=1), lower_J_constraint=[0], # Only compute J=1->J=0 in RTE (if j_constrained=True) upper_J_constraint=[1], einstein_a_ul_sm1=1.9e05 + 1.2e5 + 1.1e5 + 2.5e4 + 2.2e5, ) return MultiTermAtomConfig( level_registry=level_registry, transition_registry=transition_registry, reference_lambda_A_air=5435.87, atomic_mass_amu=58.7, j_constrained=True, )