The Q-Chem Interface
Introduction
The interface is designed to access basic functionality of the Q-Chem program package. Currently the interface is
capable of calculating ground state energies and gradients on the restricted
closed-shell Hartree-Fock, DFT and RI-MP2 levels of theory.
For DFT calculations the functionals BLYP, BP86, B3LYP, B3PW91, BPW91, S-VWN-LDA, PBE0 are available.
The interface creates the necessary input files for the Q-Chem run, executes
Q-Chem and finally extracts the QM-results.
In order to use the interface, the environment must be set up as required for a
Q-Chem standard run depending on the Q-Chem version. Commonly, at least the
shell environment variables
QC | Path to Q-Chem main directory |
QCAUX | Path to Q-Chem auxiliary directory |
QCSCRATCH | Path to scratch directory for Q-Chem scratch output |
need to be set and "qchem" needs to be in the path, e.g. by sourcing
$QC/bin/qchem.setup.sh
(see Q-Chem manual). See also the file "qchemrc" in the
example/qchem folder as example file that can be sourced before the
ChemShell run.
Command Line Arguments
Currently the following ChemShell command line arguments are available:
Argument |
Argument type |
Mandatory |
Default |
Description |
basis |
keyword |
no |
STO-3G |
Required basis set (Q-Chem library [1]) |
basisspec |
ChemShell notation |
no |
sto-3g all |
Required basis set (ChemShell library [2]) |
charge |
integer |
no |
0 |
Total charge |
accuracy |
keyword |
no |
medium |
Determines accuracy of SCF calculation [3]: debug, lowest, low, medium, high, highest |
grid |
integer |
no |
undefined |
Determines size and type of DFT grid in Q-Chem notation [4]. |
jobname |
string |
no |
qchem |
Determines the name of Q-chem input (jobname.com), output (jobname.log) and scratch (jobname.scr [5]). |
hamiltonian |
keyword |
no |
hf |
Choice of QM Hamiltonian: hf, blyp, bp86, b3lyp [6], b3lyp5 [6], b3pw91, bpw91, s-vwn-lda, pbe0, rimp2, rimp2_svp [7] |
mem_total |
integer |
no |
2000 |
Sets the total memory available to Q-Chem, in megabytes [8]. |
mem_static |
integer |
no |
100 |
Sets the memory for individual Q-Chem program modules, in megabytes [9]. |
harmonic |
bool |
no |
undefined |
Specifies if either cartesian GTOs (1) or pure spherical harmonics (0) are used. |
purecart |
integer |
no |
undefined |
Allows for specification of cartesian GTOs vs. pure sherical harmonics by Q-Chem nomenclature [10]. |
guess |
keyword |
no |
sad |
Initial guess for the one-particle density matrix: SAD, CORE, GWH or READ [11]. |
separate_jk |
bool |
no |
1 |
Switch on/off the separate formation of Coulomb and exchange part [12]. |
grain |
integer |
no |
-1 |
Controls the number of lowest-level boxes in one dimension for CFMM [13]: -1, 1 , >=8 [14].
|
lin_k |
bool |
no |
0 |
Switch on/off linear scaling screening for the exchange part (LinK [15]) [16]. |
dft_d |
keyword |
no |
undefined |
Switch on Grimme's dispersion type correction: EMPIRICAL_GRIMME [17]. |
add |
Q-Chem notation |
no |
undefined |
Set additional Q-Chem input. Use with care [18] ! |
-
Using the argument "basis" the basis set needs to be specified in Q-Chem nomenclature. In particular note that the basis set Ahlrichs SVP is denoted as VDZ** in Q-Chem.
-
If a basis set is taken from the ChemShell library the basis set is explicitly included in the Q-Chem input within a $basis-section and the Q-Chem $rem-variable
basis is set to "gen" (see Q-Chem manual). As for an explicit basis set the default guess
(Superposition of atomic densities, SAD) is not available, the guess is created by basis set projection based on an initial STO-3G calculation.
-
The different levels determine the SCF accuracy concerning three aspects: (A) The SCF convergence, (B) the threshold for density based Schwarz screening
of electron repulsion integrals and (C) the DFT grid size.
keyword | (A) | (B) | (C) |
debug | 10-3 | 10-6 | "Low quality" grid |
lowest | 10-4 | 10-7 | SG-0 |
low | 10-5 | 10-8 | SG-0 |
medium | 10-6 | 10-9 | SG-1 |
high | 10-7 | 10-10 | 75/302 |
highest | 10-8 | 10-11 | 110/590 |
Use the largest affordable accuracy. Typically "medium" is sufficient
for standard SCF energetics but you might need to choose "high" for RI-MP2,
gradients or also for large QM regions! For details concerning the grid abbreviations see Q-Chem manual.
-
If not specified the DFT grid is chosen according to the argument "accuracy".
-
The Q-Chem scratch is written to $QCSCRATCH/jobname.scr/
-
B3LYP and B3LYP5 differ in the correlation functional:
B3LYP | (correlation: 0.8100 LYP + 0.1900 VWN1RPA) |
B3LYP5 | (correlation: 0.8100 LYP + 0.1900 VWN ) |
For example, Q-Chem-B3LYP corresponds to Turbomole-B3LYP_GAUSSIAN (and Gaussian-B3LYP), while Q-CHEM-B3LYP5 corresponds to Turbomole-B3LYP (and original parameters).
Possible remaining differences are due to different DFT grids (see argument "accuracy" or "grid").
-
Use this Hamiltonian for RI-MP2 calculations with SVP auxiliary basis set. In addition specify the "basis" argument as usual [1].
-
Make sure you physically provide the specified RAM. For large QM regions the default (2GB) needs to be increased. See Q-Chem manual for details.
-
Make sure you physically provide the specified RAM. For large QM regions the default (100MB) needs to be increased. See Q-Chem manual for details.
-
If the "purecart" argument is used, the specifications by "harmonic" are overwritten. See Q-Chem manual for the purecart variable.
-
Q-Chem provides the core hamiltonian guess (CORE), the superposition of atomic densities (SAD, default), and
the generalized Wolfsberg-Helmholtz guess (GWH). Additionally by the keyword "READ" an adequate guess can be read in from file. For this purpose, the file containing the guess
needs to be located in the scratch directory, i.e. $QCSCRATCH/jobname.scr/. See Q-Chem manual for details.
-
Switch on for large QM systems as "separate_jk" is required to make use of
CFMM [13] and LinK [15].
-
C. A. White, B. G. Johnson, P. M.W. Gill and M. Head-Gordon, The Continuous Fast Multipole Method, Chem. Phys. Letters, 230, 8 (1994).
- Use the default (-1) unless you really want to change the CFMM behavior (-1: Program decides best value turning on CFMM when useful, 1: Do not use CFMM, n >=8: Use CFMM with n lowest-level boxes in one dimension).
-
C. Ochsenfeld, C. A. White, and M. Head-Gordon, Linear and sublinear scaling of Hartree-Fock-type exchange matrices, J. Chem. Phys., 109, 1663 (1998).
-
Switch on for large QM systems (several hundreds of atoms).
-
For further information (D2 or D3, damping function etc.) and other options see Q-Chem manual.
-
Set any additional input designated for the $rem-section of Q-Chem (see Q-Chem manual) by specifying
add = | { | [rem_name1] | [rem_value1] |
| | [rem_name2] | [rem_value2] |
| | . | |
| | . | |
| | . | |
| } | | |
Use with care and be aware, of course, that by this the Q-Chem output may be modified in such a way that the proper extraction of QM results may fail!
Examples
Some basic examples are provided in the example/qchem folder along with an example for setting the Q-Chem environment (qchemrc).
The names of example inputs (.chm) and corresponding outputs (.log) are structured as follows:
[system]_[e(nergy)/g(radient)]_[QM/QMMM]_[Hamiltonian]_[basis/(basis)spec]_[basisname]
For the DNA-Enzyme complex also the required Amber prmtop and inpcrd are provided.
|