16 static constexpr Numeric c1 = -h / k;
17 return std::exp(c1 * F0 / T);
23 static constexpr Numeric c1 = -h / k;
24 return -F0 * c1 * std::exp(F0 * c1 / T) / pow2(T);
29 static constexpr Numeric c1 = -h / k;
30 return c1 * std::exp(F0 * c1 / T) / T;
49 const Numeric& gamma_ref) {
50 return (1. - gamma) / (1. - gamma_ref);
54 const Numeric& gamma_ref,
59 return c * F0 * gamma / (T * T * (1. - gamma_ref));
63 const Numeric& gamma_ref,
68 const Numeric g0 = 1 - gamma_ref;
69 const Numeric g = 1 - gamma;
71 return c * (g * gamma_ref / (T0 * g0 * g0) - gamma / (T * g0));
75Numeric
boltzman_ratio(
const Numeric& T,
const Numeric& T0,
const Numeric& E0) {
78 return exp(E0 *
c * (T - T0) / (T * T0));
86 return E0 *
c * boltzmann_ratio / (T * T);
99 static constexpr Numeric c1 = -1 / k;
100 return -E0 * c1 * std::exp(E0 * c1 / T) / pow2(T);
106 static constexpr Numeric c1 = -1 / k;
107 return c1 * std::exp(E0 * c1 / T) / T;
111 const Numeric& r_upp,
112 const Numeric& r_low)
noexcept {
113 return (r_low - r_upp * gamma) / (1 - gamma);
121 const Numeric& r_upp,
122 const Numeric& r_low) {
126 "It is considered undefined behavior to NLTE and "
127 "temperature Jacobian without defining all "
128 "vibrational energy states")
130 const Numeric x = 1 / (T * (gamma - 1));
134 ((gamma - 1) * (El * r_low - Eu * gamma * r_upp) -
135 hf * gamma * (r_low - r_upp));
140 const Numeric& r_upp,
141 const Numeric& r_low) {
144 return c * gamma * (r_low - r_upp) / (T *
Math::pow2(gamma - 1));
151 const Numeric& r_low) {
153 const Numeric y = 1 / Tl;
155 return El * x * y * y * T * r_low / (gamma - 1);
162 const Numeric& r_upp) {
164 const Numeric y = 1 / Tu;
166 return Eu * x * y * y * T * gamma * r_upp / (gamma - 1);
#define ARTS_USER_ERROR_IF(condition,...)
Numeric boltzman_factor(Numeric T, Numeric E0)
Computes exp(- E0/kT)
Numeric stimulated_emission(Numeric T, Numeric F0)
Computes exp(-hf/kT)
Numeric dboltzman_factordT(Numeric T, Numeric E0)
Computes temperature derivatives exp(- E0/kT)
Numeric dabsorption_nlte_rate_dT(const Numeric &gamma, const Numeric &T, const Numeric &F0, const Numeric &El, const Numeric &Eu, const Numeric &r_upp, const Numeric &r_low)
Computes temperature derivatives of (r_low - r_upp * gamma) / (1 - gamma)
Numeric dstimulated_emissiondF0(Numeric T, Numeric F0)
Computes frequency derivative of exp(-hf/kT)
Numeric dabsorption_nlte_rate_dF0(const Numeric &gamma, const Numeric &T, const Numeric &r_upp, const Numeric &r_low)
Computes frequency derivative of (r_low - r_upp * gamma) / (1 - gamma)
Numeric dsingle_partition_function_dT(const Numeric &T, const Species::IsotopeRecord &ir)
Computes the partition function temperature derivative.
Numeric dstimulated_relative_emission_dF0(const Numeric F0, const Numeric T0, const Numeric T) noexcept
Computes.
Numeric boltzman_ratio(const Numeric &T, const Numeric &T0, const Numeric &E0)
Computes exp(E0/c (T - T0) / (T * T0))
Numeric dabsorption_nlte_rate_dTl(const Numeric &gamma, const Numeric &T, const Numeric &Tl, const Numeric &El, const Numeric &r_low)
Computes lower state temperature derivative of (r_low - r_upp * gamma) / (1 - gamma)
Numeric single_partition_function(const Numeric &T, const Species::IsotopeRecord &ir)
Computes the partition function at one temperature.
Numeric dboltzman_ratio_dT(const Numeric &boltzmann_ratio, const Numeric &T, const Numeric &E0)
Computes temperature derivatives exp(E0/k (T - T0) / (T * T0))
Numeric stimulated_relative_emission(const Numeric F0, const Numeric T0, const Numeric T) noexcept
Computes.
Numeric absorption_nlte_ratio(const Numeric &gamma, const Numeric &r_upp, const Numeric &r_low) noexcept
Computes (r_low - r_upp * gamma) / (1 - gamma)
Numeric dstimulated_emissiondT(Numeric T, Numeric F0)
Computes temperature derivative of exp(-hf/kT)
Numeric dabsorption_nlte_rate_dTu(const Numeric &gamma, const Numeric &T, const Numeric &Tu, const Numeric &Eu, const Numeric &r_upp)
Computes upper state temperature derivative of (r_low - r_upp * gamma) / (1 - gamma)
Numeric dboltzman_factordE0(Numeric T, Numeric E0)
Computes lower state energy derivatives exp(- E0/kT)
Numeric dstimulated_relative_emission_dT(const Numeric F0, const Numeric T0, const Numeric T) noexcept
Computes.
Constains various line scaling functions.
Namespace containing several constants, physical and mathematical.
constexpr Numeric k
Boltzmann constant convenience name [J/K].
constexpr Numeric h
Planck constant convenience name [J s].
constexpr auto kelvin2joule(auto x) noexcept
Conversion from Kelvin to Joule.
constexpr auto hz2joule(auto x) noexcept
Conversion from MHz to Joule.
Namespace containing several constants, physical and mathematical.
constexpr auto pow2(auto x) noexcept
power of two
Numeric dQdT(Numeric T, const Species::IsotopeRecord &ir)
Numeric Q(Numeric T, const Species::IsotopeRecord &ir)
Struct containing all information needed about one isotope.