ARTS 2.5.11 (git: 6827797f)
linescaling.h File Reference

Constains various line scaling functions. More...

#include "absorption.h"
#include "arts_conversions.h"

Go to the source code of this file.

Functions

Numeric single_partition_function (const Numeric &T, const Species::IsotopeRecord &ir)
 Computes the partition function at one temperature.
 
Numeric dsingle_partition_function_dT (const Numeric &T, const Species::IsotopeRecord &ir)
 Computes the partition function temperature derivative.
 
Numeric stimulated_emission (Numeric T, Numeric F0)
 Computes exp(-hf/kT)
 
Numeric dstimulated_emissiondT (Numeric T, Numeric F0)
 Computes temperature derivative of exp(-hf/kT)
 
Numeric dstimulated_emissiondF0 (Numeric T, Numeric F0)
 Computes frequency derivative of exp(-hf/kT)
 
Numeric stimulated_relative_emission (const Numeric F0, const Numeric T0, const Numeric T) noexcept
 Computes.
 
Numeric dstimulated_relative_emission_dT (const Numeric F0, const Numeric T0, const Numeric T) noexcept
 Computes.
 
Numeric dstimulated_relative_emission_dF0 (const Numeric F0, const Numeric T0, const Numeric T) noexcept
 Computes.
 
Numeric stimulated_relative_emission (const Numeric &gamma, const Numeric &gamma_ref)
 Computes (1 - gamma) / (1 - gamma_ref)
 
Numeric dstimulated_relative_emission_dT (const Numeric &gamma, const Numeric &gamma_ref, const Numeric &F0, const Numeric &T)
 Computes temperature derivative of (1 - gamma) / (1 - gamma_ref)
 
Numeric dstimulated_relative_emission_dF0 (const Numeric &gamma, const Numeric &gamma_ref, const Numeric &T, const Numeric &T0)
 Computes frequency derivative of (1 - gamma) / (1 - gamma_ref)
 
Numeric boltzman_ratio (const Numeric &T, const Numeric &T0, const Numeric &E0)
 Computes exp(E0/c (T - T0) / (T * T0))
 
Numeric dboltzman_ratio_dT (const Numeric &boltzmann_ratio, const Numeric &T, const Numeric &E0)
 Computes temperature derivatives exp(E0/k (T - T0) / (T * T0))
 
constexpr Numeric dboltzman_ratio_dT_div_boltzmann_ratio (Numeric T, Numeric E0)
 Computes temperature derivatives exp(E0/k (T - T0) / (T * T0)) / exp(E0/c (T - T0) / (T * T0))
 
Numeric boltzman_factor (Numeric T, Numeric E0)
 Computes exp(- E0/kT)
 
Numeric dboltzman_factordT (Numeric T, Numeric E0)
 Computes temperature derivatives exp(- E0/kT)
 
Numeric dboltzman_factordE0 (Numeric T, Numeric E0)
 Computes lower state energy derivatives exp(- E0/kT)
 
Numeric absorption_nlte_ratio (const Numeric &gamma, const Numeric &r_upp=1.0, const Numeric &r_low=1.0) noexcept
 Computes (r_low - r_upp * gamma) / (1 - gamma)
 
Numeric dabsorption_nlte_rate_dT (const Numeric &gamma, const Numeric &T, const Numeric &F0, const Numeric &El, const Numeric &Eu, const Numeric &r_upp=1.0, const Numeric &r_low=1.0)
 Computes temperature derivatives of (r_low - r_upp * gamma) / (1 - gamma)
 
Numeric dabsorption_nlte_rate_dF0 (const Numeric &gamma, const Numeric &T, const Numeric &r_upp=1.0, const Numeric &r_low=1.0)
 Computes frequency derivative of (r_low - r_upp * gamma) / (1 - gamma)
 
Numeric dabsorption_nlte_rate_dTl (const Numeric &gamma, const Numeric &T, const Numeric &Tl, const Numeric &El, const Numeric &r_low=1.0)
 Computes lower state temperature derivative of (r_low - r_upp * gamma) / (1 - gamma)
 
Numeric dabsorption_nlte_rate_dTu (const Numeric &gamma, const Numeric &T, const Numeric &Tu, const Numeric &Eu, const Numeric &r_upp=1.0)
 Computes upper state temperature derivative of (r_low - r_upp * gamma) / (1 - gamma)
 

Detailed Description

Constains various line scaling functions.

Author
Richard Larsson
Date
2015-06-25

Headers for line scaling functions

Helps to solve line scaling and derivatives for lbl calculations

Definition in file linescaling.h.

Function Documentation

◆ absorption_nlte_ratio()

Numeric absorption_nlte_ratio ( const Numeric &  gamma,
const Numeric &  r_upp = 1.0,
const Numeric &  r_low = 1.0 
)
noexcept

Computes (r_low - r_upp * gamma) / (1 - gamma)

Parameters
[in]gammaStimulated emission at temperature
[in]r_uppRelative ratio NLTE/LTE in upper ratio
[in]r_lowRelative ratio NLTE/LTE in lower ratio
Returns
(r_low - r_upp * gamma) / (1 - gamma)

Definition at line 110 of file linescaling.cc.

◆ boltzman_factor()

Numeric boltzman_factor ( Numeric  T,
Numeric  E0 
)

Computes exp(- E0/kT)

Parameters
[in]TTemperature
[in]E0Lower state energy
Returns
exp(- E0/kT)

Definition at line 90 of file linescaling.cc.

References Constant::k.

Referenced by lm_hitran_2017::convtp(), Absorption::Lines::F_mean(), lm_hitran_2017::hitran_lm_eigenvalue_approximation(), and Absorption::LineMixing::PopulationAndDipole::PopulationAndDipole().

◆ boltzman_ratio()

Numeric boltzman_ratio ( const Numeric &  T,
const Numeric &  T0,
const Numeric &  E0 
)

Computes exp(E0/c (T - T0) / (T * T0))

Parameters
[in]TTemperature
[in]T0Reference temperature
[in]E0Lower state energy
Returns
exp(E0/c (T - T0) / (T * T0))

Definition at line 75 of file linescaling.cc.

References c, and Constant::k.

Referenced by lm_hitran_2017::convtp(), Absorption::Lines::F_mean(), lm_hitran_2017::hitran_lm_eigenvalue_approximation(), and Absorption::LineMixing::PopulationAndDipole::PopulationAndDipole().

◆ dabsorption_nlte_rate_dF0()

Numeric dabsorption_nlte_rate_dF0 ( const Numeric &  gamma,
const Numeric &  T,
const Numeric &  r_upp = 1.0,
const Numeric &  r_low = 1.0 
)

Computes frequency derivative of (r_low - r_upp * gamma) / (1 - gamma)

Parameters
[in]gammaStimulated emission at temperature
[in]TTemperature
[in]r_uppRelative ratio NLTE/LTE in upper ratio
[in]r_lowRelative ratio NLTE/LTE in lower ratio
Returns
d[(r_low - r_upp * gamma) / (1 - gamma)] / dF0

Definition at line 138 of file linescaling.cc.

References c, Constant::h, Constant::k, and Math::pow2().

◆ dabsorption_nlte_rate_dT()

Numeric dabsorption_nlte_rate_dT ( const Numeric &  gamma,
const Numeric &  T,
const Numeric &  F0,
const Numeric &  El,
const Numeric &  Eu,
const Numeric &  r_upp = 1.0,
const Numeric &  r_low = 1.0 
)

Computes temperature derivatives of (r_low - r_upp * gamma) / (1 - gamma)

Parameters
[in]gammaStimulated emission at temperature
[in]TTemperature
[in]F0Central frequency
[in]ElLower state energy
[in]EuUpper state energy
[in]r_uppRelative ratio NLTE/LTE in upper ratio
[in]r_lowRelative ratio NLTE/LTE in lower ratio
Returns
d[(r_low - r_upp * gamma) / (1 - gamma)] / dT

Definition at line 116 of file linescaling.cc.

References ARTS_USER_ERROR_IF, c, Constant::h, and Constant::k.

◆ dabsorption_nlte_rate_dTl()

Numeric dabsorption_nlte_rate_dTl ( const Numeric &  gamma,
const Numeric &  T,
const Numeric &  Tl,
const Numeric &  El,
const Numeric &  r_low = 1.0 
)

Computes lower state temperature derivative of (r_low - r_upp * gamma) / (1 - gamma)

Parameters
[in]gammaStimulated emission at temperature
[in]TTemperature
[in]TlTemperature of lower level
[in]ElLower state energy
[in]r_lowRelative ratio NLTE/LTE in lower ratio
Returns
d[(r_low - r_upp * gamma) / (1 - gamma)] / dTl

Definition at line 147 of file linescaling.cc.

References Constant::k.

◆ dabsorption_nlte_rate_dTu()

Numeric dabsorption_nlte_rate_dTu ( const Numeric &  gamma,
const Numeric &  T,
const Numeric &  Tu,
const Numeric &  Eu,
const Numeric &  r_upp = 1.0 
)

Computes upper state temperature derivative of (r_low - r_upp * gamma) / (1 - gamma)

Parameters
[in]gammaStimulated emission at temperature
[in]TTemperature
[in]TuTemperature of lower level
[in]EuLower state energy
[in]r_uppRelative ratio NLTE/LTE in upper ratio
Returns
d[(r_low - r_upp * gamma) / (1 - gamma)] / dTu

Definition at line 158 of file linescaling.cc.

References Constant::k.

◆ dboltzman_factordE0()

Numeric dboltzman_factordE0 ( Numeric  T,
Numeric  E0 
)

Computes lower state energy derivatives exp(- E0/kT)

Parameters
[in]TTemperature
[in]E0Lower state energy
Returns
dexp(- E0/kT) / dE0

Definition at line 104 of file linescaling.cc.

◆ dboltzman_factordT()

Numeric dboltzman_factordT ( Numeric  T,
Numeric  E0 
)

Computes temperature derivatives exp(- E0/kT)

Parameters
[in]TTemperature
[in]E0Lower state energy
Returns
dexp(- E0/kT) / dT

Definition at line 96 of file linescaling.cc.

◆ dboltzman_ratio_dT()

Numeric dboltzman_ratio_dT ( const Numeric &  boltzmann_ratio,
const Numeric &  T,
const Numeric &  E0 
)

Computes temperature derivatives exp(E0/k (T - T0) / (T * T0))

Parameters
[in]boltzmann_ratioOutput of boltzmann_ratio(...)
[in]TTemperature
[in]E0Lower state energy
Returns
exp(E0/k (T - T0) / (T * T0))

Definition at line 81 of file linescaling.cc.

References c, and Constant::k.

◆ dboltzman_ratio_dT_div_boltzmann_ratio()

constexpr Numeric dboltzman_ratio_dT_div_boltzmann_ratio ( Numeric  T,
Numeric  E0 
)
constexpr

Computes temperature derivatives exp(E0/k (T - T0) / (T * T0)) / exp(E0/c (T - T0) / (T * T0))

Parameters
[in]TTemperature
[in]E0Lower state energy
Returns
E0 k / T^2

Definition at line 173 of file linescaling.h.

References Constant::k.

◆ dsingle_partition_function_dT()

Numeric dsingle_partition_function_dT ( const Numeric &  T,
const Species::IsotopeRecord ir 
)

Computes the partition function temperature derivative.

Parameters
[in]TTemperature
[in]partition_typeSwitch for partition type of line
[in]partition_dataPartition data of line
Returns
partition function derivative wrt temperature

Definition at line 9 of file linescaling.cc.

References PartitionFunctions::dQdT().

Referenced by LineShape::compute().

◆ dstimulated_emissiondF0()

Numeric dstimulated_emissiondF0 ( Numeric  T,
Numeric  F0 
)

Computes frequency derivative of exp(-hf/kT)

Parameters
[in]TTemperatures
[in]F0Frequency
Returns
dexp(-hf/kT) / dF0

Definition at line 27 of file linescaling.cc.

◆ dstimulated_emissiondT()

Numeric dstimulated_emissiondT ( Numeric  T,
Numeric  F0 
)

Computes temperature derivative of exp(-hf/kT)

Parameters
[in]TTemperatures
[in]F0Frequency
Returns
dexp(-hf/kT) / dT

Definition at line 20 of file linescaling.cc.

◆ dstimulated_relative_emission_dF0() [1/2]

Numeric dstimulated_relative_emission_dF0 ( const Numeric &  gamma,
const Numeric &  gamma_ref,
const Numeric &  T,
const Numeric &  T0 
)

Computes frequency derivative of (1 - gamma) / (1 - gamma_ref)

Parameters
[in]gammaStimulated emission at temperature
[in]gamma_refStimulated emission at reference temperature
[in]TTemperature
[in]T0Reference temperature
Returns
d[(1 - gamma) / (1 - gamma_ref)] / dF0

Definition at line 62 of file linescaling.cc.

References c, Constant::h, and Constant::k.

◆ dstimulated_relative_emission_dF0() [2/2]

Numeric dstimulated_relative_emission_dF0 ( const Numeric  F0,
const Numeric  T0,
const Numeric  T 
)
noexcept

Computes.

\[ \frac{h\left(T\left[1 -e^{h f_0/k T}\right] e^{h f_0 / k T_0} - T_0 \left[1 -e^{h f_0/k T_0}\right] e^{h f_0 / k T} \right)}{kTT_0 \left(1 -e^{h f_0/k T_0}\right)^2} \]

using std::expm1 for increased low number accuracies

Parameters
[in]gammaStimulated emission at temperature
[in]gamma_refStimulated emission at reference temperature
Returns
\( \frac{h\left(T\left[1 -e^{h f_0/k T}\right] e^{h f_0 / k T_0} - T_0 \left[1 -e^{h f_0/k T_0}\right] e^{h f_0 / k T} \right)}{kTT_0 \left(1 -e^{h f_0/k T_0}\right)^2} \)

Definition at line 42 of file linescaling.cc.

References Constant::h, Conversion::hz2joule(), Constant::k, Conversion::kelvin2joule(), and Math::pow2().

◆ dstimulated_relative_emission_dT() [1/2]

Numeric dstimulated_relative_emission_dT ( const Numeric &  gamma,
const Numeric &  gamma_ref,
const Numeric &  F0,
const Numeric &  T 
)

Computes temperature derivative of (1 - gamma) / (1 - gamma_ref)

Parameters
[in]gammaStimulated emission at temperature
[in]gamma_refStimulated emission at reference temperature
[in]F0Frequency
[in]TTemperature
Returns
d[(1 - gamma) / (1 - gamma_ref)] / dT

Definition at line 53 of file linescaling.cc.

References c, Constant::h, and Constant::k.

◆ dstimulated_relative_emission_dT() [2/2]

Numeric dstimulated_relative_emission_dT ( const Numeric  F0,
const Numeric  T0,
const Numeric  T 
)
noexcept

Computes.

\[ \frac{1}{T} \frac{h f_0}{k T} \frac{e^{h f_0/k T}}{1 - e^{h f_0 / k T_0}} \]

using std::expm1 for increased low number accuracies

Parameters
[in]gammaStimulated emission at temperature
[in]gamma_refStimulated emission at reference temperature
Returns
\( \frac{1}{T} \frac{h f_0}{k T} \frac{e^{h f_0/k T}}{1 - e^{h f_0 / k T_0}} \)

Definition at line 37 of file linescaling.cc.

References Conversion::hz2joule(), and Conversion::kelvin2joule().

◆ single_partition_function()

Numeric single_partition_function ( const Numeric &  T,
const Species::IsotopeRecord ir 
)

Computes the partition function at one temperature.

Parameters
[in]TTemperature
[in]partition_typeSwitch for partition type of line
[in]partition_dataPartition data of line
Returns
partition function

Definition at line 4 of file linescaling.cc.

References PartitionFunctions::Q().

Referenced by LineShape::compute(), lm_hitran_2017::convtp(), Absorption::LineMixing::ecs_eigenvalue_approximation(), Absorption::Lines::F_mean(), lm_hitran_2017::hitran_lm_eigenvalue_approximation(), and Absorption::LineMixing::PopulationAndDipole::PopulationAndDipole().

◆ stimulated_emission()

Numeric stimulated_emission ( Numeric  T,
Numeric  F0 
)

Computes exp(-hf/kT)

Parameters
[in]TTemperatures
[in]F0Frequency
Returns
exp(-hf/kT)

Definition at line 14 of file linescaling.cc.

◆ stimulated_relative_emission() [1/2]

Numeric stimulated_relative_emission ( const Numeric &  gamma,
const Numeric &  gamma_ref 
)

Computes (1 - gamma) / (1 - gamma_ref)

Parameters
[in]gammaStimulated emission at temperature
[in]gamma_refStimulated emission at reference temperature
Returns
(1 - gamma) / (1 - gamma_ref)

Definition at line 48 of file linescaling.cc.

◆ stimulated_relative_emission() [2/2]

Numeric stimulated_relative_emission ( const Numeric  F0,
const Numeric  T0,
const Numeric  T 
)
noexcept

Computes.

\[ \frac{1 - e^{h f_0/k T}}{1 - e^{h f_0 / k T_0}} \]

using std::expm1 for increased low number accuracies

Parameters
[in]gammaStimulated emission at temperature
[in]gamma_refStimulated emission at reference temperature
Returns
\( \frac{1 - e^{h f_0/k T}}{1 - e^{h f_0 / k T_0}} \)

Definition at line 33 of file linescaling.cc.

References Conversion::hz2joule(), and Conversion::kelvin2joule().