Source code for lir_achem.compute_coefficients_mitra

"""Here we compute the chesmitry coefficients as presented in Mitra & Rowe, 1974"""

import numpy as np


[docs] def B_coeff(M): """Coefficient B from Mitra & Rowe, 1974""" return 1e-31 * M**2
[docs] def alpha_i(): """Recombination of each positive ion to the negative ones From Mitra & Rowe, 1972""" return 1e-7
[docs] def Xm_to_e(M): """X- -> e :param M: [O2] + [N2] From Breakall, 1982: Private communication in Burns et al., 1991 """ gamma_2 = 0.1 + 4E-17 * M return gamma_2
[docs] def O2m_to_e(N2, O2, O, H, Tn): """O2- -> e This comes from reactions 26, 27, 31, 33 and 34 of Table 10 of Pavlov, 2014 We assume that [O2(1Dg)] is 1e10 cm-3 at our altitudes (Crutzen et al., 1970 (Figure 1)) :param N2: Density of N2 (cm-3) :param O2: Density of N2 (cm-3) :param O: Density of O (cm-3) :param H: Density of H (cm-3) :param Tn: Neutral density (in K) """ # Temperature X = 300 / Tn O21Dg = 1e-10 # Reaction rates A_26 = 1.9e-12 * X ** (-1.5) * np.exp(-4990 / Tn) A_27 = 2.7e-10 * X ** (-0.5) * np.exp(-5590 / Tn) A_31 = 2.1e-10 A_33 = 7e-10 A_34 = 1.4e-9 return A_26 * N2 + A_27 * O2 + A_31 * O + A_33 * O21Dg + A_34 * H
[docs] def e_to_O2m(Tn, O2, N2): """ e- -> O2- From reactions 1 and 2 in Table 10 of Pavlov, 2014 :param Tn: Neutrals temperature (in K) :param O2: O2 density (cm-3) :param N2: N2 density (cm-2) """ # Temperature X = 300 / Tn # Reaction rates A_1 = 1.4e-29 * X * np.exp(-600 / Tn) A_2 = 1.07e-31 * X**2 * np.exp(-70 / Tn) return A_1 * O2**2 + A_2 * O2 * N2
[docs] def O2m_to_Xm(O2, M, O3): """ :param O2: O2 density (cm-3) :param M: O2 + N2 density (cm-3) :param O3: O3 density (cm-3) From Mitra, 1975""" return 1e-30 * O2 * M + 3e-10 * O3
[docs] def e_and_NOp(Tn): """Recombination coefficient of NO+ and e- From Pavlov, 2014, reaction 30 of Table 6 Tn is less than 1200 K :param Tn: Neutral temperature (in K)""" # Temperature X = 300 / Tn # Reaction rate A_30 = 3.5e-7 * X ** (0.69) return A_30
[docs] def e_and_O2p(Tn): """Recombination coefficent of O2+ and e- From Pavlov, 2014, reaction 27 of Table 6 We assume Tn is less than 1200 K :param Tn: Neutral temperature (in K)""" # Temperature X = 300 / Tn return 1.95e-7 * X**0.7
[docs] def e_and_04p(Tn): """Recombination coefficient for O4+ and e- From Pavlov, 2014, reaction 110 of Table 6 :param Tn: Neutrals temperature (in K)""" # Temperature X = 300 / Tn return 4.2e-6 * X**0.48
[docs] def e_and_Yp(): """Recombination coefficient""" return 1e-5
[docs] def O2p_to_04p(M, O2, Tn): """O2+ -> O4+ From Pavlov, 2014, reaction 36 of Table 6 :param M: O2 + N2 densities (in cm-3) :param O2: O2 density (in cm-3) :param Tn: Neutral temperature (in K)""" # Temperature X = 300 / Tn # Rate A_36 = 4e-30 * X**2.93 return A_36 * M * O2
[docs] def O4p_to_O2p(M, O, Tn): """O4+ -> O2+ From Pavlov, 2014, reactions 37, 44 and 45 of Table 6 We assume that [O2(1Dg)] is 1e10 cm-3 at our altitudes (Crutzen et al., 1970 (Figure 1)) :param M: O2 + N2 densities (in cm-3) :param O: O density (in cm-3) :param Tn: Neutrals temperature (in K) """ # Temperature X = 300 / Tn O21Dg = 1e10 # Rates A_37 = 1.3e-6 * X**3.93 * np.exp(-4607 / Tn) A_44 = 3e-10 A_45 = 1e-10 return A_37 * M + A_44 * O + A_45 * O21Dg
def O4p_to_Yp(H2O): return 1e-9 * H2O def Xm_and_O4p(): return 1e-6
[docs] def O2p_to_NOp(NO, N): """O2+ -> NO+ From Pavlov, 2014, reactions 28 and 29 of Table 6 :param NO: NO density (in cm-3) :param N: N density (in cm-3)""" return 4.1e-10 * NO + 1e-10 * N
def get_mr_coeffs(n_here, e_here): result = np.zeros((15, len(e_here.altitudes))) start = int(e_here.altitudes[0]) stop = int(e_here.altitudes[-1]) + 1 O2 = n_here.O2[start:stop] N2 = n_here.N2[start:stop] O = n_here.O[start:stop] NO = n_here.NO[start:stop] H2O = n_here.H2O[start:stop] M = n_here.M[start:stop] O3 = n_here.O3[start:stop] H = n_here.H[start:stop] Tn = n_here.Tn[start:stop] N = n_here.N[start:stop] result[0, :] = B_coeff(M) result[1, :] = alpha_i() result[2, :] = Xm_to_e(M) result[3, :] = O2m_to_e(N2, O2, O, H, Tn) result[4, :] = e_to_O2m(Tn, O2, N2) result[5, :] = O2m_to_Xm(O2, M, O3) result[6, :] = e_and_NOp(Tn) result[7, :] = e_and_O2p(Tn) result[8, :] = e_and_04p(Tn) result[9, :] = e_and_Yp() result[10, :] = O2p_to_04p(M, O2, Tn) result[11, :] = O4p_to_O2p(M, O, Tn) result[12, :] = O4p_to_Yp(H2O) result[13, :] = Xm_and_O4p() result[14, :] = O2p_to_NOp(NO, N) return result