Source code for astrolyze.lte.molecule_parameter

# Copyright (C) 2012, Christof Buchbender
# BSD Licencse
r"""
This script generates a dictionary storing the information of molecular
transitions.
"""
from numpy import interp

import astrolyze.functions.constants as const

[docs]class Molecule: r""" A class holding attributes that define the characteristics of an individual tansition of a molecules. The :py:func:`astrolyze.functions.astro_functions.calc_N` routine depends on this class. Parameters ---------- nu : float Q : list The partition function of the molecule evaluated at discreet temperatures. Given in T. T : list The temperatures at which the partition functions was evaluated. The value of Q used finally is interpolated to the excitation_temperature give. Eu : float Energy of the upper state of the transition. Aul : float The Einstein coefficient. For the transition of upper-to-lower state. gu : float ADD DESCRIPTION. mu : float ADD DESCRIPTION. name : string The name of the molecule. """ def __init__(self, nu, Q, T, Eu, Aul, gu, mu, name=''): self.nu = nu self.Q = Q self.T = T self.Eu = Eu self.Aul = Aul self.gu = gu self.name = name self.mu = mu
molecule_dictionary = {} # HCO+ (1-0) nu = 89.1885247e9 # Hz # Z the partition function has to be interpolated to the desired value of T Q = [2.4426, 2.1638, 2.0276, 1.8481, 1.5488, 1.2519, 0.9592, 0.6748, 0.4315, 0.2225] T = [500.0, 300.0, 225.0, 150.0, 75.0, 37.50, 18.75, 9.375, 5.0, 2.725] Eu = 2.9750 Aul = 10 ** (-2.2608) gu = 3. mu = 3.9*const.debye_to_EsuCm HCO = Molecule(nu, Q, T, Eu, Aul, gu, mu, 'HCO+(1-0)') molecule_dictionary['HCO'] = HCO # HOC+ (1-0) nu = 89.4874140e9 # Hz # Z the partition function has to be interpolated to the desired value of T Q = [2.3558, 2.1739, 1.9228, 1.5554, 1.2505, 0.9578, 0.6735, 0.4303, 0.2214] T = [300.0, 225.0, 150.0, 75.0, 37.50, 18.75, 9.375, 5.0, 2.725] Eu = 2.9850 Aul = 10 ** (-2.7467) gu = 3. mu = 2.77*const.debye_to_EsuCm HOC = Molecule(nu, Q, T, Eu, Aul, gu, mu, 'HOC+(1-0)') molecule_dictionary['HOC']=HOC # HCN (1-0) nu = 88.6316022e9 # Hz Q = [2.9688, 2.6566, 2.5122, 2.3286, 2.0286, 1.7317, 1.4389, 1.1545, 0.9109, 0.7016] T = [500.0, 300.0, 225.0, 150.0, 75.0, 37.50, 18.75, 9.375, 5.0, 2.725] Eu = 2.9564 Aul = 10 ** (-2.5140) gu = 9. mu = 2.985*const.debye_to_EsuCm HCN = Molecule(nu, Q, T, Eu, Aul, gu, mu, 'HCN(1-0)') molecule_dictionary['HCN'] = HCN # HNC (1-0) nu = 90.6635680e9 # Hz Q = [2.5455, 2.2255, 2.0585, 1.8507, 1.5419, 1.2449, 0.9523, 0.6683, 0.4254, 0.2174] T = [500.0, 300.0, 225.0, 150.0, 75.0, 37.50, 18.75, 9.375, 5.0, 2.725] Eu = 3.0242 Aul = 10 ** (-2.5218) gu = 3. mu = 3.05*const.debye_to_EsuCm HNC = Molecule(nu, Q, T, Eu, Aul, gu, mu, 'HNC(1-0)') molecule_dictionary['HNC'] = HNC # 12CO (1-0) nu = 115.271e9 # Hz Q = [2.2584, 2.0369, 1.9123, 1.7370, 1.4386, 1.1429, 0.8526, 0.5733, 0.3389, 0.1478] T = [500.0, 300.0, 225.0, 150.0, 75.0, 37.50, 18.75, 9.375, 5.0, 2.725] Eu = 3.8450 Aul = 10 ** (-5.0105) gu = 3. mu = 0.11011*const.debye_to_EsuCm CO1210 = Molecule(nu, Q, T, Eu, Aul, gu, mu, '12(1-0)') molecule_dictionary['CO1210'] = CO1210 # 13CO (1-0) nu = 110.2013543e9 # Hz Q = [2.5789, 2.3574, 2.2328, 2.0575, 1.7589, 1.4630, 1.1722, 0.8919, 0.6558, 0.4611] T = [500.0, 300.0, 225.0, 150.0, 75.0, 37.50, 18.75, 9.375, 5.0, 2.725] Eu = 3.6759 Aul = 10 ** (-5.0662) gu = 6 mu = 0.11046*const.debye_to_EsuCm CO1310 = Molecule(nu, Q, T, Eu, Aul, gu, mu, '13CO(1-0)') molecule_dictionary['CO1310'] = CO1310 molecule_dictionary['13CO'] = CO1310 # 12CO (2-1) nu = 230.537990e9 # Hz Q = [2.2584, 2.0369, 1.9123, 1.7370, 1.4386, 1.1429, 0.8526, 0.5733, 0.3389, 0.1478] T = [500.0, 300.0, 225.0, 150.0, 75.0, 37.50, 18.75, 9.375, 5.0, 2.725] Eu = 11.5350 Aul = 10 ** (-4.1197) gu = 5. mu = 0.11011 * const.debye_to_EsuCm CO1221 = Molecule(nu, Q, T, Eu, Aul, gu, mu, '12CO(2-1)') molecule_dictionary['CO1221'] = CO1221 molecule_dictionary['12CO'] = CO1221 # CN nu = 112.1016560e9 # Hz Q = [3.0450, 2.8222, 2.6976, 2.5223, 2.2238, 1.9280, 1.6376, 1.3579, 1.1228, 0.9303] T = [500.0, 300.0, 225.0, 150.0, 75.0, 37.50, 18.75, 9.375, 5.0, 2.725] Eu = 2042.4222 Aul = 10 ** (-8.0612) gu = 2. mu = 1.45 * const.debye_to_EsuCm CN = Molecule(nu, Q, T, Eu, Aul, gu, mu, '12CO(2-1)') molecule_dictionary['CN'] = CN # CCH # CCH has six hyperfine transitions, the values given here correspond to the # strongest transition. nu = 87.3168980e9 # Hz Q = [3.9556, 3.3192, 2.9114, 2.7164, 2.4836, 2.1605, 1.8628, 1.5699, 1.2852, 1.0411, 0.8308] T = [1000.0, 500.0, 300.0, 225.0, 150.0, 75.0, 37.50, 18.75, 9.375, 5.0, 2.725] Eu = 2.914 Aul = 10 ** (-5.2060) gu = 5. mu = 0.77 * const.debye_to_EsuCm CCH = Molecule(nu, Q, T, Eu, Aul, gu, mu, 'CCH(1-0)') molecule_dictionary['CCH'] = CCH