示例#1
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])
示例#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 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)
示例#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 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]))
示例#6
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]))
示例#7
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]))
示例#8
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]))
示例#9
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.]))
示例#10
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.]))
示例#11
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.]))
示例#12
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.]))
示例#13
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.]))
示例#14
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]))
示例#15
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]))
示例#16
0
def nitrogen_dioxide(param):
    """Molecular parameters for :math:`\\text{NO}_2`

    Rotational constants from [Cabana1976]_
    Dipole moment from [Hodgeson1963]_
    """
    param.name = "nitrogen_dioxide"
    param.watson = 'A'
    param.symmetry = 'C2b'
    param.rotcon = convert.Hz2J(
        num.array([239905.41e6, 13002.262e6, 12304.888e6]))
    param.quartic = convert.Hz2J(
        num.array([9.033e3, -0.5903e6, 80.94e6, 9.303e2, 0.12e6]))
    param.dipole = convert.D2Cm(num.array([0., 0.316, 0.]))
示例#17
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.]))
示例#18
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]))
示例#19
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]))
示例#20
0
def water_dimer(param):
    """Molecular parameters for water dimer`

    * Experimental dipole moment \mueff taken from [Malomuzh:RussJPhysChemA88:1431] DOI: 10.1134/S0036024414080172
    * rotational constants A,B,C taken from [Coudert:JMolSpec139:259], https://doi.org/10.1016/0022-2852(90)90064-W
    * centrifugal constants taken \Delta_{J}, \Delta_{JK}, \Delta_{K}, d_{J}, d_{K} from [Dyke:JCP66:1977], https://aip.scitation.org/doi/pdf/10.1063/1.433969?class=pdf
    """
    print_incorrect_warning('water-dimer', 'floppiness')
    param.name = "water2"
    param.symmetry = 'C2a'
    param.mass = 2 * Masses['O'] + 4 * Masses['H']
    param.watson = 'S'
    param.rotcon = convert.Hz2J(
        num.array([190327.0e+6, 6162.762e+06, 6133.741e+06]))
    param.dipole = convert.D2Cm(num.array([2.63, 0.0, 0.0]))
    param.quartic = convert.Hz2J(num.array(
        [44e+3, 4.01e+6, 0., 0.,
         0.]))  #\Delta_{J}, \Delta_{JK}, \Delta_{K}, d_{J}, d_{K}
示例#21
0
def iodobenzene(param):
    """Parameters for iodobenzene

    The inertial parameters (rotational constants and centrifugal distortion parameters) are from
    [Neil:JMolSpec269:21]_

    .. todo:: (Sebastian Trippel) please check all values and fully document; need to add all sextic
        constants (simply set the undefined ones to 0.0).

    """
    param.name = "iodobenzene"
    param.watson = 'A'
    param.symmetry = 'C2a'
    param.rotcon = convert.Hz2J(
        num.array([5669.126e6, 750.414323e6, 662.636162e6]))
    param.quartic = convert.Hz2J(
        num.array([19.5479, 164.648, 891, 2.53098, 15554]))
    # param.sextic =  convert.Hz2J(num.array([0.0609, -0.377])) # ignored sextic constants!
    param.dipole = convert.D2Cm(num.array([1.6250, 0., 0.]))
示例#22
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.]))
示例#23
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]))
示例#24
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]))
示例#25
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]))
示例#26
0
def uracil(param):
    """ Molecular parameters for uracil

    Dipole & Rot. constants: [Brown1988]_, Dipole errors are estimated by 10%

    Centr. dist. const: [Brunken2006]_

    Good summary: [Puzzarini2011]_
    """
    param.name = "uracil"
    param.mass = 4 * Masses['C'] + 4 * Masses['H'] + 2 * Masses[
        'N'] + 2 * Masses['O']
    param.type = 'A'
    param.watson = 'S'
    param.rotcon = convert.Hz2J(
        num.array([3883878.25e3, 2023732.67e3, 1330923.80e3]))
    param.dipole = convert.D2Cm(num.array([1.61, 3.52, 0.0]))
    param.quartic = convert.Hz2J(
        num.array([0.06336e3, 0.1055e3, 0.4530e3, -0.02623e3, -0.00680e3]))
示例#27
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.]))
示例#28
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.]))
示例#29
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]))
示例#30
0
def sulfur_dioxide(param):
    """Molecular parameters for sulphur dioxide (:math:`\\text{SO}_2`)

    Rotational constants from [Helminger1985]_
    Dipole moments from [Patel1979]_
    """
    param.name = "sulfur_dioxide"
    param.watson = 'A'
    param.symmetry = 'C2b'
    # A=2.026cm^-1, B=0.3442 cm^-1, C=0.2935 cm^-1.
    # Alternative papers: J. Chem. Phys. 19, 502 (1951), or  J. Chem. Phys. 22, 904 (1954). or
    # F.J. Lovas, J. Phys. Chem. Ref. Data 7, 1445 (1978).
    param.rotcon = convert.Hz2J(
        num.array([60778.5522e6, 10318.0722e6, 8799.7023e6]))
    # Alternative papers: F.J. Lovas, J. Phys. Chem. Ref. Data 7, 1445 (1978).
    param.quartic = convert.Hz2J(
        num.array([
            0.0066610013e6, -0.1169588e6, 2.5904328e6, 0.001701045, 0.0253531
        ]))
    param.dipole = convert.D2Cm(num.array([0., 1.633189, 0.]))