Quantum Chemistry Software#
This section will give a short introduction and an overview of the Quantum Chemistry programs that will be used in this practical course.
Setting up the Software#
In order to gain access to the needed software packages, you need to
make some changes to your system. The .bashrc
file located
in your home directory is sourced every time you open a new shell.
While you can directly execute any program by giving the full path,
it is more convenient to tell the system where to look for the
binaries by saving the location in the $PATH
variable.
Additionally, some programs need global variables. All those
are usually set in the .bashrc
. In order to gain access to all the
needed software, add the following lines to your .bashrc
:
1# make environment modules available
2export BASH_ENV=/usr/share/lmod/lmod/init/bash
3. ${BASH_ENV} > /dev/null
4
5module use /home/abt-grimme/modulefiles
6module load turbomole orca
7alias molden='/software/bin/molden'
8
9# AKbin
10export PATH=/home/abt-grimme/AK-bin:$PATH
11export PATH=/home/$USER/bin:$PATH
12
13# XTB
14export OMP_NUM_THREADS=2
15export MKL_NUM_THREADS=2
16export OMP_STACKSIZE=500m
17ulimit -s unlimited
Be sure to create a directory called bin
in your home directory by typing:
mkdir ~/bin
Important
All changes apply to shells opened afterwards.
If you want to apply the changes to your current shell, you need to run:
source ~/.bashrc
Program Packages#
TURBOMOLE#
To run a basic calculation with TURBOMOLE, you will only need the following two files:
coord
: Molecular geometry in atomic unitscontrol
: All data required for the calculation (method, parameters, … )
For more sophisticated calculation settings, TURBOMOLE provides an interactive input generator
called define
which only needs the coord
file to create the control
file.
Basis set and orbital files, that are also necessary for the calculation, are created
during the calculation or by define
, respectively. These are:
basis
(andauxbasis
): Basis set (and auxiliary basis set for RI)mos
oralpha
andbeta
: Orbitals (MO coefficients) for restricted and unrestricted treatment, respectively
In this course, all calculations can be prepared manually by only providing a coord
and a control
file containing all the necessary information.
TURBOMOLE has different binaries and scripts for different jobs. While they do not need an explicit input file when called, you should always pipe the output into a file, e.g.:
ridft > ridft.out &
The most important scripts that come along with the TURBOMOLE program package are listed in the following table.
TURBOMOLE script |
Functionality |
---|---|
Most important scripts for calculations |
|
|
DFT and HF SCF calculations with the RI-approximation |
|
DFT and HF SCF calculations without the RI-approximation |
|
Module for second-order correlated WF methods (MP2, CC2) |
|
Module for coupled cluster methods (CCSD, CCSD(T), …) |
|
Calculate gradients (with and without RI) |
|
Calculate analytical vibrational frequencies |
|
Coordinate/Hessian update for stationary point searches |
|
Script for geometry optimizations |
Scripts for visualization purposes |
|
|
Show the orbital energies and the HOMO-LUMO gap |
|
Convert a *.xyz (in Å) file to coord (in bohr) |
|
Convert a coord (in bohr) file to *.xyz (in Å) |
|
Generate a molden input |
Important
Each TURBOMOLE calculation needs its own directory.
The control
file#
While coord
stores the molecular geometry, the control
file contains all the
specifications and settings for the desired calculation. It contains keywords indicated
with a $
symbol followed by some setting. Related specifications sometimes follow
in the next line and are indented. Every control
file must end with the $end
keyword in the last line. An example input for a simple DFT calculation on the
BLYP/def2-TZVP level of theory can look as follows:
1$coord file=coord
2$atoms
3 basis = def2-TZVP
4$dft
5 functional b-lyp
6$end
In the following exercises, some proper TURBOMOLE input will always be given (at least partially) in the text. Additionally, you can find a short list of all keywords needed in this course in the Keywords in control section below.
ORCA#
ORCA needs an input file (e.g. myinput.inp
) to run. A typical call to perform a calculation with ORCA would be
orca myinput.inp > myinput.out &
The input file is generally structured as follows:
1# Comment lines are marked with an '#' and are possible everywhere
2! Method Basis and further options
3
4# Input is organized in blocks which start with '%'
5# e.g.
6%scf
7 MaxIter 150 #maximum number of iteration steps in the scf,
8 #default = 50
9end
10# definition of input geometry
11* xyz <charge> <multiplicity>
12 cartesian coordinates (Angstroms)
13*
14or:
15* int <charge> <multiplicity>
16 Z-Matrix
17*
18or:
19* xyzfile <charge> <multiplicity> <filename.xyz>
Important
Multiplicity = 2S+1 with S being the total spin.
A short reference of ORCA keywords can be found in the section Short ORCA Reference. Further information is accessible from: https://sites.google.com/site/orcainputlibrary/.
Keywords in control
#
The control
file contains all specifications and settings for a calculation with
TURBOMOLE. Keywords start with $
and sub-settings are indented. The last line of
the file must always be $end
.
The following table shows the most important keywords that are interesting for this course.
Command |
Functionality |
---|---|
essential for all calculations |
|
$coord file=coord
|
Defines the |
$atoms
basis=<bas>
|
Defines the basis set for the calculation to be |
always recommended |
|
$eht charge=<chrg> unpaired=<uhf>
|
Defines the charge |
$symmetry <sym>
|
Use the symmetry of pointgroup |
$rij
|
Use the resolution of the identity (RI) approximation. Note that you then have to use
ridft for single-point calculations and the -ri option for jobex .We recommend using the RI approximation for all exercises in this course.
|
$energy file=energy
$grad file=gradient
|
For geometry optimizations: The energies and gradient of all optimization cycles will be
saved in the files |
DFT calculations |
|
$dft
functional <func>
grid <grid>
|
Perform a DFT calculation using the functional
<func> . Note that the BYLP, B3YLP
and B2PLYP functionals are named b-lyp , b3-lyp and b2-plyp , respectively.
Define the integration grid <grid> (optional, the default is m4 ).For double-hybrid functionals, also include the settings for MP2 calculations
listed below (
$ricc2 and $denconv blocks). |
$disp3 -bj
|
Use the D3 dispersion correction with Becke-Johnson damping. |
Note If the |
|
Post HF calculations |
|
$scfconv 7
$denconv 1.0d-7
|
For MP2 and CC calculations, a well-converged SCF run is needed. Therefore, set the convergence threshold of the SCF and the density matrix to \(10^{-7}\) or less. |
$ricc2
mp2
geoopt model=mp2
|
Perform an MP2 single-point calculation.
The
geoopt model=mp2 keyword is only necessary if a geometry optimization on the
MP2 level is desired. |
$ricc2
ccsd(t)
|
Perform a CCSD(T) single-point calculation. |
other settings |
|
$cosmo
epsilon=<epsilon>
|
Use the condctor like screening model COSMO with the dielectric constant |
$scfiterlimit <limit>
|
Defines the maximum number of iterations in an SCF calculation (default |
$statpt
itrvec <imag>
|
Specify the number of imaginary vibrational frequencies |
Short ORCA Reference#
You can find a rough summary of the most important ORCA keywords in the following table. For a complete reference, consult the manual at https://orcaforum.kofo.mpg.de/.
Keyword |
Explanation |
---|---|
RHF |
Restricted Hartree-Fock |
UHF |
Unrestricted Hartree-Fock |
TPSS |
DFT with the functional TPSS (can be any valid functional) |
MP2 |
Do an MP2 calculation. |
CCSD(T) |
Do a CCSD(T) calculation. |
TZVP |
Use a TZVP basis. Can be any valid basis set definition |
Opt |
Do a geometry optimization. |
RI |
Use the resolution of the identity approximation. |
NumFreq |
Calculate second derivatives (vibrational frequencies).
Also gives an IR spectrum and thermal corrections + ZPE.
|
NMR |
Calculate nuclear magnetic shielding tensors. |
TightSCF |
Increases the convergence criterion for the SCF. |