Source code for solrat.atom_model.multi_term_atom_model.object.atmosphere_parameters
import numpy as np
from solrat.atom_model.base_atom_model.object.atmosphere_parameters import BaseAtmosphereParameters
from solrat.atom_model.multi_term_atom_model.object.multi_term_atom_config import MultiTermAtomConfig
from solrat.atom_model.shared.utility.constants import atomic_mass_unit_g, kB_erg_Km1
from solrat.atom_model.shared.utility.functions import nu_larmor
[docs]
class AtmosphereParameters(BaseAtmosphereParameters):
r"""
A container for all atmosphere parameters needed in RTE/SEE.
:param magnetic_field_gauss: :math:`B` [G]
:param temperature_K: :math:`T` [K]
:param delta_v_turbulent_cm_sm1: turbulent microscopic velocity [cm/s]
:param macroscopic_velocity_cm_sm1: macroscopic velocity [cm/s]
:param voigt_a: Voigt :math:`a` parameter.
"""
def __init__(
self,
model_config: MultiTermAtomConfig,
magnetic_field_gauss,
temperature_K,
delta_v_turbulent_cm_sm1=0,
macroscopic_velocity_cm_sm1=0,
voigt_a=0,
):
self.magnetic_field_gauss = magnetic_field_gauss
self.temperature_K = temperature_K
self.delta_v_thermal_cm_sm1 = np.sqrt(
delta_v_turbulent_cm_sm1**2
+ 2 * kB_erg_Km1 * temperature_K / model_config.atomic_mass_amu / atomic_mass_unit_g
)
self.nu_larmor = nu_larmor(magnetic_field_gauss=magnetic_field_gauss)
self.macroscopic_velocity_cm_sm1 = macroscopic_velocity_cm_sm1
self.voigt_a = voigt_a