Gaussian-MOKIT-Molpro is a solution for invoking Molpro from Gaussian, which means one can do optimization, frequencies, or even irc tasks using the algorithms from Gaussian and at the levels supported by Molpro.
To use this script gmm.py
, you must have the following softwares installed.
One should prepare a configuration file named gmm.json
, which looks like:
{
"num_proc": 4,
"mem": "8GB",
"basis_set": "cc-pVDZ",
"rohf_runner": "pyscf",
"post_hf": [
"basis=vdz",
"{rhf;}",
"{ccsd(t);}"
]
}
In the json file, resources and calculation levels must be specified. num_proc
is the number of processors, mem
is the total memory in the unit of GB
or MB
, basis_set
should be written in Gaussian or PySCF format, rohf_runner
should be gau
or pyscf
and the latter is recommanded, and post_hf
is the additional commands to be added at the end of Molpro input file.
Remember that Molpro will be invoked from Gaussian, the input file looks like:
%nproc=1
%chk=CH3F.chk
#p external="python3 -u /path/to/gmm.py"
Generated by Multiwfn
0 1
F 0.00000000 0.00000000 -0.75831500
C 0.00000000 0.00000000 0.62637300
H 0.00000000 1.03330000 0.97660900
H 0.89486400 -0.51665000 0.97660900
H -0.89486400 -0.51665000 0.97660900
This is almost a standard Gaussian single point energy calculation file, while we do not call the inside methods Gaussian provides. The external command external="python -u /path/to/gmm.py"
indicates that Gaussian will invoke the script gmm.py
, and gmm.py
will call Gaussian or PySCF to do ROHF calculation. Most Post-HF methods in Molpro only start from ROHF orbitals. The ROHF calculation will dump an fchk
file and fch2com
from MOKIT can pass the ROHF orbitals to Molpro. The commands
section in gmm.json
will be appended to the Molpro input file generated by fch2com
, and Molpro will be called to do Post-HF tasks. When Molpro task done, results will be feedback to Gaussian.
This script only implements energy and gradients parsing. In order to do frequencies tasks, freq=num
is required in route section.
%nproc=1
%chk=CH3F.chk
#p opt=nomicro external="python3 -u /path/to/gmm.py"
Generated by Multiwfn
0 1
F 0.00000000 0.00000000 -0.75831500
C 0.00000000 0.00000000 0.62637300
H 0.00000000 1.03330000 0.97660900
H 0.89486400 -0.51665000 0.97660900
H -0.89486400 -0.51665000 0.97660900
--link1--
%nproc=1
%chk=CH3F.chk
#p freq=num external="python3 -u /path/to/gmm.py" geom=allcheck
%nproc=1
%chk=TS.chk
#p freq=num external="python3 -u /path/to/gmm.py"
Title Card Required
0 1
C 0.56314246 -0.57635434 0.00000000
N -0.37519999 0.35694724 0.00000000
H -0.79524238 -1.09345422 0.00000000
--link1--
%nproc=1
%chk=TS.chk
#p opt=(rcfc,noeigen,nomicro,ts) external="python3 -u /path/to/gmm.py" geom=allcheck
--link1--
%nproc=1
%chk=TS.chk
#p freq=num external="python3 -u /path/to/gmm.py" geom=allcheck
%nproc=1
%oldchk=TS.chk
#p irc=(rcfc,gradientonly) external="python3 -u /path/to/gmm.py" geom=allcheck
Here is a simple test on HCN isomerization reaction.
This script is inspired by Tian Lu's work.
- Mail: [email protected]
- Issue: https://github.com/mizu-bai/Gaussian-MOKIT-Molpro/issues/new
- Forum: http://bbs.keinsci.com/thread-33837-1-1.html
If Gaussian-MOKIT-Molpro is invoked in your work, please cite this repo as
Junhong Li, Gaussian-MOKIT-Molpro, https://github.com/mizu-bai/Gaussian-MOKIT-Molpro (accessed month day, year)
Please also cite Gaussian, PySCF, MOKIT, and Molpro. For citation info, refer to their websites.