Skip to content

Commit 73f223d

Browse files
committed
RMG-Py v2.1.9 release
2 parents 9ac80f3 + c5590b9 commit 73f223d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+4182
-3942
lines changed

bld.bat

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,9 @@
1-
set CC=gcc
2-
set CXX=g++
3-
set F77=gfortran
4-
set F90=gfortran
5-
6-
1+
:: Compile RMG
72
mingw32-make -j%CPU_COUNT%
8-
mingw32-make QM
93

4+
:: Install RMG
105
%PYTHON% setup.py install
116

12-
:: Save version number stored in rmgpy/__init__.py file
13-
%PYTHON% -c "from rmgpy import __version__; print __version__" > %SRC_DIR%\__conda_version__.txt
14-
157
:: lazy "install" of everything in our 'external' folder.
168
:: most of which should probably be elsewhere
179
mkdir %SP_DIR%\external

build.sh

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
export CC=${PREFIX}/bin/gcc
2-
export CXX=${PREFIX}/bin/g++
3-
export F77=${PREFIX}/bin/gfortran
4-
export F90=${PREFIX}/bin/gfortran
1+
# Compile RMG
52
make -j${CPU_COUNT}
6-
make QM
7-
$PYTHON setup.py install
83

9-
# Save version number stored in rmgpy/__init__.py file
10-
$PYTHON -c 'from rmgpy import __version__; print __version__' > ${SRC_DIR}/__conda_version__.txt
4+
# Install RMG
5+
$PYTHON setup.py install
116

127
# lazy "install" of everything in our 'external' folder.
138
# most of which should probably be elsewhere
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
************************
2+
rmgpy.molecule.converter
3+
************************
4+
5+
.. automodule:: rmgpy.molecule.converter

documentation/source/reference/molecule/generator.rst

Lines changed: 0 additions & 5 deletions
This file was deleted.

documentation/source/reference/molecule/index.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,8 @@ Class Description
9494
:mod:`rmgpy.molecule.resonance` Resonance structure generation methods
9595
:mod:`rmgpy.molecule.kekulize` Kekule structure generation
9696
:mod:`rmgpy.molecule.pathfinder` Resonance path enumeration
97-
:mod:`rmgpy.molecule.generator` Molecule string representation generator
98-
:mod:`rmgpy.molecule.parser` Molecule string representation parser
97+
:mod:`rmgpy.molecule.converter` Molecule object converter (RDKit/OpenBabel)
98+
:mod:`rmgpy.molecule.translator` Molecule string representation translator
9999
================================ ========================================================
100100

101101

@@ -164,8 +164,8 @@ Class Description
164164
resonance
165165
kekulize
166166
pathfinder
167-
generator
168-
parser
167+
converter
168+
translator
169169
adjlist
170170
symmetry
171171
moleculedrawer

documentation/source/reference/molecule/parser.rst

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
**************************
2+
rmgpy.molecule.translator
3+
**************************
4+
5+
.. automodule:: rmgpy.molecule.translator

documentation/source/users/cantherm/input.rst

Lines changed: 73 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@ Each section is made up of one or more function calls, where parameters are
1313
specified as text strings, numbers, or objects. Text strings must be wrapped in
1414
either single or double quotes.
1515

16-
The following is a list of all the functions of a CanTherm input file for thermodynamics and high-pressure limit kinetics computations:
16+
The following is a list of all the components of a CanTherm input file for thermodynamics and high-pressure limit kinetics computations:
1717

1818
=========================== =========================================================
19-
Function Description
19+
Component Description
2020
=========================== =========================================================
2121
``modelChemistry`` Level of theory from quantum chemical calculations
22+
``atomEnergies`` Dictionary of atomic energies at ``modelChemistry`` level
2223
``frequencyScaleFactor`` A factor by which to scale all frequencies
2324
``useHinderedRotors`` ``True`` if hindered rotors are used, ``False`` if not
25+
``useAtomCorrections`` ``True`` if atom corrections are used, ``False`` if not
2426
``useBondCorrections`` ``True`` if bond corrections are used, ``False`` if not
2527
``species`` Contains parameters for non-transition states
2628
``transitionState`` Contains parameters for transition state(s)
@@ -33,61 +35,81 @@ Function Description
3335
Model Chemistry
3436
===============
3537

36-
The first item in the input file should be a ``modelChemistry()`` function,
37-
which accepts a string describing the model chemistry.
38+
The first item in the input file should be a ``modelChemistry`` assignment
39+
with a string describing the model chemistry.
3840

3941
CanTherm uses this information to adjust the computed energies to the usual gas-phase reference
4042
states by applying atom, bond and spin-orbit coupling energy corrections. This is particularly
4143
important for ``thermo()`` calculations (see below). Note that the user must specify under the
42-
``species()`` function the type and number of atoms and bonds for CanTherm to apply these corrections.
44+
``species()`` function the type and number of bonds for CanTherm to apply these corrections.
4345
The example below specifies CBS-QB3 as the model chemistry::
4446

45-
modelChemistry("CBS-QB3")
46-
47-
Currently, atomization energy corrections (AEC), bond corrections (BC), and spin orbit correction (SOC) are available for the following model chemistries:
48-
49-
================================================ ===== ==== ====
50-
Model Chemistry AEC BC SOC
51-
================================================ ===== ==== ====
52-
``'CBS-QB3'`` v v v
53-
``'G3'`` v v
54-
``'M08SO/MG3S*'`` v v
55-
``'M06-2X/cc-pVTZ'`` v v
56-
``'Klip_1'`` v v
57-
``'Klip_2'`` *uses QCI(tz,qz) values* v v
58-
``'Klip_3'`` *uses QCI(dz,qz) values* v v
59-
``'Klip_2_cc'`` *uses CCSD(T)(tz,qz) values* v v
60-
``'CCSD-F12/cc-pVDZ-F12'`` v v
61-
``'CCSD(T)-F12/cc-pVDZ-F12_H-TZ'`` v v
62-
``'CCSD(T)-F12/cc-pVDZ-F12_H-QZ'`` v v
63-
``'CCSD(T)-F12/cc-pVnZ-F12'``, *n = D,T,Q* v v v
64-
``'CCSD(T)-F12/cc-pVDZ-F12_noscale'`` v v
65-
``'CCSD(T)-F12/cc-pCVnZ-F12'``, *n = D,T,Q* v v
66-
``'CCSD(T)-F12/aug-cc-pVnZ-F12'``, *n = D,T,Q* v v
67-
``'B-CCSD(T)-F12/cc-pVnZ-F12'``, *n = D,T,Q* v v
68-
``'B-CCSD(T)-F12/cc-pCVnZ-F12'``, *n = D,T,Q* v v
69-
``'B-CCSD(T)-F12/aug-cc-pVnZ-F12'``, *n = D,T,Q* v v
70-
``'DFT_G03_b3lyp'`` v v v
71-
``'DFT_ks_b3lyp'`` v
72-
``'DFT_uks_b3lyp'`` v
73-
``'G03_PBEPBE_6-311++g_d_p'`` v v
74-
``'MP2_rmp2_pVnZ'``, *n = D,T,Q* v v
75-
``'FCI/cc-pVnZ'``, *n = D,T,Q* v v
76-
``'BMK/cbsb7'`` v v v
77-
``'BMK/6-311G(2d,d,p)'`` v v v
78-
``'B3LYP/6-311+G(3df,2p)'`` v
79-
``'B3LYP/6-31G**'`` v v
80-
================================================ ===== ==== ====
47+
modelChemistry = "CBS-QB3"
48+
49+
Alternatively, the atomic energies at the ``modelChemistry`` level of theory can be directly
50+
specified in the input file by providing a dictionary of these energies in the following format::
51+
52+
atomEnergies = {
53+
'H': -0.499818,
54+
'C': -37.78552,
55+
'N': -54.520543,
56+
'O': -74.987979,
57+
'S': -397.658253,
58+
}
59+
60+
The table below shows which model chemistries have atomization energy corrections (AEC), bond
61+
corrections (BC), and spin orbit corrections (SOC). It also lists which elements are available
62+
for a given model chemistry.
63+
64+
================================================ ===== ==== ==== ====================
65+
Model Chemistry AEC BC SOC Supported Elements
66+
================================================ ===== ==== ==== ====================
67+
``'CBS-QB3'`` v v v H, C, N, O, P, S
68+
``'G3'`` v v H, C, N, O, P, S
69+
``'M08SO/MG3S*'`` v v H, C, N, O, P, S
70+
``'M06-2X/cc-pVTZ'`` v v H, C, N, O, P, S
71+
``'Klip_1'`` v v H, C, N, O
72+
``'Klip_2'`` *uses QCI(tz,qz) values* v v H, C, N, O
73+
``'Klip_3'`` *uses QCI(dz,qz) values* v v H, C, N, O
74+
``'Klip_2_cc'`` *uses CCSD(T)(tz,qz) values* v v H, C, O
75+
``'CCSD-F12/cc-pVDZ-F12'`` v v H, C, N, O
76+
``'CCSD(T)-F12/cc-pVDZ-F12_H-TZ'`` v v H, C, N, O
77+
``'CCSD(T)-F12/cc-pVDZ-F12_H-QZ'`` v v H, C, N, O
78+
``'CCSD(T)-F12/cc-pVnZ-F12'``, *n = D,T,Q* v v v H, C, N, O, S
79+
``'CCSD(T)-F12/cc-pVDZ-F12_noscale'`` v v H, C, N, O
80+
``'CCSD(T)-F12/cc-pCVnZ-F12'``, *n = D,T,Q* v v H, C, N, O
81+
``'CCSD(T)-F12/aug-cc-pVnZ'``, *n = D,T,Q* v v H, C, N, O
82+
``'B-CCSD(T)-F12/cc-pVnZ-F12'``, *n = D,T,Q* v v H, C, N, O, S
83+
``'B-CCSD(T)-F12/cc-pCVnZ-F12'``, *n = D,T,Q* v v H, C, N, O
84+
``'B-CCSD(T)-F12/aug-cc-pVnZ'``, *n = D,T,Q* v v H, C, N, O
85+
``'G03_PBEPBE_6-311++g_d_p'`` v v H, C, N, O
86+
``'MP2_rmp2_pVnZ'``, *n = D,T,Q* v v H, C, N, O
87+
``'FCI/cc-pVnZ'``, *n = D,T,Q* v v C
88+
``'BMK/cbsb7'`` v v v H, C, N, O, P, S
89+
``'BMK/6-311G(2d,d,p)'`` v v v H, C, N, O, P, S
90+
``'B3LYP/6-311+G(3df,2p)'`` v v v H, C, N, O, P, S
91+
``'B3LYP/6-31G**'`` v v H, C, O, S
92+
================================================ ===== ==== ==== ====================
8193

8294
Notes:
8395

84-
- In ``'M08SO/MG3S*'`` the grid size used in the [QChem] electronic structure calculation utilizes 75 radial points and 434 angular points. ``'DFT_G03_b3lyp'`` is a B3LYP calculation with a moderately large basis set.
96+
- In ``'M08SO/MG3S*'`` the grid size used in the [QChem] electronic structure calculation utilizes 75 radial points and 434 angular points.
8597
- Refer to paper by Goldsmith et al. (*Goldsmith, C. F.; Magoon, G. R.; Green, W. H., Database of Small Molecule Thermochemistry for Combustion. J. Phys. Chem. A 2012, 116, 9033-9057*) for definition of ``'Klip_2'`` (*QCI(tz,qz)*) and ``'Klip_3'`` (*QCI(dz,qz)*).
8698

99+
If a model chemistry other than the ones in the above table is used, then the user should supply
100+
the corresponding atomic energies (using ``atomEnergies``) to get meaningful results. Bond
101+
corrections would not be applied in this case.
102+
103+
If a model chemistry or atomic energies are not available, then a kinetics job can still be run by
104+
setting ``useAtomCorrections`` to ``False``, in which case Cantherm will not raise an error for
105+
unknown elements. The user should be aware that the resulting energies and thermodynamic quantities
106+
in the output file will not be meaningful, but kinetics and equilibrium constants will still be
107+
correct.
108+
87109
Frequency Scale Factor
88110
======================
89111

90-
Frequency scale factors are empirically fit to experiment for different ``modelChemistry()``. Refer to NIST website for values (http://cccbdb.nist.gov/vibscalejust.asp).
112+
Frequency scale factors are empirically fit to experiment for different ``modelChemistry``. Refer to NIST website for values (http://cccbdb.nist.gov/vibscalejust.asp).
91113
For CBS-QB3, which is not included in the link above, ``frequencyScaleFactor = 0.99`` according to Montgomery et al. (*J. Chem. Phys. 1999, 110, 2822–2827*).
92114

93115
Species
@@ -117,7 +139,6 @@ The species input file accepts the following parameters:
117139
======================= =========================== ====================================
118140
Parameter Required? Description
119141
======================= =========================== ====================================
120-
``atoms`` yes Type and number of atoms in the species
121142
``bonds`` optional Type and number of bonds in the species
122143
``linear`` yes ``True`` if the molecule is linear, ``False`` if not
123144
``externalSymmetry`` yes The external symmetry number for rotation
@@ -131,18 +152,18 @@ Parameter Required? Description
131152
``rotors`` optional A list of :class:`HinderedRotor()` and/or :class:`FreeRotor()` objects describing the hindered/free rotors
132153
======================= =========================== ====================================
133154

134-
The ``atom`` and ``bond`` parameters are used to apply atomization energy corrections (AEC), bond corrections (BC), and spin orbit corrections (SOC) for a given ``modelChemistry()`` (see `Model Chemistry`_).
155+
The types and number of atoms in the species are automatically inferred from the quantum chemistry output and are used
156+
to apply atomization energy corrections (AEC) and spin orbit corrections (SOC) for a given ``modelChemistry``
157+
(see `Model Chemistry`_). If not interested in accurate thermodynamics (e.g., if only using ``kinetics()``), then
158+
atom corrections can be turned off by setting ``useAtomCorrections`` to ``False``.
135159

136-
Allowed atom symbols for the ``atoms`` parameter are
137-
``'C'``, ``'N'``, ``'O'``, ``'S'``, ``'P'``, and ``'H'``. For example, for formaldehyde we would write::
138-
139-
atoms = {'C': 1, 'O': 1, H': 2}
160+
The ``bond`` parameter is used to apply bond corrections (BC) for a given ``modelChemistry``.
140161

141162
Allowed bond types for the ``bonds`` parameter are, e.g., ``'C-H'``, ``'C-C'``, ``'C=C'``, ``'N-O'``, ``'C=S'``, ``'O=O'``, ``'C#N'``...
142163

143164
``'O=S=O'`` is also allowed.
144165

145-
The order of elements in the bond correction label is important and generally follows the order specified under "allowed atom symbols" above, i.e., ``'C=N'`` is correct while ``'N=C'`` is incorrect. Use ``-``/``=``/``#`` to denote a single/double/triple bond, respectively. For example, for formaldehyde we would write::
166+
The order of elements in the bond correction label is not important. Use ``-``/``=``/``#`` to denote a single/double/triple bond, respectively. For example, for formaldehyde we would write::
146167

147168
bonds = {'C=O': 1, 'C-H': 2}
148169

@@ -160,7 +181,7 @@ For ethane, we would write::
160181

161182
opticalIsomers = 1
162183

163-
The ``energy`` parameter is a dictionary with entries for different ``modelChemistry()``. The entries can consist of either
184+
The ``energy`` parameter is a dictionary with entries for different ``modelChemistry``. The entries can consist of either
164185
floating point numbers corresponding to the 0 K atomization energy in Hartree (without zero-point energy correction), or
165186
they can specify the path to a quantum chemistry calculation output file that contains the species's energy. For example::
166187

@@ -170,7 +191,7 @@ they can specify the path to a quantum chemistry calculation output file that co
170191
}
171192

172193
In this example, the ``CBS-QB3`` energy is obtained from a Gaussian log file, while the ``Klip_2`` energy is specified directly.
173-
The energy used will depend on what ``modelChemistry()`` was specified in the input file. CanTherm can parse the energy from
194+
The energy used will depend on what ``modelChemistry`` was specified in the input file. CanTherm can parse the energy from
174195
a ``GaussianLog``, ``MolproLog`` or ``QchemLog``.
175196

176197
The input to the remaining parameters, ``geometry``, ``frequencies`` and ``rotors``, will depend on if hindered/free rotors are included.
@@ -193,11 +214,6 @@ the ``species()`` function in the input file should look like the following exam
193214

194215
and the species input file (``C2H6.py`` in the example above) should look like the following::
195216

196-
atoms = {
197-
'C': 2,
198-
'H': 6,
199-
}
200-
201217
bonds = {
202218
'C-C': 1,
203219
'C-H': 6,
@@ -303,11 +319,6 @@ in between these two extremes.
303319

304320
To summarize, the species input file with hindered/free rotors should look like the following example (different options for specifying the same ``rotors`` entry are commented out)::
305321

306-
atoms = {
307-
'C': 2,
308-
'H': 6,
309-
}
310-
311322
bonds = {
312323
'C-C': 1,
313324
'C-H': 6,

0 commit comments

Comments
 (0)