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.]))
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.]))
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]))
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.]))
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])
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])
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])