コード例 #1
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.]))
コード例 #2
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.]))
コード例 #3
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]))
コード例 #4
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.]))
コード例 #5
0
def hydrogen(param):
    """Molecular parameters for hydrogen (H:math:`_2`)

    Rotational constants are from ??? measurements [Orcutt1963]_; ...
    Polarizability: [Rychlewski1980]_, which is close to [Kim1976]_
    centrifugal distortion constant: [Hamaguchi1981]_

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

    All polarizabilies are in SI units
    """
    param.name = "H2"
    param.mass = 2 * Masses['H']
    param.type = 'L'
    param.symmetry = 'N'
    param.rotcon = convert.Hz2J(num.array([1824.32704e9]))
    param.dipole = convert.D2Cm(num.array([0.0]))
    param.quartic = convert.invcm2J(num.array([0.0460]))
    param.polarizability = num.array([11.1576e-41, 7.8225e-41])
コード例 #6
0
def deuterium(param):
    """Molecular parameters for hydrogen (D:math:`_2`)

    Rot. constant: [Huber1979]_
    Polarizability: [Rychlewski1980]_
    centrifugal distortion constant: [Bonham2009]_

    .. 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): This should be an isomer of hydrogen -- please merge

    """
    param.name = "D2"
    param.mass = 2 * Masses['D']
    param.type = 'L'
    param.symmetry = 'N'
    param.rotcon = convert.Hz2J(num.array([912.67617e9]))
    param.dipole = convert.D2Cm(num.array([0.0]))
    param.quartic = convert.invcm2J(num.array([0.01153]))
    param.polarizability = num.array([10.9746e-41, 7.7421e-41])
コード例 #7
0
def hydrogen_deuteride(param):
    """Molecular parameters for hydrogen (HD)

        Rot. constant: [Huber1979]_
        Polarizability: [Rychlewski1980]_
        centrifugal distortion constant: [Mckellar1976]_

        .. 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): This should be an isomer of hydrogen -- please merge

    """
    param.name = "HD"
    param.mass = Masses['H'] + Masses['D']
    param.type = 'L'
    param.symmetry = 'N'
    param.rotcon = convert.Hz2J(num.array([1368.70247e9]))
    param.dipole = convert.D2Cm(num.array([5.85e-4]))
    param.quartic = convert.invcm2J(num.array([0.02586]))
    param.polarizability = num.array([11.0767e-41, 7.787e-41])