Пример #1
0
def mephenesin(param):
    """Molecular parameters for mephenesin

    rot constants and dipole moments from [Ecija2014]_ et al, JPC B 118, 5357 dipole moment values
    calculated (Daniel Horke, Gamess2013, B3LYP, ACCT)

    .. todo:: (Nicole Teschmit) Fix references (-> references.rst, cite here); provide full
        sentences in description.

    """

    param.name = "mephenesin"
    param.mass = 10 * Masses['C'] + 3 * Masses['O'] + 14 * Masses['H']
    param.watson = 'A'
    param.symmetry = 'N'
    if param.isomer == 0:  #conformer A
        param.rotcon = convert.Hz2J(
            num.array([1707.7896e6, 388.661705e6, 331.331684e6]))
        param.dipole = convert.D2Cm(num.array([1.15, 0.56, 1.12]))
    elif param.isomer == 1:  #conformer B
        param.rotcon = convert.Hz2J(
            num.array([1978.986e6, 349.300307e6, 305.408511e6]))
        param.dipole = convert.D2Cm(num.array([-2.36, -0.48, -0.04]))
    elif param.isomer == 2:  #conformer C
        param.rotcon = convert.Hz2J(
            num.array([1615.04911e6, 455.423567e6, 385.954447e6]))
        param.dipole = convert.D2Cm(num.array([1.47, -1.32, -1.62]))
Пример #2
0
def water_hexamer(param):
    """Molecular parameters for water hexamer1 cage structure`

    * Dipole moment for cage structure \mueff taken from [Perez:Science336:897], http://science.sciencemag.org/content/336/6083/897
    * Experimental rotational constants A,B,C taken from [Liu:Nature381:501]  https://www.nature.com/articles/381501a0
    * symmetry  [Liu:Nature381:501]  https://www.nature.com/articles/381501a0

    Molecular parameters for water hexamer2 prism structure`
    * thereotical dipole moment for cage  uu structure from [Perez:Science336:897], http://science.sciencemag.org/content/336/6083/897
    * Experimental rotational constants from from [Perez:Science336:897], http://science.sciencemag.org/content/336/6083/897

    Molecular parameters for water hexamer3 book structure`
    * theoretical dipole moment for cage  uu structure from [Perez:Science336:897], http://science.sciencemag.org/content/336/6083/897
    * Experimental rotational constants from [Perez:Science336:897], http://science.sciencemag.org/content/336/6083/897
    """
    param.name = "water_hexamer"
    param.symmetry = 's'
    param.watson = 'S'
    param.mass = 6 * Masses['O'] + 12 * Masses['H']
    if param.isomer == 0:
        param.rotcon = convert.Hz2J(
            num.array([2163.61e+6, 1131.2e+06, 1068.8e+06]))
        param.dipole = convert.D2Cm(num.array([1.63, 0.32, 1.13]))
    elif param.isomer == 1:
        param.rotcon = convert.Hz2J(
            num.array([1658.224e+6, 1362.000e+06, 1313.124e+06]))
        param.dipole = convert.D2Cm(num.array([2.41, 0.88, 0.42]))
    elif param.isomer == 2:
        param.rotcon = convert.Hz2J(
            num.array([1879.4748e+6, 1063.9814e+06, 775.0619e+06]))
        param.dipole = convert.D2Cm(num.array([0.17, 2.46, 0.16]))
Пример #3
0
def water_heptamer(param):
    """Molecular parameters for water heptamer1 `

    * Estimated experimental dipole moment \mueff taken from : [Perez:ChemPhysLett571:1] https://doi.org/10.1016/j.cplett.2013.04.014
    * Experimental rotational constants A,B,C taken from [Perez:ChemPhysLett571:1] https://doi.org/10.1016/j.cplett.2013.04.014
    * Quartic centrifugal distortion constants in Watson’s A-reduced asymmetric rotor Hamiltonian from [Perez:ChemPhysLett571:1] https://doi.org/10.1016/j.cplett.2013.04.014
    * Symmetry C1 from [Kim:JCP110:9128] https://pdfs.semanticscholar.org/2dbf/30f606a224ca7f05885ac28d1ab4d930bc36.pdf

    Molecular parameters for water heptamer2
    * Estimated experimental dipole moment \mueff taken from : [Perez:ChemPhysLett571:1] https://doi.org/10.1016/j.cplett.2013.04.014
    * Experimental rotational constants A,B,C taken from [Perez:ChemPhysLett571:1] https://doi.org/10.1016/j.cplett.2013.04.014
    * Quartic centrifugal distortion constants in Watson’s A-reduced asymmetric rotor Hamiltonian from [Perez:ChemPhysLett571:1] https://doi.org/10.1016/j.cplett.2013.04.014
    * Symmetry C1 from [Kim:JCP110:9128] https://pdfs.semanticscholar.org/2dbf/30f606a224ca7f05885ac28d1ab4d930bc36.pdf
    """
    param.name = "water_heptamer"
    param.mass = 7 * Masses['O'] + 14 * Masses['H']
    param.symmetry = 'N'
    if param.isomer == 0:
        param.watson = 'A'
        param.rotcon = convert.Hz2J(
            num.array([1304.43555e+6, 937.88441e+06, 919.52364e+06]))
        param.dipole = convert.D2Cm(num.array([1.0, 1.0, 0.0]))
        param.quartic = convert.Hz2J(
            num.array([0.4567e+3, -0.342e+3, 0.842e+3, 0.0377e+3, 0.63e+3
                       ]))  #\Delta_{J}, \Delta_{JK}, \Delta_{K}, d_{J}, d_{K}
    elif param.isomer == 1:
        param.watson = 'S'
        param.rotcon = convert.Hz2J(
            num.array([1345.15942e+6, 976.8789e+06, 854.47389e+06]))
        param.dipole = convert.D2Cm(num.array([1.0, 0.0, 1.0]))
Пример #4
0
def oblate_symmetric_top(param):
    """Molecular parameters for an artificial oblate top

    Implemented isomers are

    0. rotor type is set to 'S' - symmetric top, and symmetry is set to 'o' - oblate
    1. rotor type is set to 'A' - asymmetric top, and symmetry is set to 'C2c' - only u_c != 0
    """
    param.name = "oblate_symmetric_top"
    param.mass = 6 * Masses['C'] + 6 * Masses['H']
    if 0 == param.isomer:
        param.type = 'S'
        param.symmetry = 'o'
        param.rotcon = convert.Hz2J(num.array([3000.0e6, 1000.0e6]))
        param.quartic = num.array(
            [convert.Hz2J(0.0),
             convert.Hz2J(0.0),
             convert.invcm2J(0.0)])
        param.dipole = convert.D2Cm(num.array([1.]))
    elif 1 == param.isomer:
        param.type = 'A'
        param.watson = 'A'
        param.symmetry = 'C2c'
        param.rotcon = convert.Hz2J(num.array([3000.0e6, 3000.0e6, 1000.0e6]))
        param.quartic = num.array([0., 0., 0., 0., 0.])
        param.dipole = convert.D2Cm(num.array([0., 0., 1.]))
Пример #5
0
def methane(param):
    """Methane (CH:math:`_4`)

    I (Jens Kienitz) AM NOT SURE, IF THE POLARIZABILITY IS CORRECT IMPLEMENTED!

    Molecular parameters for methane: Rotational constant are from [Herzberg:PolyElectronic:1966]_
    and NIST; the polarizability is from ??? measurements [Olney:ChemPhys223:59]_ and NIST, and the
    centrifugal distortion constant: [Lohr:JCP84:4196]_

    .. math:: param.polar[0] = \alpha_{zz} = \alpha_\parallel
    .. math:: param.polar[1] = \alpha_{xx} = \alpha_{yy} = \alpha_\perp

    All polarizabilies are in SI units

    .. todo:: (Jens Kienitz) (centrfugal dist. const.?) have to be verified!

    .. todo:: (Jens Kienitz): add reference for "NIST" (general weblink might be enough).

    """
    param.name = "methane"
    param.mass = 4 * Masses['H'] + 1 * Masses['C']
    param.type = 'S'
    param.symmetry = 'p'
    param.rotcon = convert.Hz2J(num.array([157.12722e9, 157.12722e9]))
    param.dipole = convert.D2Cm(num.array([0.0]))
    param.quartic = convert.Hz2J(num.array([3.324e6, 135e3, 0.0]))
    param.polarizability = num.array([2.724e-40, 0.0])
Пример #6
0
 def setUpClass(self):
     """Run before the first test"""
     # set molecular parameters
     self.param = starkeffect.CalculationParameter
     self.param.isomer = 0
     self.param.watson = 'A'
     self.param.symmetry = 'C2a'
     self.param.rotcon = convert.Hz2J(
         num.array([5655.2654e6, 1546.875864e6, 1214.40399e6]))
     self.param.quartic = convert.Hz2J(
         num.array([45.6, 938.1, 500, 10.95, 628]))
     self.param.dipole = convert.D2Cm(num.array([4.5152, 0., 0.]))
     # calculation details
     self.param.M = [0, 1]
     self.param.Jmin = 0
     self.param.Jmax_calc = 15
     self.param.Jmax_save = 3
     self.param.dcfields = convert.kV_cm2V_m(num.linspace(0., 100., 5))
     # create Molecule object and specify storage file
     self.param.name = "__cmiext_test_starkeffect"
     self.storagename = self.param.name + ".molecule"
     if os.path.exists(self.storagename):
         raise EnvironmentError(
             "Test storage file already exists, not overwriting")
     self.bn = molecule.Molecule(storage=self.storagename,
                                 name=self.param.name)
     # calculate Stark energies
     self.bn.starkeffect_calculation(self.param)
Пример #7
0
def phenylpyrrole(param):
    """ A. J. Fleisher
    """
    param.name = "phenylpyrrole"
    param.watson = 'A'
    param.symmetry = 'C2a'
    param.rotcon = convert.Hz2J(num.array([3508.34e6, 703.50e6, 604.84e6]))
    param.dipole = convert.D2Cm(num.array([-1.56, 0., 0.]))
Пример #8
0
def iodomethane(param):
    """Molecular parameters for iodomethane (:math:`\\text{CH}_3\\text{I}`)

    B, DJ, and DK constants from [Wlodarczak1987]_ and [Gadhi1989]_.
    A and DK constants from [Pietila1996]_.

    Implemented isomers are
    0. above constants using symmetric-top Hamiltonian
    1. above constants using asymmetric-top Hamiltonian

    The special implementation 1 is not meant for production use. Instead, it was, and is, useful for benchmarking and
    debugging the various cases of the Stark code. Please do not remove it, but also do not use it for regular
    scientific work.

    .. todo:: Sebastian Trippel, please rewrite documentation in more detail, using math syntax for subscritpts, etc.

    """
    param.name = "iodomethane"
    param.mass = 3 * Masses['H'] + Masses['C'] + Masses['I']
    if 0 == param.isomer:
        param.type = 'S'
        param.symmetry = 'p'
        param.rotcon = num.array(
            [convert.invcm2J(5.1742629),
             convert.Hz2J(7501.2757456e6)])
        param.quartic = num.array([
            convert.Hz2J(6.307583e3),
            convert.Hz2J(98.76798e3),
            convert.invcm2J(87.857e-6)
        ])
        param.dipole = convert.D2Cm(num.array([1.6406]))
    elif 1 == param.isomer:
        param.type = 'A'
        param.watson = 'A'
        param.symmetry = 'C2a'
        param.rotcon = num.array([
            convert.invcm2J(5.1742629),
            convert.Hz2J(7501.2757456e6),
            convert.Hz2J(7501.2757456e6)
        ])
        param.quartic = num.array([
            convert.Hz2J(6.307583e3),
            convert.Hz2J(98.76798e3),
            convert.invcm2J(87.857e-6), 0., 0.
        ])
        param.dipole = convert.D2Cm(num.array([1.6406, 0., 0.]))
Пример #9
0
def six_chloropyridazine_three_carbonitrile(param):
    """ Molecular parameters for 6-chloropyridazine-3-carbonitrile

    Gaussian 2003 B3LYP/aug-pc-1; see [Hansen2013]_"""
    param.name = "6-chloropyridazine-3-carbonitrile"
    param.mass = 5 * Masses['C'] + 1 * Masses['Cl'] + 3 * Masses[
        'N'] + 2 * Masses['H']
    param.type = 'A'
    param.watson = None
    param.symmetry = 'N'
    if param.isomer == 0:
        param.rotcon = convert.Hz2J(
            num.array([5905.472e6, 717.422e6, 639.708e6]))
        param.dipole = convert.D2Cm(num.array([0, 4.37, 2.83]))
    elif param.isomer == 1:
        param.rotcon = convert.Hz2J(
            num.array([5905.472e6, 717.422e6, 639.708e6]))
        param.dipole = convert.D2Cm(num.array([0, 0, 2.83]))
Пример #10
0
def propylene_oxide(param):
    """Molecular parameters for propylene oxide, CDMS database
    """
    param.name = "propylene_oxide"
    param.mass = 3 * Masses['C'] + 6 * Masses['H'] + 1 * Masses['O']
    param.watson = 'A'
    param.symmetry = 'N'
    param.rotcon = convert.Hz2J(num.array([18023.89e6, 6682.14e6, 5951.39e6]))
    param.dipole = convert.D2Cm(num.array([0.95, 1.67, 0.56]))
Пример #11
0
def ammonia_dimer(param):
    param.name = "ammonia_dimer"
    param.mass = 6 * Masses['H'] + 2 * Masses['N']
    param.type = 'S'
    param.symmetry = 'p'
    #values from MP2/6-31++g(d,p) level calculations for now. dipole moment from wiki...
    param.rotcon = convert.Hz2J(num.array([1.18143309e+11, 5.22172740e+09]))
    param.quartic = convert.Hz2J(num.array([0.0, 0.0, 0.0]))
    param.dipole = convert.D2Cm(num.array([2.61]))
Пример #12
0
def methylvinylketone(param):
    """Molecular parameters for Methyl Vinyl Ketone

    Implemented isomers are
    0. cis, experimetnal rot. const. of A symmetry from [Wilcox2011]_, and dipole moment is MP2 calculation results from \
    [Wilcox2011]_ with 0.81 scaling factor
    1. trans, experimental  rot. const. of A symmetry from [Wilcox2011]_, and experimental dipole moment: [Foster1965]_
    """
    param.name = "methylvinylketone"
    param.type = 'A'
    param.symmetry = 'N'
    if param.isomer == 0:  #cis
        param.rotcon = convert.Hz2J(
            num.array([10.240938e9, 3.9916351e9, 2.925648e9]))
        param.dipole = convert.D2Cm(num.array([0.54, 2.59, 0.]))
    elif param.isomer == 1:  #trans
        param.rotcon = convert.Hz2J(
            num.array([8.94159e9, 4.2745443e9, 2.9453315e9]))
        param.dipole = convert.D2Cm(num.array([2.53, 1.91, 0.]))
Пример #13
0
def AcPheCysNH2(param):
    """Molecular parameters for dipeptide Ac-Phe-Cys-NH2

    .. todo:: Document (reference) the source of the parameters
    """
    param.name = "apcn"
    param.mass = 14 * Masses['C'] + 3 * Masses['O'] + 3 * Masses[
        'N'] + 1 * Masses['S'] + 19 * Masses['H']
    param.type = 'A'
    param.watson = 'A'
    param.symmetry = 'N'
    if param.isomer == 0:
        param.rotcon = convert.Hz2J(
            num.array([340.181593e6, 203.443113e6, 159.877010e6]))
        param.dipole = convert.D2Cm(num.array([0.768, 2.406, 1.975]))
    elif param.isomer == 1:
        param.rotcon = convert.Hz2J(
            num.array([345.067516e6, 215.965933e6, 175.850323e6]))
        param.dipole = convert.D2Cm(num.array([6.789, -2.701, 3.406]))
Пример #14
0
def adenine(param):
    """Molecular parameters for adenine

    Expt values for 9H rot constants from [Brown1989]_

    All values for 7H and all dipole moments from [Franz2014]_

    """
    param.name = "adenine"
    param.mass = 5 * Masses['C'] + 5 * Masses['H'] + 5 * Masses['N']
    param.watson = 'A'
    param.symmetry = 'N'
    if param.isomer == 0:  # tautomer 9H
        param.rotcon = convert.Hz2J(
            num.array([2371.873e6, 1573.3565e6, 946.2576e6]))
        param.dipole = convert.D2Cm(num.array([1.86, -1.39, -0.03]))
    elif param.isomer == 1:  # tautomer 7H
        param.rotcon = convert.Hz2J(num.array([2381.1e6, 1531.7e6, 933.0e6]))
        param.dipole = convert.D2Cm(num.array([-0.27, -6.79, 0.67]))
Пример #15
0
def ammonia(param):
    print_incorrect_warning('ammonia', 'inversion splitting')
    param.name = "ammonia"
    param.mass = 3 * Masses['H'] + 1 * Masses['N']
    param.type = 'S'
    param.symmetry = 'o'
    #values from MP2/6-31++g(d,p) level calculations for now. dipole moment from wiki...
    param.rotcon = convert.Hz2J(num.array([2.98965765e+11, 1.88232489e+11]))
    param.quartic = convert.Hz2J(num.array([0.0, 0.0, 0.0]))
    param.dipole = convert.D2Cm(num.array([1.42]))
Пример #16
0
def water_decamer(param):
    """Molecular parameters for decamer`

    * dipole moment \mueff taken from :https://aip.scitation.org/doi/pdf/10.1063/1.481613?class=pdf
    * rotational constants A,B,C taken from https://aip.scitation.org/doi/pdf/10.1063/1.481613?class=pdf
    """
    param.name = "water_decamer"
    param.mass = 10 * Masses['O'] + 20 * Masses['H']
    param.rotcon = convert.Hz2J(num.array([591e+06, 569e+06, 509e+06]))
    param.dipole = convert.D2Cm(num.array([2.7, 0.0, 0.0]))
Пример #17
0
def four_aminobenzonitrile(param):
    """ See [Borst2001]_
    """
    param.name = "4-aminobenzonitrile"
    param.type = 'A'
    param.watson = 'A'
    param.symmetry = 'C2a'
    param.rotcon = convert.Hz2J(num.array([5.5793e9, 0.99026e9, 0.84139e9]))
    param.quartic = convert.Hz2J(num.array([0.0, 0.0, 0.0, 0.0, 0.0]))
    param.dipole = convert.D2Cm(num.array([6.41, 0., 0.]))
Пример #18
0
def water(param):
    """Molecular parameters for water isotopologues (:math:`\\text{H}_2\\text{O}`, :math:`\\text{D}_2\\text{O}`, :math:`\\text{HDO}`)

    :param param: Calculation parameter object to be filled with appropriate content
    :type param: starkeffect.CalculationParameter

    Implemented isomers are

    0. H2O: experimental inertial parameters from [DeLucia1974]_ and experimental dipole moment from [Shostak1991]_
    1. D2O: experimental inertial parameters from [Steenbeckeliers1973]_ and experimental dipole moment from [Clough1973]_
    2. HDO: experimental inertial parameters from [DeLucia1971]_ and experimental dipole moment from [Shostak1991]_

    Default isomers are '0' for water/H2O, '1' for D2O, and '2' for HDO.

    .. seealso:: These molecular parameters and references are also listed at NIST Spectral Database - H2O [NISTspecDB_H2O]_

    """
    param.name = "water"
    param.watson = 'A'
    if param.isomer == 0:
        param.mass = Masses['O'] + 2 * Masses['H']
        param.symmetry = 'C2b'
        param.rotcon = convert.Hz2J(
            num.array([835840.288e6, 435351.717e6, 278138.700e6]))
        param.quartic = convert.Hz2J(
            num.array(
                [37.59422e6, -172.9128e6, 973.29052e6, 15.210402e6,
                 41.0502e6]))
        param.dipole = convert.D2Cm(num.array([0., -1.857, 0.]))
    elif param.isomer == 1:
        param.mass = Masses['O'] + 2 * Masses['D']
        param.symmetry = 'C2b'
        param.rotcon = convert.Hz2J(
            num.array([462278.854e6, 218038.233e6, 145258.022e6]))
        param.dipole = convert.D2Cm(num.array([0., -1.8558, 0.]))
    elif param.isomer == 2:
        param.mass = Masses['O'] + Masses['H'] + Masses['D']
        param.symmetry = 'N'
        param.rotcon = convert.Hz2J(
            num.array([701931.50e6, 272912.60e6, 192055.25e6]))
        param.quartic = convert.Hz2J(
            num.array([10.8375e6, 34.208e6, 377.078e6, 3.6471e6, 63.087e6]))
        param.dipole = convert.D2Cm(num.array([-0.6591, -1.7304, 0.]))
Пример #19
0
def three_aminobenzonitrile(param):
    """ See [Miller2009]_
    """
    param.name = "3-aminobenzonitrile"
    param.type = 'A'
    param.watson = 'A'
    param.symmetry = 'N'
    param.rotcon = convert.Hz2J(num.array([3.3727e9, 1.2099e9, 0.8908e9]))
    param.quartic = convert.Hz2J(num.array([0.0, 0.0, 0.0, 0.0, 0.0]))
    param.dipole = convert.D2Cm(num.array([4.8, 1.2, 0.]))
Пример #20
0
def difluoro_iodobenzene(param):
    """ parameters from simple ab initio calculations [Kuepper2010]_.
    """
    param.name = "2,6-difluoro-iodobenzene"
    param.type = 'A'
    param.watson = 'A'
    param.symmetry = 'C2a'
    param.rotcon = convert.Hz2J(num.array([1740e6, 713e6, 506e6]))
    param.quartic = convert.Hz2J(num.array([0., 0., 0., 0., 0.]))
    param.dipole = convert.D2Cm(num.array([2.25, 0., 0.]))
Пример #21
0
def two_aminobenzonitrile(param):
    """ See [Miller2009]_
    """
    param.name = "2-aminobenzonitrile"
    param.type = 'A'
    param.watson = 'A'
    param.symmetry = 'N'
    param.rotcon = convert.Hz2J(num.array([3.0090e9, 1.5090e9, 1.0052e9]))
    param.quartic = convert.Hz2J(num.array([0.0, 0.0, 0.0, 0.0, 0.0]))
    param.dipole = convert.D2Cm(num.array([3.6, 1.9, 0.]))
Пример #22
0
def prolate_symmetric_top(param):
    """Molecular parameters for an artificial prolate top"""
    param.name = "prolate_symmetric_top"
    param.mass = 6 * Masses['C'] + 6 * Masses['H']
    if 0 == param.isomer:
        param.type = 'S'
        param.symmetry = 'p'
        param.rotcon = convert.Hz2J(num.array([3000.0e6, 1000.0e6]))
        param.quartic = num.array(
            [convert.Hz2J(0.0),
             convert.Hz2J(0.0),
             convert.invcm2J(0.0)])
        param.dipole = convert.D2Cm(num.array([1.]))
    elif 1 == param.isomer:
        param.type = 'A'
        param.watson = 'A'
        param.symmetry = 'C2a'
        param.rotcon = convert.Hz2J(num.array([3000.0e6, 1000.0e6, 1000.0e6]))
        param.quartic = num.array([0., 0., 0., 0., 0.])
        param.dipole = convert.D2Cm(num.array([1., 0., 0.]))
Пример #23
0
def water_nonamer(param):
    """Molecular parameters for nonamer`

    * Estimated experimental dipole moment \mueff taken from : http://science.sciencemag.org/content/sci/336/6083/897.full.pdf
    * rotational constants A,B,C taken from http://science.sciencemag.org/content/sci/336/6083/897.full.pdf
    """
    param.name = "water_nonamer"
    param.mass = 9 * Masses['O'] + 18 * Masses['H']
    param.rotcon = convert.Hz2J(
        num.array([774.7442e+06, 633.5403e+06, 570.6460e+06]))
    param.dipole = convert.D2Cm(num.array([0.0, 0.0, 0.0]))
Пример #24
0
def carbon_monoxide(param):
    """ Molecular parameters for CO

    rotcon, dipole: [NISTCCCBD_CO]_
    quartic: [MinaCamilde1996]_
    """
    param.name = "carbon_monoxide"
    param.mass = Masses['C'] + Masses['O']
    param.type = 'L'
    param.rotcon = convert.Hz2J(num.array([57.89834e9]))
    param.dipole = convert.D2Cm(num.array([0.11]))
    param.quartic = convert.invcm2J(num.array([202.360e3]))
Пример #25
0
def five_cyanoindole(param):
    """ Molecular parameters for 5-cyanoindole

    Experimental values for rot constants from [Oelterman2012]_.
    Dipole values calculated (aug-cc-pVTZ basis, see [Horke]_ for details)
    """
    param.name = "five_cyanoindole"
    param.mass = 9 * Masses['C'] + 2 * Masses['N'] + 6 * Masses['H']
    param.watson = 'A'
    param.symmetry = 'N'
    param.rotcon = convert.Hz2J(num.array([3370.4e6, 738.0e6, 605.93e6]))
    param.dipole = convert.D2Cm(num.array([-6.44, -2.84, -0.33]))
Пример #26
0
def sulfur_monoxide(param):
    """ Molecular parameters for SO

    rotcon, dipole: [NISTCCCBD_SO]_
    quartic: [Veseth1974]_
    """
    param.name = "sulfur_monoxide"
    param.mass = Masses['S'] + Masses['O']
    param.type = 'L'
    param.rotcon = convert.Hz2J(num.array([21.60970e9]))
    param.dipole = convert.D2Cm(num.array([1.550]))
    param.quartic = convert.Hz2J(num.array([33.577e3]))
Пример #27
0
def indole(param):
    """Molecular parameters for indole

    Implemented isomers are

    0.  experimental values from [Kang2005]_
    1.  experimental inertial constants from [Caminati1990]_ and dipole moment from [Kang2005]_ for dipole moment.
    """
    param.name = "indole"
    param.mass = 8 * Masses['C'] + Masses['N'] + 7 * Masses['H']
    param.watson = 'A'
    param.symmetry = 'N'
    if 0 == param.isomer:
        param.rotcon = convert.Hz2J(num.array([3877.9e6, 1636.1e6, 1150.9e6]))
        param.dipole = convert.D2Cm(num.array([1.376, 1.400, 0.]))
    elif 1 == param.isomer:
        param.rotcon = convert.Hz2J(
            num.array([3877.826e6, 1636.047e6, 1150.8997e6]))
        param.quartic = convert.Hz2J(
            num.array([0.0352e3, 0.042e3, 0.16e3, 0.1005e3, 0.128e3]))
        param.dipole = convert.D2Cm(num.array([1.376, 1.400, 0.]))
Пример #28
0
def water_pentamer(param):
    """Molecular parameters for water pentamer (cyclic)`

    * Theoretical dipole moment \mueff taken from [Gregory:Science275:814], http://doi.org/10.1126/science.275.5301.814
    * Theoretical rotational constants A,B,C taken from [Liu:Science271:62] http://doi.org/10.1126/science.271.5245.62
    * Symmetry C1 [Wales:JCP105:6957] https://aip.scitation.org/doi/pdf/10.1063/1.471987?class=pdf
    """
    param.name = "water_pentamer"
    param.symmetry = 'C2a'
    param.mass = 5 * Masses['O'] + 10 * Masses['H']
    param.rotcon = convert.Hz2J(num.array([1859e+6, 1818e+06, 940e+06]))
    param.dipole = convert.D2Cm(num.array([0.927, 0.0, 0.0]))
Пример #29
0
def benzonitrile(param):
    """ See [Wohlfart2008]_
    """
    param.name = "benzonitrile"
    param.mass = 7 * Masses['C'] + Masses['N'] + 5 * Masses['H']
    param.type = 'A'
    param.watson = 'A'
    param.symmetry = 'C2a'
    param.rotcon = convert.Hz2J(
        num.array([5655.2654e6, 1546.875864e6, 1214.40399e6]))
    param.quartic = convert.Hz2J(num.array([45.6, 938.1, 500.0, 10.95, 628.0]))
    param.dipole = convert.D2Cm(num.array([4.5152, 0., 0.]))
Пример #30
0
def nitrous_oxide(param):
    """Molecular parameters for :math:`\\text{N}_2\\text{O}`

    rot. const.: [Andreev1976]
    dipole moment: [Scharpen1970]

    """
    param.name = "nitrous_oxide"
    param.type = 'L'
    param.symmetry = 'N'
    param.rotcon = convert.Hz2J(num.array([12561.6348e6]))
    param.dipole = convert.D2Cm(num.array([0.160830]))
    param.quartic = convert.Hz2J(num.array([5.2808e6]))