示例#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]))