gau_xtb:A Gaussian interface for xtb code
Latest version:1.0.1 (Release date: 2020-Jul-5)
Developer
Dr. Tian Lu (sobereva[at]sina.com. Beijing Kein Research Center for Natural Sciences, China)
Citation
Tian Lu, gau_xtb: A Gaussian interface for xtb code, http://sobereva.com/soft/gau_xtb (accessed month day, year)
Download
In this package, the "xtb.sh" is the shell script that Gaussian will invoke, the "extderi" and "genxyz" are executable files that invoked by "xtb.sh", the corresponding Fortran source codes (.f90) are also provided. The "examples" folder contains some example Gaussian tasks that utilize the gau_xtb interface.
Introduction
The xtb code developed by Stefan Grimme implements his GFN-xTB theory, which may be regarded as a semi-empirical version of DFT theory. xtb is fairly robust and extremely fast. Unfortunately, the type of tasks supported by xtb is relatively limited. For example, xtb is unable to locate transition state and generate IRC path. In addition, rare visualization tool could be adapted for visualizing output of xtb (e.g. vibrational modes, optimization trajectory).
The very popular quantum chemistry code Gaussian supports "external" keyword, which invokes third-part computational code to yield energy and its derivatives that needed by Gaussian tasks (e.g. single point, optimization, locating transition state, generating IRC, frequency analysis and so on). In addition, there is a nice program GaussView, which fully supports visualizing output of various Gaussian tasks.
Clearly, developing an interface between Gaussian and xtb by making use of the "external" feature must be of great value, since the power of the two codes can be fully integrated, making rapid and robust calculation of various tasks for large system possible. The xtb_gau is such as interface.
Detailed introduction about gau_xtb can be found in http://sobereva.com/421 (in Chinese).
Usage
- Installing xtb code in usual way on your machine, so that it can be normally run anywhere via xtb command
- Moving Gaussian input file, "genxyz", "extderi" and "xtb.sh" files to current folder.
- Setting OMP_NUM_THREADS and MKL_NUM_THREADS variables in the "xtb.sh" to actual number of CPU physical cores.
- In the Gaussian input file, keyword external='./xtb.sh' must be presented. If the task contains opt keyword, then nomicro option should be used. Below are four examples:
# external='./xtb.sh' force
# opt(ts,calcfc,noeigen,nomicro) external='./xtb.sh'
# IRC(maxpoints=20,calcfc) geom=check external='./xtb.sh'
# freq geom=allcheck external='./xtb.sh'
During above Gaussian calculations, energy, force and Hessian will be calculated by xtb code, the output file can be normally visualized via GaussView.
Notice 1: Parallel running of Gaussian must be avoided! To guarantee this, you could use %nproc=1.
Notice 2: "opt" and "freq" tasks cannot be joined together when using gau_xtb, namely "opt freq" keyword does not work normally.
Notice 3: If your system contains very heavy atom (out of definition range of STO-3G basis set, which is the default basis set of Gaussian), you should add UGBS as keyword, which is a basis set almost covers the entire periodic table. The result will not be thus affected, but the error could be completely bypassed.
Update History
2020-Jul-5, version 1.0.1: Automatically remove .engrad xtbtopo.mol xtbhess.xyz after running
2019-Apr-19, version 1.0: Initial release