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# AKbin
 2export PATH=/home/abt-grimme/AK-bin:$PATH
 3export PATH=/home/$USER/bin:$PATH
 5module use /software/modulefiles
 6module load turbomole orca
 7alias molden='/software/bin/molden'
 9# XTB
10export OMP_NUM_THREADS=2
11export MKL_NUM_THREADS=2
12export OMP_STACKSIZE=500m
13ulimit -s unlimited

Be sure to create a directory called bin in your home directory by typing:

mkdir ~/bin


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#


To run a basic calculation with TURBOMOLE, you will only need the following two files:

  • coord: Molecular geometry in atomic units

  • control: 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 (and auxbasis): Basis set (and auxiliary basis set for RI)

  • mos or alpha and beta: 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.



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), …)

rdgrad, grad

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


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
3  basis = def2-TZVP
5  functional b-lyp

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 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
 4# Input is organized in blocks which start with '%'
 5# e.g.
 7        MaxIter 150 #maximum number of iteration steps in the scf,
 8                    #default = 50
10# definition of input geometry
11* xyz <charge> <multiplicity>
12        cartesian coordinates (Angstroms)
15* int <charge> <multiplicity>
16        Z-Matrix
19* xyzfile <charge> <multiplicity> <filename.xyz>


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.



essential for all calculations

$coord file=coord

Defines the coord file to be the one containing the molecular structure information.


Defines the basis set for the calculation to be <bas>.

always recommended

$eht charge=<chrg> unpaired=<uhf>

Defines the charge <chrg> and the number of unpaired electrons <uhf> for the extended Hückel guess and the entire rest of the calculation.

$symmetry <sym>

Use the symmetry of pointgroup <sym>. If not stated otherwise, in the scope of this course it is always recommended to use C1 symmetry to avoid technical issues (choose c1).

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 energy and gradient.

DFT calculations

  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.


If the $dft block is missing, a HF calculation will be performed.

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.

  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.

Perform a CCSD(T) single-point calculation.

other settings


Use the condctor like screening model COSMO with the dielectric constant <epsilon> of the solvent.

$scfiterlimit <limit>

Defines the maximum number of iterations in an SCF calculation (default <limit> is 30). If an SCF did not converge, try increasing this value, e.g. to 100.

  itrvec <imag>

Specify the number of imaginary vibrational frequencies <imag> that shall be obtained by a geometry optimization (default is itrvec 0 for minimum structures). Set to itrvec 1 for transition state optimizations.

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/.




Restricted Hartree-Fock


Unrestricted Hartree-Fock


DFT with the functional TPSS (can be any valid functional)


Do an MP2 calculation.


Do a CCSD(T) calculation.


Use a TZVP basis. Can be any valid basis set definition


Do a geometry optimization.


Use the resolution of the identity approximation.


Calculate second derivatives (vibrational frequencies).
Also gives an IR spectrum and thermal corrections + ZPE.


Calculate nuclear magnetic shielding tensors.


Increases the convergence criterion for the SCF.