Skip to content

mizu-bai/Gaussian-MOKIT-Molpro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gaussian-MOKIT-Molpro

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.

Usage

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.

Examples

Opt + Freq

%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


Opt TS + Freq

%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


IRC

%nproc=1
%oldchk=TS.chk
#p irc=(rcfc,gradientonly) external="python3 -u /path/to/gmm.py" geom=allcheck


Results

Here is a simple test on HCN isomerization reaction.

Acknowledgements

This script is inspired by Tian Lu's work.

Bug Report

Citation

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.