Skip to content

Commit 086f300

Browse files
committed
Merge pull request #205 from pierrelb/PM6
Adding PM6 and PM7 methods to the Quantum Mechanics thermo calculations. There's an extra option in the input file to select the method. This also closes #204. We may want more options in the future, but that's a new issue.
2 parents e792f59 + 82c7078 commit 086f300

File tree

16 files changed

+420
-132
lines changed

16 files changed

+420
-132
lines changed

documentation/source/reference/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Module Description
1818
:mod:`rmgpy.kinetics` Kinetics models of chemical reaction rates
1919
:mod:`rmgpy.molecule` Molecular representations using chemical graph theory
2020
:mod:`rmgpy.pdep` Pressure-dependent kinetics from master equation models
21+
:mod:`rmgpy.qm` On-the-fly quantum calculations
2122
:mod:`rmgpy.quantity` Physical quantities and unit conversions
2223
:mod:`rmgpy.reaction` Chemical reactions
2324
:mod:`rmgpy.rmg` Automatic reaction mechanism generation
@@ -37,6 +38,7 @@ Module Description
3738
kinetics/index
3839
molecule/index
3940
pdep/index
41+
qm/index
4042
quantity/index
4143
reaction/index
4244
rmg/index
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
***********************
2+
rmgpy.qm.gaussian
3+
***********************
4+
5+
.. autoclass:: rmgpy.qm.gaussian.Gaussian
6+
.. autoclass:: rmgpy.qm.gaussian.GaussianMol
7+
.. autoclass:: rmgpy.qm.gaussian.GaussianMolPM3
8+
.. autoclass:: rmgpy.qm.gaussian.GaussianMolPM6
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
*************************************************
2+
QMTP (:mod:`rmgpy.qm`)
3+
*************************************************
4+
5+
.. module:: rmgpy.qm
6+
7+
The :mod:`rmgpy.qm` subpackage contains classes and functions for working
8+
with molecular geometries, and interfacing with quantum chemistry software.
9+
10+
11+
12+
Main
13+
======
14+
15+
.. currentmodule:: rmgpy.qm.main
16+
17+
======================= ========================================================
18+
Class Description
19+
======================= ========================================================
20+
:class:`QMSettings` A class to store settings related to quantum mechanics calculations
21+
:class:`QMCalculator` An object to store settings and previous calculations
22+
======================= ========================================================
23+
24+
25+
26+
Molecule
27+
==========
28+
29+
.. currentmodule:: rmgpy.qm.molecule
30+
31+
======================= ========================================================
32+
Class Description
33+
======================= ========================================================
34+
:class:`Geometry` A geometry, used for quantum calculations
35+
:class:`QMMolecule` A base class for QM Molecule calculations
36+
======================= ========================================================
37+
38+
39+
40+
QM Data
41+
=========
42+
43+
.. currentmodule:: rmgpy.qm.qmdata
44+
45+
======================= ========================================================
46+
Class/Function Description
47+
======================= ========================================================
48+
:class:`QMData` General class for data extracted from a QM calculation
49+
:class:`CCLibData` QM Data extracted from a cclib data object
50+
======================= ========================================================
51+
52+
53+
QM Verifier
54+
=============
55+
56+
.. currentmodule:: rmgpy.qm.qmverifier
57+
58+
======================= ========================================================
59+
Class/Function Description
60+
======================= ========================================================
61+
:class:`QMVerifier` Verifies whether a QM job was succesfully completed
62+
======================= ========================================================
63+
64+
65+
Symmetry
66+
==========
67+
68+
.. currentmodule:: rmgpy.qm.symmetry
69+
70+
============================== ========================================================
71+
Class/Function Description
72+
============================== ========================================================
73+
:class:`PointGroup` A symmetry Point Group
74+
:class:`PointGroupCalculator` Wrapper type to determine molecular symmetry point groups based on 3D coordinates
75+
:class:`SymmetryJob` Determine the point group using the SYMMETRY program
76+
============================== ========================================================
77+
78+
79+
Gaussian
80+
===========
81+
82+
.. currentmodule:: rmgpy.qm.gaussian
83+
84+
======================= ========================================================
85+
Class/Function Description
86+
======================= ========================================================
87+
:class:`Gaussian` A base class for all QM calculations that use Gaussian
88+
:class:`GaussianMol` A base Class for calculations of molecules using Gaussian.
89+
:class:`GaussianMolPM3` A base Class for calculations of molecules using Gaussian at PM3.
90+
:class:`GaussianMolPM6` A base Class for calculations of molecules using Gaussian at PM6.
91+
======================= ========================================================
92+
93+
94+
Mopac
95+
=======
96+
97+
.. currentmodule:: rmgpy.qm.mopac
98+
99+
======================= ========================================================
100+
Class/Function Description
101+
======================= ========================================================
102+
:class:`Mopac` A base class for all QM calculations that use Mopac
103+
:class:`MopacMol` A base Class for calculations of molecules using Mopac.
104+
:class:`MopacMolPM3` A base Class for calculations of molecules using Mopac at PM3.
105+
:class:`MopacMolPM6` A base Class for calculations of molecules using Mopac at PM6.
106+
:class:`MopacMolPM7` A base Class for calculations of molecules using Mopac at PM7.
107+
======================= ========================================================
108+
109+
110+
111+
.. toctree::
112+
:hidden:
113+
114+
main
115+
molecule
116+
qmdata
117+
qmverifier
118+
symmetry
119+
gaussian
120+
mopac
121+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
***********************
2+
rmgpy.qm.main
3+
***********************
4+
5+
.. autoclass:: rmgpy.qm.main.QMSettings
6+
.. autoclass:: rmgpy.qm.main.QMCalculator
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
***********************
2+
rmgpy.qm.molecule
3+
***********************
4+
5+
.. autoclass:: rmgpy.qm.molecule.Geometry
6+
.. autoclass:: rmgpy.qm.molecule.QMMolecule
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
***********************
2+
rmgpy.qm.mopac
3+
***********************
4+
5+
.. autoclass:: rmgpy.qm.mopac.Mopac
6+
.. autoclass:: rmgpy.qm.mopac.MopacMol
7+
.. autoclass:: rmgpy.qm.mopac.MopacMolPM3
8+
.. autoclass:: rmgpy.qm.mopac.MopacMolPM6
9+
.. autoclass:: rmgpy.qm.mopac.MopacMolPM7
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
***********************
2+
rmgpy.qm.qmdata
3+
***********************
4+
5+
.. autoclass:: rmgpy.qm.qmdata.QMData
6+
.. autoclass:: rmgpy.qm.qmdata.CCLibData
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
***********************
2+
rmgpy.qm.qmverifier
3+
***********************
4+
5+
.. autoclass:: rmgpy.qm.qmverifier.QMVerifier
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
***********************
2+
rmgpy.qm.symmetry
3+
***********************
4+
5+
.. autoclass:: rmgpy.qm.symmetry.PointGroup
6+
.. autoclass:: rmgpy.qm.symmetry.PointGroupCalculator
7+
.. autoclass:: rmgpy.qm.symmetry.SymmetryJob

documentation/source/users/rmg/input.rst

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,36 @@ The following is an example of a simple reactor system::
213213
On the fly Quantum Calculations
214214
===============================
215215

216+
This block is used when quantum mechanical calculations are desired to determine thermodynamic parameters.
217+
These calculations are only run if the molecule is not included in a specified thermo library.
218+
The ``onlyCyclics`` option, if ``True``, only runs these calculations for cyclic species.
219+
In this case, group additive estimates are used for all other species.
220+
221+
Molecular geometries are estimated via RDKit [RDKit]_.
222+
Either MOPAC (2009 and 2012) or GAUSSIAN (2003 and 2009) can be used
223+
with the semi-empirical pm3, pm6, and pm7 (pm7 only available in MOPAC2012),
224+
specified in the software and method blocks.
225+
A folder can be specified to store the files used in these calculations,
226+
however if not specified this defaults to a `QMfiles` folder in the output folder.
227+
228+
The calculations are also only run on species with a maximum radical number set by the user.
229+
If a molecule has a higher radical number, the molecule is saturated with hydrogen atoms, then
230+
quantum mechanical calculations with subsequent hydrogen bond incrementation is used to determine the
231+
thermodynamic parameters.
232+
233+
The following is an example of the quantum mechanics options ::
234+
235+
quantumMechanics(
236+
software='mopac',
237+
method='pm3',
238+
fileStore='QMfiles',
239+
scratchDirectory = None,
240+
onlyCyclics = True,
241+
maxRadicalNumber = 0,
242+
)
243+
244+
.. [RDKit] RDKit: Open-source cheminformatics; http://www.rdkit.org
245+
216246
Pressure Dependence
217247
===================
218248

0 commit comments

Comments
 (0)