Skip to content

Commit

Permalink
phydat added to automol
Browse files Browse the repository at this point in the history
  • Loading branch information
snelliott committed Dec 11, 2020
1 parent d573ff9 commit 2214d1d
Show file tree
Hide file tree
Showing 12 changed files with 324 additions and 1 deletion.
2 changes: 1 addition & 1 deletion automol/zmatrix/_bimol_ts.py
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ def substitution(rct_zmas, prd_zmas):
return ret


def addition(rct_zmas, prd_zmas):
def addition(rct_zmas, prd_zmas, rct_tors=()):
""" z-matrix for an addition reaction
"""
ret = None
Expand Down
Binary file added phydat/.phycon.py.swp
Binary file not shown.
19 changes: 19 additions & 0 deletions phydat/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
""" Libraries of physical data used by the drivers
"""

from phydat import phycon
from phydat import eleclvl
from phydat import sigmarad
from phydat import symm
from phydat import instab_fgrps
from phydat import etrans


__all__ = [
'phycon',
'eleclvl',
'sigmarad',
'symm',
'instab_fgrps',
'etrans'
]
18 changes: 18 additions & 0 deletions phydat/act_space.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
""" Storing a dictionary of active space sizes for various species
DCT[(inchi, multiplicity)]
= (num_active_orbs, num_active_elecs, num_states)
"""


DCT = {
# Atoms
('InChI=1S/O', 3): (3, 4, 3),
('InChI=1S/O', 1): (3, 4, 5),
('InChI=1S/N', 3): (3, 3, 1),
# Diatomics
('InChI=1S/O2/c1-2', 3): (4, 6, 1),
('InChI=1S/HO/h1H', 2): (2, 3, 2),
# Molecules
('InChI=1S/CH2/h1H2', 3): (2, 2, 1),
('InChI=1S/CH2/h1H2', 1): (2, 2, 1)
}
33 changes: 33 additions & 0 deletions phydat/bnd.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
""" Dictionary of standard bond lengths
"""

from phydat.phycon import ANG2BOHR


def read_len(bnd_atoms):
""" Read the dct
"""
bnd_len = LEN_DCT.get(bnd_atoms, None)
if bnd_len is None:
bnd_atoms_flip = (bnd_atoms[1], bnd_atoms[0])
bnd_len = LEN_DCT.get(bnd_atoms_flip, None)

return bnd_len


# Dictionary of A-B single bond lengths
LEN_DCT = {
('H', 'H'): 0.74 * ANG2BOHR,
('H', 'C'): 1.09 * ANG2BOHR,
('H', 'N'): 1.01 * ANG2BOHR,
('H', 'O'): 0.95 * ANG2BOHR,
('H', 'Cl'): 1.275 * ANG2BOHR,
('C', 'C'): 1.54 * ANG2BOHR,
('C', 'N'): 1.47 * ANG2BOHR,
('C', 'O'): 1.43 * ANG2BOHR,
('N', 'N'): 1.45 * ANG2BOHR,
('N', 'O'): 1.45 * ANG2BOHR,
('O', 'O'): 1.40 * ANG2BOHR,
('C', 'Cl'): 1.74 * ANG2BOHR,
('Cl', 'Cl'): 2.0 * ANG2BOHR,
}
19 changes: 19 additions & 0 deletions phydat/eleclvl.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
"""
Library of electronic levels for several common, small species.
Dictionary formatted as:
DCT[(InChI_Key, Multiplicity)] = [[energy(cm-1), degeneracy], ...]
"""

DCT = {
('InChI=1S/B', 2): [[0., 2], [16., 4]],
('InChI=1S/C', 3): [[0., 1], [16.4, 3], [43.5, 5]],
('InChI=1S/N', 2): [[0., 6], [8., 4]],
('InChI=1S/O', 3): [[0., 5], [158.5, 3], [226.5, 1]],
('InChI=1S/F', 2): [[0., 4], [404.1, 2]],
('InChI=1S/Cl', 2): [[0., 4], [883.4, 2]],
('InChI=1S/Br', 2): [[0., 4], [685.2, 2]],
('InChI=1S/HO/h1H', 2): [[0., 2], [138.9, 2]],
('InChI=1S/NO/c1-2', 2): [[0., 2], [123.1, 2]],
('InChI=1S/O2/c1-2', 1): [[0., 2]],
('InChI=1S/CH3O/c1-2/h1H3', 2): [[0., 3], [69.1, 1]]
}
167 changes: 167 additions & 0 deletions phydat/etrans.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
"""
Values to calculate effective parameters for energy transport
"""


def read_lj_dct(bath, target):
""" Read the LJ_DCT
"""

bath_dct = LJ_DCT.get(bath, None)
if bath_dct is not None:
lj_params = bath_dct.get(target, None)
else:
lj_params = None

return lj_params


def read_z_alpha_dct(bath, target):
""" Read the LJ_DCT
"""

target_dct = Z_ALPHA_DCT.get(bath, None)
if target_dct is not None:
z_alpha_params = target_dct.get(target, None)
else:
z_alpha_params = None

return z_alpha_params


LJ_DCT = {

# N2 Bath Gas
'InChI=1S/N2/c1-2': {
'n-alkane': (3.68, 0.16, 100.0, 0.25),
'1-alkyl': (3.72, 0.15, 69.00, 0.39),
},

# He Bath Gas
'InChI=1S/He': {
'n-alkane': (3.33, 0.17, 21.3, 0.31),
'n-alcohol': (2.90, 0.21, 22.0, 0.28),
'n-hydroperoxide': (2.90, 0.21, 10.0, 0.75),
'1-alkyl': (3.20, 0.18, 20.00, 0.42),
},

# Ar Bath Gas
'InChI=1S/Ar': {
'n-alkane': (3.40, 0.18, 113.0, 0.31),
'n-alcohol': (3.05, 0.20, 150.0, 0.29),
'n-peroxide': (2.90, 0.25, 85.0, 0.32),
'epoxide': (2.90, 0.23, 75.0, 0.50),
'n-hydroperoxide': (3.05, 0.20, 110.0, 0.39),
'1-alkyl': (3.50, 0.17, 90.0, 0.38),
'ether': (3.15, 0.22, 110.0, 0.15)
},

# H2 Bath Gas
'InChI=1S/H2/h1H': {
'n-alkane': (3.15, 0.18, 75.0, 0.30)
},
}

Z_ALPHA_DCT = {

# N2 Bath Gas
'InChI=1S/N2/c1-2': {
'n-alkane': {
300: (0.019689, -2.109835, 49.893116, 7.130308),
1000: (0.323108, -11.8867, 140.285802, 56.212929),
2000: (0.527413, -20.87865, 236.980272, 213.765542)
},
'1-alkyl': {
300: (0.1123, -3.9325, 44.4515, 7.3137),
1000: (0.2740, -9.7140, 99.5144, 93.4755),
2000: (0.5837, -19.3363, 181.9322, 250.0161)
}
},

# He Bath Gas
'InChI=1S/He': {
'n-alkane': {
300: (0.071882, -3.16556, 51.303812, 9.570797),
1000: (0.305537, -10.232371, 113.6291, 180.205289),
2000: (0.414858, -15.030357, 394911, 158, 534.047802)
},
'n-alcohol': {
300: (0.07044, -3.28388, 50.87526, -1.05945),
1000: (0.3905, -12.61792, 129.09928, 122.81934),
2000: (0.12611, -6.70779, 83.35158, 649.16698)
},
'n-hydroperoxide': {
300: (0.06934, -2.16846, 28.09786, 57.99002),
1000: (-0.01873, 0.9463, -9.19049, 421.53109),
2000: (-0.33498, 7.81371, -60.10907, 848.6624)
},
'1-alkyl': {
300: (0.1113, -3.6213, 36.8624, 36.1446),
1000: (0.1766, -5.2337, 43.6089, 261.9713),
2000: (0.2416, -6.7709, 47.0932, 590.3983)
}
},

# Ar Bath Gas
'InChI=1S/Ar': {
'n-alkane': {
300: (0.054986, -2.948084, 52.534594, -2.984767),
1000: (0.273835, -10.208643, 125.075803, 31.934663),
2000: (0.457981, -19.131921, 228.021958, 110.533659)
},
'n-alcohol': {
300: (0.1634, -6.39251, 83.21585, -64.1994),
1000: (0.22482, -9.06605, 114.55153, 63.80238),
2000: (0.45001, -18.13079, 206.53042, 163.72987)
},
'n-peroxide': {
300: (0.084, -2.9394, 31.0133, 38.0167),
1000: (-0.011, -0.6012, 11.7443, 280.8983),
2000: (-0.0117, -2.0414, 34.5284, 518.2758)
},
'n-hydroperoxide': {
300: (0.04706, -2.28117, 35.3249, 31.83379),
1000: (0.09842, -3.83485, 49.11378, 192.03656),
2000: (0.19506, -6.74549, 69.65477, 469.06881)
},
'1-alkyl': {
300: (0.0873, -3.3639, 39.6649, 8.5801),
1000: (0.3216, -10.2583, 98.7330, 62.6353),
2000: (0.4581, -16.4145, 167.6469, 178.9579)
},
'ether': {
300: (0.1057, -4.1378, 52.8870, 1.5181),
1000: (0.0116, -2.2454, 40.9493, 251.0031),
2000: (-0.1170, -0.4961, 40.0212, 580.5769)
},
'epoxide': {
300: (0.5025, -18.4928, 200.3532, -246.9419),
1000: (0.7488, -25.8914, 247.3055, 25.3337),
2000: (0.896, -30.0515, 262.9319, 412.6931)
},
},

# H2 Bath Gas
'InChI=1S/H2/h1H': {
'n-alkane': {
300: (0.185, -7.2964, 102.6128, 46.6884),
1000: (0.6173, -19.5856, 194.2888, 295.3819),
3000: (0.3867, 14.6607, 153.5746, 922.4951)
}
}
}

# Bond dissociation energies (kcal/mol)
D0_DCT = {
'm-peroxide': 35.0,
'ro2_qooh': 35.0,
'qooh': 35.0,
'ketohydroperoxide': (35.0, 51.0),
'1-alkyl': 40.0,
'n-hydroperoxide': 45.0,
'epoxide': 60.0,
'm-ether': 82.0,
'n-alcohol': 90.0,
'n-alkane': 95.0,
'n-alkene': 95.0,
}
12 changes: 12 additions & 0 deletions phydat/instab_fgrps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
"""
List of funcitonal groups attached to radical atoms that cause instabilities
atm_symb: ( (instab_grp1, instab_grp2, ...),
(instab_prd1, instab_prd2, instab_prd3) )
"""

DCT = {
'C': (('InChI=1S/HO2/c1-2/h1H',),
('InChI=1S/HO/h1H',))
}
33 changes: 33 additions & 0 deletions phydat/phycon.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
"""
Library of physical constants
"""

from qcelemental import constants as qcc


# physical constants
NAVO = 6.0221409e+23
RC = 1.98720425864083 # gas constant in cal/(mol.K)
RC_kcal = 1.98720425864083e-3 # gas constant in kcal/(mol.K)
RC2 = 82.0573660809596 # gas constant in cm^3.atm/(mol.K)
RC_cal = 1.98720425864083 # gas constant in cal/(mol.K)
RC_atm = 82.0573660809596 # gas constant in cm^3.atm/(mol.K)

# conversion factors
KCAL2CAL = qcc.conversion_factor('kcal/mol', 'cal/mol')
J2CAL = qcc.conversion_factor('J/mol', 'cal/mol')
KJ2CAL = qcc.conversion_factor('kJ/mol', 'cal/mol')
KEL2CAL = qcc.conversion_factor('kelvin', 'cal/mol')
ANG2BOHR = qcc.conversion_factor('angstrom', 'bohr')
BOHR2ANG = qcc.conversion_factor('bohr', 'angstrom')
DEG2RAD = qcc.conversion_factor('degree', 'radian')
RAD2DEG = qcc.conversion_factor('radian', 'degree')
WAVEN2KCAL = qcc.conversion_factor('wavenumber', 'kcal/mol')
KCAL2WAVEN = qcc.conversion_factor('kcal/mol', 'wavenumber')
EH2KCAL = qcc.conversion_factor('hartree', 'kcal/mol')
KCAL2EH = qcc.conversion_factor('kcal/mol', 'hartree')
KCAL2KJ = qcc.conversion_factor('kcal/mol', 'kJ/mol')
WAVEN2EH = qcc.conversion_factor('wavenumber', 'hartree')
EH2WAVEN = qcc.conversion_factor('hartree', 'wavenumber')
# AMU2KG = qcc.conversion_factor('atomic mass unit', 'kilogram')
AMU2KG = 1.66053892173e-27
7 changes: 7 additions & 0 deletions phydat/sigmarad.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
""" Library of sigma radicals
"""

LST = [
'InChI=1S/CN/c1-2',
'InChI=1S/C2H/c1-2/h1H'
]
13 changes: 13 additions & 0 deletions phydat/symm.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
""" Library of symmetries
"""

# Dict to store symmetry factors (change name)
DCT = {
('InChI=1S/HO/h1H', 2): 1.0
}

# Dictionary of high symmetry species w/ displacments to break sym
# displacements are for the bonds and are in angstrom
HIGH = {
'InChI=1S/CH4/h1H4': 0.0005
}
2 changes: 2 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@
'autoread',
'autoread.zmatrix',
'autowrite',
'phydat',
'transformations'],
package_dir={'automol': 'automol',
'autoread': 'autoread',
'autowrite': 'autowrite',
'phydat': 'phydat',
'transformations': 'transformations'},
package_data={'automol': ['tests/data/*.txt']})

0 comments on commit 2214d1d

Please sign in to comment.