Turbomole Tutorial Overview
Turbomole Tutorial Overview
Tutorial
DECEMBER 2023
TURBOMOLE Tutorial
Table of Contents
1. Turbomole Usage Philosophy.........................................................................................................4
6. DEFINE.........................................................................................................................................17
6.1. The path through define.........................................................................................................18
6.2. Navigation within define.......................................................................................................18
6.3. Making symmetric molecules with define.............................................................................19
6.4. Internal coordinates................................................................................................................20
6.5. Detecting (unknown) symmetry............................................................................................22
6.6. Assigning basis sets...............................................................................................................22
6.7. Which basis set should I take?...............................................................................................23
6.8. How to get a list of available basis sets.................................................................................24
6.9. A basis set library of your own..............................................................................................25
6.10. Geometry manipulation with define....................................................................................25
6.11. Providing an initial guess for molecular orbitals.................................................................27
6.12. Reusing old mos...................................................................................................................27
6.13. The general menu of define.................................................................................................28
6.14. Manual editing of the control file........................................................................................29
2
TURBOMOLE Tutorial
3
TURBOMOLE Tutorial 1. Turbomole Usage Philosophy
The usage of TURBOMOLE has been adapted to the way a UNIX user is working:
− Many different programs, each one specialized for methods and/or properties,
4
TURBOMOLE Tutorial 1. Turbomole Usage Philosophy
The functionalities are not crammed into a single program, user interface, or tool, but they are separated in modules.
The user has to know the most important modules and the way they interact via the input and output files and this is not
the only difference to most other quantum chemistry programs:
• containing: • containing:
control file with references to external files
− coordinates like:
− basis set definition or basis sets − coordinates
− method − basis sets
− kind of job (energy, structure, properties,...) − molecular orbitals
− old results and data
− ...
• not containing:
− method
− kind of job
• start job by calling one program:
• start job by calling one or a sequence of
qcprog [Link] > [Link] programs:
• all calculations and prerequisites are done in one • just one type of calculation per call, no
step automatic run of energy calculation or geometry
optimization or any other kind of pre-step will be
performed
• output contains the results • control file and output contain the results
• input file remains unchanged • input files are overwritten, i.e. coordinates are
changed, mos are changed,...
5
TURBOMOLE Tutorial 2. How to create the input
If TURBOMOLE is located at /my_disk/my_name/TURBOMOLE, you can get access to all scripts and programs by
executing the following three commands in a (bash-like) shell:
export TURBODIR=/my_disk/my_name/TURBOMOLE
export PATH=$TURBODIR/scripts:$PATH
export PATH=$TURBODIR/bin/`sysname`:$PATH
A shorter and alternative way is to source a script which sets $TURBODIR and does extend the PATH as described
above (please make sure to use the complete path to the TURBOMOLE installation directory):
source /my_disk/my_name/TURBOMOLE/Config_turbo_env
2.1. Coordinates
1. Build
The TURBOMOLE module that interactively generates an input (details are described below), define, has some
limited features to build a structure from scratch, but that is neither convenient nor intuitive, except for some
small cases, especially if you apply symmetry. The graphical user interface TmoleX contains a molecular
builder and is available for free from the BIOVIA TURBOMOLE web site ([Link]
services/biovia/products/molecular-modeling-simulation/solvation-chemistry/turbomoler/)
1. Use TmoleX to import structures, modify them or build from scratch, define a complete input for
TURBOMOLE, submit jobs to the local machine or to remote systems, get back the results and analyze the
data. See TmoleX tutorial (user manual).
3. Get the structure from a database or the internet and modify it by define or the builder of your choice.
2. Convert
For xyz input files use the TURBOMOLE script x2t to convert xyz files to TURBOMOLE coordinates:
For SD input files (.sdf) use the TURBOMOLE script sdf2coord to write coord file to disk:
sdf2coord [Link]
The script calculate can read in xyz, sdf, ml2, car, and cosmo files, while TmoleX is able to import a wide range of
coordinate types.
6
TURBOMOLE Tutorial 2. How to create the input
There are several possibilities to obtain a complete control file and run a calculation. These are the most widely
used:
1. define
a) run define
b) run any TURBOMOLE module (program or script).
You have to start with a ground state energy calculation to get converged orbitals with dscf or ridft
(exception: jobex performs an initial energy calculation by default).
2. calculate
generates *.cosmo files for COSMOtherm input.
a) make a list of molecules
b) run COSMO calculations as a batch over all given molecules by using the script calculate
3. TmoleX
TmoleX is a free add-on to TURBOMOLE by Dassault Systèmes. A version for Linux/PC, MacOSX, and
Windows is available from the ftp server where the usual TURBOMOLE distribution is located (ask your
TURBOMOLE administrator). There is also a free client version which can be used to build molecules, generate
input files and submit TURBOMOLE jobs to remote machines. Check The BIOVIA home page for details about
the client version.
TmoleX can import coordinates, change structures, generate input files and run TURBOMOLE jobs. Results are
shown in a panel within TmoleX. Structures, geometry optimizations and vibrational frequencies can be
displayed and animated. See the web site: TmoleX, the Turbomole GUI
4. Simplified Input
Since version 7.5 it is possible to write a simple control file in an editor and to skip the define step as
described in point 1. The first module that has to be run must be either dscf, ridft or jobex. The rest of
this tutorial can be used and only the first define step can be skipped in each example.
In this tutorial we are using define and the command line to be able to exploit all features of TURBOMOLE –
all other types of input generation offer only a limited functionality.
7
TURBOMOLE Tutorial 3. The TURBOMOLE modules
See chapter 1.4 'Modules and Their Functionality' of the TURBOMOLE documentation for a
description of each module and script. Please note that this is not a complete list of
available modules.
8
TURBOMOLE Tutorial 4. The s[ai]mple input
The recommended way to generate TURBOMOLE input files is to call define and not to write the input
file control manually. This has a lot of pros and avoids typical pitfalls like typos, inconsistent
input files, contradictory keywords, etc.
define does generate a proper input, allows access to most known keywords without the need to be
a TURBOMOLE expert or to search the documentation. It is interactive, offers options, provides
suggestions, calculates some input properties and, in the end, provides an input which contains the
most important keywords the user can change before, during or after the calculations.
There are, however, workflows and tasks which are highly non-interactive and do benefit from a
simple approach using a minimal set of input data and accepting all or most defaults.
Since TURBOMOLE version 7.5 this can be done by using a new, simplified syntax for the input files.
The basic requirements are:
$keyword1
$keyword2 options
$keyword3
options
$keyword4 file=filename
9
TURBOMOLE Tutorial 4. The s[ai]mple input
However, it is much more convenient and also easier for scripting if the coordinates are not
directly stored in the control file. Note that the control file is not just an input file, so the
coordinates will change during a geometry optimization or a molecular dynamics
calculation. Hence, it is recommended to have two files as input:
a) control file with a reference to an external file (this is not yet a complete input):
$coord file=coord
[...]
$end
$coord
0.00000000000000 0.00000000000000 -0.12178983933899 o
1.41713420892173 0.00000000000000 0.96657854674257 h
-1.41713420892173 0.00000000000000 0.96657854674257 h
$end
Note: It is good practice to put the keyword $end to each input file. And it is also convenient
to name the additional input files (like coord here) similar to the keyword they contain,
although this is not a must.
3. The basis set is also a prerequisite and there is no default if it is not given. So the minimal
input file in the simplified format also has to contain:
$atoms
basis = def2-SV(P)
Summary
A complete minimal input for a job is therefore:
This simple sample control file does The coord file will be changed during jobs that
not have to be changed if another alter the structure (optimization, etc.). The input
molecule is calculated. coord file simply contains the start structure. Can
also directly be integrated in control.
10
TURBOMOLE Tutorial 4. The s[ai]mple input
The most simple input file as described in the section before will trigger Hartree-Fock calculations.
This sounds like history, but this is also the default for define if nothing is changed in the last
menu (see below).
The workhorse nowadays is DFT, most quantum chemistry program packages use RI or ‘density
fitting’ for standard applications. Turbomole pioneered RI-DFT in the 90’ies and linear scaling
methods like MARI-J (Multipole Accelerated RI-J, see documentation) are routinely used. Also
basis sets have been developed to get a well-known average error for most cases and properties.
$coord file=coord - The coordinates are the same as in the first example.
$atoms The file coord is therefore the same.
basis = def2-TZVP - The def2-TZVP basis set is a standard triple-zeta one with a good to
$dft very good accuracy for most properties.
functional b-p - DFT is switched on by the $dft keyword, the functional here is BP86.
$rij
$marij
- $rij and $marij trigger a linear scaling RI-DFT calculation.
$end
NOTE: As described earlier, the job type is not part of the input!
4.3. Input charge and symmetry
Different to all other ways to generate Turbomole input, the symmetry is actively checked by the
first module which uses the simplified input format. If $symmetry is not present in the input, the
symmetry will be detected and used. In the example given in the last section, C2v is automatically
used. If you want to switch off the automatic detection, just add to the control file:
$symmetry c1
As define is not used to generate start orbitals the molecular charge and optionally the number of
unpaired electrons (1 for doublet, 2 for triplet, etc.) can be added by using the $eht keyword:
$eht charge=<n>
$eht charge=<n> unpaired=<m>
Examples:
$eht charge=-1
$eht charge=2 unpaired=1
11
TURBOMOLE Tutorial 4. The s[ai]mple input
Three examples of input files and standard job tasks are shown below. Note that the coord file is not
explicitly given here, please use the coord file for water from the example before. Only the control
file has to be modified.
$coord file=coord
Use the following commands on the shell:
$atoms
basis = def2-TZVP #geometry optimization:
$ricc2 jobex -ri -level mp2 &> [Link]
geoopt model=mp2
$denconv 1d-7
$end
MP2 and other post-Hartree-Fock methods need a well converged energy and density. It is
therefore a prerequisite to add $denconv to the control file in order to get reasonable MP2
(and beyond) energies and properties.
12
TURBOMOLE Tutorial 5. The quick tour: How to run a calculation
As we have seen in the previous chapters, there is a special program that creates a complete TURBOMOLE input: define
Most of the functionalities of define are not needed in your day-to-day work. In general, hitting <ENTER> will print
out the current menu and * will proceed to the next step. And most of the time you may just accept all defaults.
In the first three menus, the geometry is loaded, basis sets are assigned and the start MOs together with the occupation
is created. If you do not change anything in the last menu, you will get a nice Hartree-Fock input. Entering dft, ri,
mp2, cc, ... in the last menu will switch on or off other methods.
So, the shortest way to an input is to get a structure, either in TURBOMOLE coordinates (file coord), or in an xyz file
([Link]) and then let the x2t script of Turbomole convert it to a coord file:
Then create a new empty directory and copy the coord file in there. Change to that directory and call define. First,
you will be asked for a name of the input file, just hit <Enter> here, and then you can enter a title. The title can be just
an empty line (it might be a good idea to give a title here, sometimes the fastest way to see what the input is about).
The most important commands in define are explained here. The * indicates where each one of the four main menus
does end and the next one begins, since * or q are the commands to end a menu and proceed to the next (see below).
After that, you have a nice Turbomole input and you can run any of the Turbomole modules or scripts – depending on
which property you want to calculate.
13
TURBOMOLE Tutorial 5. The quick tour: How to run a calculation
<Enter>
This is the first exercise, where we do a HF calculation on benzene
a ! benzene
y
desy
ired
*
*
eht
<Enter>
<Enter>
<Enter>
*
All commands given above will be explained later in this tutorial. The (almost) same exercise is done in
chapter 7.1 - with a detailed description of the in- and the output. If you have difficulties with this example,
please try chapter 7.1 !!
Some notes:
You can skip the lengthy title, of course, or just hit <Enter> for not providing a title at all.
Molecules from the structure library are loaded like any other coordinate files, the only difference is that there
is an exclamation mark '!' between the command a and the name of the molecule.
We have let define determine the symmetry with desy, and define found D6h point group.
Internal redundant coordinates are determined automatically with ired – this would not have been necessary
here, but if ired is not called, you will be asked if you are sure not to use internal coordinates when exiting
the geometry menu (the first *).
We have accepted the default basis set def-SV(P) – this is one of the TURBOMOLE default (def-) basis sets, SV(P)
is a double zeta valence basis set with polarization at all non-Hydrogen atoms.
eht runs an extended Hückel calculation to create start orbitals and to determine the occupation/multiplicity,
the rest of the <Enter> keys belong to questions that Hückel asks you. Note that one of those questions is the
total charge of the molecule (default is 0 – neutral), and another question is if you accept the found occupation
(closed shell system, trivial in this case).
Finally, the last * exits define, changing nothing at the last menu – hence we have a standard Hartree-Fock
input.
14
TURBOMOLE Tutorial 5. The quick tour: How to run a calculation
After the calculation has finished (takes about 3 seconds), please look at the output file [Link]:
You will see that 9 iterations have been done, the total energy is -230.51807365370 Hartree (convergence is
10-7, so depending on your system/hardware, your result might differ from the one given here).
That's it.
See chapter 7 for details about single point calculations.
Second exercise!
Let us do the same thing as before – but this time we will do a geometry optimization with RI-DFT.
Now we have two different possibilities:
1. Start from scratch, i.e. from an empty directory, and go through define as before. But this time, do not enter
the last *. So you will stay in the last, the general menu:
Enter dft – and you will get in the DFT menu. Just enter on here and leave with <Enter> or *.
Enter ri – and you will get in the RI-J menu. Like in the last menu, enter on here and leave again.
Now enter * or q to leave define.
2. Rerun define in the same directory as before, keeping all files in there (including the output files like
[Link], energy and the changed input files like mos).
define will tell you that it found an input file which will be read in.
Now you will be asked if you want to enter each of the three basic menus for geometry, atomic and molecular
attributes. Just hit <Enter> all the time, since we do not want to change anything except the method.
define will automatically stop in the last menu – no matter how often you are hitting <Enter> now...
Here enter the same commands as given above (dft to on and ri to on) and leave define with * or q.
We have an input for benzene, DFT (standard) B-P86 functional, using RI-J and D6h symmetry. You can have a look
which density functional will be used with the sdg tool, that prints data groups of the control file.
sdg dft
15
TURBOMOLE Tutorial 5. The quick tour: How to run a calculation
gives:
$dft
functional b-p
gridsize m3
A single point calculation could be done by starting ridft, but we want a geometry optimization, so we enter:
jobex
jobex will do 4 geometry cycles until convergence. To learn more about jobex and structure optimizations please
refer to chapter 8.
There are several ways to check the results, but the most common ones are:
1. look at the file [Link] which contains the output of the last energy and gradient step
2. look at the file GEO_OPT_CONVERGED which contains some collected information about the run
3. look at the file gradient: it contains all geometries and gradients at each step of the optimization. A common
shortcut is to do
to check the convergence behavior during the optimization and to get the final result (last energy and gradient
norm).
4. call
and load the file final_structure.xyz in the molecular viewer of your choice (it is a multiple-xyz file)
5. or call tm2molden to get a molden input file that includes also the molecular orbitals.
6. at the command line, use dist, bend, or tors to get bond lengths, angles, dihedral angles, etc.
dist
gives:
16
TURBOMOLE Tutorial 5. The quick tour: How to run a calculation
Call
dist -help ,
bend -help , or
tors -help
7. To see how a bond, a bending angle or a torsion changed during the geometry optimization, use the script
evalgrad. Call evalgrad with two atom numbers for a bond length, three atom numbers for an angle and four
atom numbers to see how a torsion has changed during optimization. The output shows three colums: the
optimization step, the energy at this geometry and the value of the bond length, angle or torsion:
> evalgrad 1 2
1 -232.0725369223 1.3892
2 -232.0764471780 1.4034
3 -232.0765625911 1.4060
4 -232.0765631365 1.4061
6. DEFINE
define is an interactive input generator which creates the input file control:
1. Supports most basis sets in use, especially the only fully atom optimized consistent basis sets of SVP, TZV,
and QZV quality available for the atoms H–Rn (including lanthanides and actinides up to Lawrencium for SVP
and TZV),
4. Allows to perform a geometry optimization at a force field level to pre-optimize the geometry and to calculate
a Cartesian Hessian matrix,
5. Sets the keywords necessary for single point calculations and geometry optimizations for a variety of methods,
17
TURBOMOLE Tutorial 6. DEFINE
For impatient users or users who want to know how to perform a certain calculation:
Please read chapters 6.1 and 6.2 and then go directly to chapter 7: Single point calculations or to one of the
other chapters ...
18
TURBOMOLE Tutorial 6. DEFINE
4. General Menu
But before you get to the first one, you will be asked for:
1. The name of the input file to read in and/or to be generated. The default is control
1. You will always get the current menu printed on screen (enlarge your screen if you can not see everything).
2. The first line contains the most important data of your input for the current menu.
&
6. If you are in one of the four main menus, hitting <Enter> will just print out the menu you are in.
which only gives proper input files if you have been reading in an existing input.
19
TURBOMOLE Tutorial 6. DEFINE
Skip this chapter if you are not going to build molecules with the define module of TURBOMOLE.
define is probably not the most convenient tool for coordinate inputs. For highly symmetric cases, however, it provides some nice features. Here
are some examples:
In the geometry menu of define, we start with defining the point group. Enter
sy d5h
Maybe you have to use the scroll bar of your window to see the following lines:
This tells us, that the molecule must lie in the xy-plane and the symmetry distinct atoms of Cp - should be on the x axis. To define the molecule, we
enter the following commands
ai
c
1.2 0 0 A # Angstrom units!
*
h
2.3 0 0 A
*
*
Hint: Be always aware how the symmetry generators of the chosen point group are defined.
20
TURBOMOLE Tutorial 6. DEFINE
The definition of internal coordinates is extremely important for efficient structure optimizations.
If you are not interested in any property related to internal coordinates, it is usually safe to define the internal redundant
coordinates automatically by ired and then proceed to the next menu with *. In that case, just keep in mind to call
the ired option in the first define menu and go to the next chapter.
However, if you want to do constrained searches, or if you are looking for transition states, you need to know how to
deal with internal non-redundant coordinates as well:
Assume, we want to continue with our Cp- example – if you did skip the last menu, never mind... you can use
the coordinates from the structure library.
Call define in an empty directory and then type (ignore the comments behind and including the #):
<Enter> # two or more times - until you get to the geometry menu
a ! cp- # load the coordinates from the structure library
desy
We can now define the coordinates manually by issuing the following commands (ignore the comments):
After another two strokes on the return key, we are back in the internal coordinate menu. We can enter imet
to find out whether the coordinates are complete and have a decent Wilson B-matrix. Now, also the disi
command is working. We can play a little with internal coordinates and reshape the molecule (often the
distances are not satisfyingly after input of guessed Cartesian coordinates). Use the iman command to change
the bond lengths (but remember to reset them to chemically reasonable values before going to the next item of
this exercise). If you are doing the „quick tour“ through the tutorial go to exercise 6.6.
Except for small cases, manual input of internal coordinates is a rather joyless task. Think of the internal
coordinates necessary for Cp- in C1 symmetry. Delete the internal coordinates of the previous part of the
exercise by typing
irem k
sy c1.
21
TURBOMOLE Tutorial 6. DEFINE
iaut
Now have a look at the control and coord files (with more, less, vim, etc.).
The
iaut
command fails for more complicated cases (cage molecules or sandwich complexes).
Let us create a new directory and copy there the coord file containing the Cp- anion. We run define, load
the molecule, detect the symmetry using desy and lower the symmetry to C5v via the command susy.
After that we add an aluminum atom:
ai
al
0 0 2 A
*
*
If we try to use iaut on this molecule, define will fail (you will see this, if you try imet). In cases like
these we can use
ired
which produces redundant internal coordinates. You can see the result by typing red_info (and using the
scroll bar of you window). For the current molecule, due to its high symmetry, there still is a good solution
using non-redundant internal coordinates (can you think of one?). However, if symmetry is lowered and/or the
molecule becomes more complex, the Wilson B-matrix will become ill-defined for non-redundant internal
coordinates.
w coord
qq
You can now have a look at the control file. It contains the redundant internal coordinates in the data group
$redundant. Note: you can delete files like [Link]. They may remain after premature exits from define.
22
TURBOMOLE Tutorial 6. DEFINE
Crystal data or final structures from molecular dynamics runs (and even results of geometry optimizations) sometimes
are only slightly distorted and will show high symmetry, if further optimized. define can help you to detect these
„hidden“ symmetries. You have to use the
desy
desy 0.5
This threshold gives the size of a sphere around each atom (in Bohr units). If spheres overlap after a symmetry
transformation, the two atoms are considered as symmetry equivalent. After a higher symmetry has been detected, the
molecular framework is symmetrized.
Hints: If the radius of the spheres was chosen too small such that only a subgroup of the full symmetry group was
identified, the symmetrization may prevent define from finding the full symmetry. Sometimes, however, the reverse
is true. Use the w <filename>, del all and a <filename> commands to save intermediate results, delete all
atoms and to reload the coordinate files.
Of course, a too large value for the sphere is not very helpful, either. Best results are typically obtained with desy
1.0.
Lets resume with the Cp- example (exercises 6.3, 6.4). Go to the previous directory and start define. If you left it in
the status after the last exercise you might, after the title section, get a message like
b all def2-TZVP
23
TURBOMOLE Tutorial 6. DEFINE
All atoms now are assigned the def2-TZVP basis. Use the bl command to look at the current status. If we feel that
we should rather use the def-SVP basis for the hydrogens, we enter
b "h" def-SVP
bb 7 def2-TZVP
has the effect of assigning the def2-TZVP basis to all symmetry equivalent hydrogen atoms.
At this point we leave this menu by entering *. To immediately quit define, enter qq.
If you want to continue with exercising, please go to chapter 6.11. To learn more about basis sets and basis set
assignments, simply continue.
If you are interested in some more advanced features like basis set modifications, entering h will provide some help.
The default basis set which define sets automatically is def-SV(P), i.e. def-SVP for all non-hydrogen elements and def-
SV for the H's (no polarization function P there). This basis set is sufficient for ground state DFT structures and some
properties, but should be set to a higher level (def2-TZVP) for DFT single point energy calculations or Hartree—Fock
and MP2/CC2 calculations.
A short note about the names and the quality of each basis set for the methods implemented in TURBOMOLE is given,
when you call the basis set information sub-menu (bi) in the ATOMIC ATTRIBUTE DEFINITION MENU.
Enter bi and you will get this message on screen:
bi
==============================================================================
Balanced basis sets for H-Rn of types SV, TZV and QZV (plus polarization sets)
were developed in 2005, partly by modifying previous bases.
The resulting bases, def2-SV(P)/SVP/TZVP/TZVPP/QZVP/QZVPP,
were tested at more than 300 representatively chosen systems.
We thus may give some rough recommendations:
QUALITY: exploratory-----qualitative-----quantitative-------limit
DFT def2-SV(P) def2-TZVP def2-QZVP
HF def2-SVP def2-TZVPP def2-QZVPP
MP2 def2-SVP def2-TZVPP def2-QZVPP
24
TURBOMOLE Tutorial 6. DEFINE
Note that the former standard basis sets for TURBOMOLE are still in the basis set library, just replace def2- by def-, e.g.
def-SVP instead of def2-SVP.
Another set of basis sets, typically used for correlated methods like Coupled Cluster calculations, are Dunning's basis
sets. Those are included in the standard Turbomole basis set library, denoted as usual:
cc-pVDZ, cc-pVTZ, cc-pVQZ, cc-pV5Z, cc-pV6Z. And the augmented ones: aug-cc-pVDZ, aug-cc-pVTZ, etc.
To get an overview about the quality of each basis function compared to the other ones, choose an element and look at
the file $TURBODIR/basen/<element name>. At the beginning of the file, the names of the basis sets are given together
with the total energy of an unrestricted Hartree-Fock calculation. The lower the energy, the better the basis set.
There is (quite hidden) an option in define that prints out all available basis sets, letting you choose the one you like.
It was thought as a help, so you get there only if you do the assignment step by step.
b all
● then you will be asked for a nickname. If you have no idea what to take, enter something like (it does not
matter):
help
● define will now search for the string 'help' and gives an error output:
INPUT NICKNAME
● you will first get the list of available basis functions (the header of the files in the basis set library), and then
define goes through all basis set nicknames, asking if you want the current entry or not.
25
TURBOMOLE Tutorial 6. DEFINE
● If you just remember the beginning of the name, or if you want to use one of the default basis sets, you can
also enter as nick name:
def-?
or
def2-?
And you will get just the basis sets from the library that start with def- or def2-, resp.
Unfortunately, define will take the first name of a basis set if several names are given, which might prevent
the automatic assignment of auxiliary basis sets for RI later on. But there, you will be able to go through the
available auxiliary basis sets either.
In your home directory, you can create a .definerc file (the leading dot is important!). The contents of .definerc
may look like that:
basis=/home/me/PROG/TURBOMOLE/basen
basis=/home/me/BASISSETS
Each line defines an alternative basis set library. The user defined basis set library should look like the TURBOMOLE
library (have a short look at $TURBODIR/basen): The directory must contain files having the name of the element,
which in their turn contain the various basis sets. Create such a directory in your home directory. Load one or two basis
sets of your choice for carbon and hydrogen from the EMSL basis set library
[Link]
and copy the basis set information into files named C and H. Make sure that you selected the TURBOMOLE format. There
should be only one $basis at the beginning and one $end at the end of each library file. Then create a .definerc
in your home directory and enter the full path of your new basis set library in the format shown above.
To check whether it is working, go to the directory where you last edited the Cp - anion and run define. In the basis set
menu, enter lib and choose your new library. Now you can specify the basis sets that you have just downloaded.
If you feel that your molecule builder is much better, you can simply skip this exercise.
Get a copy of the Cp- ring, which you hopefully succeeded to create in the previous exercise and turn it into Cp *- (i.e.
Substitute the hydrogens by methyl groups). This can be accomplished as follows:
• Create a new directory and call define. Enter two times <Enter> until you reach the Molecular Geometry
Menu.
• Enter a !cp- and then desy
• If the displayed symmetry group is not D5h use desy 0.5. Then use the susy command to lower the
symmetry group to C5 (you have to go to C5v first).
• Still in the geometry menu, enter sub. Then you have to specify the atom index of one of the hydrogens. Use
26
TURBOMOLE Tutorial 6. DEFINE
the disc command if you do not remember. The program will ask you whether you want to replace all
symmetry equivalent atoms (provided the symmetry was set correctly).
Answer y.
• Now we have to define a molecular fragment that should replace hydrogen. We use the little structure library
of TURBOMOLE again and enter
!ch4. We accept the first offered structured and choose one arbitrary hydrogen of methane to be taken away,
thus defining the way the fragments are linked together. For the following question, you can accept the
defaults.
• After entering the basis set menu, we can simply leave define by entering qq.
Use the t2x or the tm2molden tool to get the input for a visualizer. Copy this file via FTP to your local
machine and hope, that there is something installed to view the result.
27
TURBOMOLE Tutorial 6. DEFINE
eht
to perform an extended Hückel calculation. Accept the 'DEFAULT PARAMETERS' and enter the charge (-1 for Cp-, of
course). The program will propose occupation numbers which for most cases are correct. If the HOMO/LUMO
separation is small, you will get a warning. For Cp-, we can accept the assignment and go on to chapter 6.13 .
brings you to a menu for manual assignment of orbitals. You will get this menu automatically, if define cannot
establish occupation numbers because of degeneracies of the frontier orbitals. The most important options are:
All TURBOMOLE jobs are restart jobs as default. So you will always reuse the old molecular orbitals that are present in
your working directory. In some cases those are not valid any more and define provides the use option to recycle
MOs when
The use command will need a unchanged copy of the control, basis and mos files; therefore make a copy of the
contents of your working directory (e.g. in the subdirectory save: mkdir save ; cp * save ).
• Run define in the working directory and change the symmetry to C2 (use susy).
Leave the geometry menu and skip the attributes menu; you will automatically end up in the molecular
orbital section of define.
Enter the command
use save/control
(you have to modify the path name, of course) to obtain transformed orbitals.
Quit define and use the eiger command to view the result.
28
TURBOMOLE Tutorial 6. DEFINE
• Restore the old control and coord files (symmetry D5d) by copying them back from the subdirectory and
rerun define.
This time you change the basis set to TZVPP.
The command
use save/control
will generate projected orbitals.
Run ridft and compare with a run which starts from EHT Mos.
Here, you can choose additional parameters for your calculation. Depending on the type of calculation you wish to start
you have to visit some sub menus:
• Hartree-Fock SCF:
This is the default with a convergence threshold for the energy of 10-7 Hartree.
If you want to change some options, go to the scf sub menu. Most options concern convergence
acceleration. They are normally OK for most cases.
• MP2/RI-MP2/RI-CC2/PNO-CC:
In this menu you can set all RI-MP2 and RI-CC2 related settings – i.e. assigning auxiliary basis sets with
cbas, freezing orbitals with freeze, setting the memory that should be used for the calculation with
memory, and denconv to get accurate Hartree-Fock densities as input for MP2 and CC2.
In general, you can use the ricc2 program for both MP2 and CC2 calculations. Call cc2 instead of mp2
in the general menu and choose the method by entering ricc2. With list models you get a list of
available wave function models.
• DFT:
Enter the dft sub menu, switch it on and select a functional and a grid (if the default is not satisfactory).
If you want to switch on dispersion correction for DFT, use the dsp submenu to switch it on or off.
• RI-DFT:
Enter the dft sub menu and make your changes as described above. Subsequently, go to the ri sub menu
and switch on this option. You should also increase the core memory; the default is 200 MB. In general,
you can use up to about 80-90% of the net memory available per processor (ask your system administrator
and check the run time behavior of the program with top).
To switch on the multipole accelerated version of RI-J, just got to the marij menu (see chapter 7.7 for
details about MARI-J).
Coming back to our Cp- example: Try to set up the input the input for the following calculations and run a single point
energy calculation.
Have a look at your working directory before and after the run. Also inspect the files control, coord, basis,
energy.
29
TURBOMOLE Tutorial 6. DEFINE
Once the control file has been set up, many changes to it can also be done using standard UNIX editors (like vim or
emacs).
2. Call define.
3. Hit <Enter> when being asked for the name of the input file,
enter a title for the input file you are going to create, this can be an arbitrary text like:
4. Now you will get the first menu of define (here only the first few lines are printed):
make sure that your terminal window is large enough to see the first line with the most important data.
5. As you can see in the first line, there are no atoms yet, symmetry is C1.
a !benzene
a coord
here at this point, assuming that your coordinates in Turbomole format are in the file coord in the local
30
TURBOMOLE Tutorial 7. Single Point Calculations
directory. A complete path to a coord file can be given here either, like: a
/home/me/infiles/projectA/coord
7. define will scan through the structure library and ask you if you want to take the proposed molecule:
formula=c6h6
file=benzene
name=benzene
name=benzol
# benzene optimized at SCF-level with basis sets of dz quality.
# max. internal gradient is 2.1d-05 (stre 1 7), total energy is
230.601994.
# the molecule lies in the xy-plane (for d6h-symmetry)
# Note: there is one more entry for benzene in this library.
just say
8. The main menu is printed again, and if you look at the first line, you will see that 12 atoms have been added:
desy
10. Symmetry detection prints out the Schönflies symbol, the generators, and much more. Scroll up your window
if you want to see the details.
11. desy does its work and the main menu is printed again, now with the right symmetry D 6h:
12. Next typical step is to provide internal coordinates. That is not needed for single point calculations, but since
we are already here, and since one never knows if a geometry optimization will follow, and (finally) since you
will be asked if you really do not want to use internal coordinates when leaving this menu afterwards, a simple
ired
31
TURBOMOLE Tutorial 7. Single Point Calculations
13. Now we are done with this menu and proceed to the next one by entering
14. Next menu is the atomic attributes menu, here you usually will just change the basis set. The default basis set,
which is assigned automatically, is def-SV(P) – see chapter 6.7 about basis sets and their quality.
We wrote in the title, that we are going to use def-TZVP. To change the basis set accordingly, enter:
b all def-TZVP
That is it for this menu, so let us proceed to the next one by entering
15. The third menu where we are in now is the one where define determines the start molecular orbitals with
(e.g.) an extended Hückel guess.
eht
and you will be asked a lot of questions. Just accept all defaults.
If you have a charged system, you have to tell define that at this point! For now, we accept the neutral benzene
by hitting simply <Enter>.
and
32
TURBOMOLE Tutorial 7. Single Point Calculations
Here define suggests a certain occupation, which also determines the multiplicity and the choice between
restricted and unrestricted calculations. In this case it is a restricted singlet calculation which is just fine.
16. eht automatically terminates the occupation menu, so we get directly to the last menu which is called 'general
menu'. Here the settings for the methods (HF, DFT, MP2/CC2, excited states, RI, ...) can be done:
The default is a Hartree-Fock calculation, and therefore we do not have to change anything here. Simply enter:
17. define ends now and you will find several files in your directory, containing all important settings and data.
19. after the run, look in the output and/or the energy file. The energy file should give:
33
TURBOMOLE Tutorial 7. Single Point Calculations
The converged energy is given in the SCF column, kinetic and potential energies are also given.
20. Look in the output [Link] and search for the dipole and quadrupole moment, the number of basis
functions, and whatever you like to know.
21. We get more details about the orbitals, the HOMO-LUMO gap and the occupation with the Turbomole own
tool
eiger
To run a DFT calculation, call define again and accept all defaults – it will read in the existing control file, so you
will not have to change anything at the first three menus (coordinates, basis sets, molecular orbitals).
In the last menu, enter dft and then on to switch on this method:
STATUS OF DFT_OPTIONS:
DFT is used
functional b-p
gridsize m3
Next, switch on RI the same way: enter ri and then on. define will automatically assign the auxiliary basis set if
you have chosen a basis set where optimized auxiliary basis sets exist (all def- and def2- basis sets).
Note that the RI and non-RI energies differ: Never compare absolute energies of RI with non-RI calculations!!
34
TURBOMOLE Tutorial 7. Single Point Calculations
Semi-direct runs are optimal for medium-sized SCF calculations (up to 500-1000 basis functions). This example gives
you an idea of the computational savings.
Save the start Mos (cp mos [Link]) in an extra file and run dscf.
2. After the first run, rename the file statistics and copy back the start Mos (cp [Link] mos).
Run define to change to a semi-direct run. In order to accomplish that, choose the scf option in the last
define menu and select the ints sub option.
Enter maximum size (e.g. 2000 MB) and name of the two-electron integral file (e.g. twoint).
Please note that entering multiple integral files is neither necessary - since there is no file size limit on all
machines TURBOMOLE runs on – nor possible with define.
Make sure, that the scratch directory is located on a fast (!) access file system. You can give the whole path if
the two-electron integral file should be in a directory other than the control file
(e.g. /scratchdir/myusername/twoint, provided that the directory
/scratchdir/myusername/ exists).
Start another dscf run and compare the timings (have a look at the two statistics files, as well).
1. The selection of integrals to be stored on disk is controlled by the two keywords $thime (threshold for
estimated time consumption of integral batch evaluation; idea: we only need to store expensive integrals) and
$thize (threshold for integral value; idea: only large integrals will contribute in subsequent iterations). The
default values of the integrals work well, normally. If the given size of the two-electron integral file becomes
too small you get error messages like
but the program will continue, nevertheless. Either increase the disk space or use larger values for $thime
and $thize. For highly contracted basis sets like the Dunning series, $thime 20 will still give some
savings for larger cases.
2. Specifying an integral file will also improve the Z-vector equations in rimp2 and ricc2 runs.
35
TURBOMOLE Tutorial 7. Single Point Calculations
3. NMR chemical shielding calculations using hybrid functionals like B3-LYP do also require a non-zero value
for the integral file size.
It is also possible to let dscf calculate the size of the integral file for the given settings of $thime and $thize:
stati dscf
stati is a TURBOMOLE own script that will do nothing but adding the keyword $statistics <option>
to the control file.
3. Run dscf as usual. It will perform a statistics run only and change the value of size of the keyword
$scfintunit accordingly.
4. Now you can edit the control file and check if the size is reasonable. If it is too large for your system,
change it to an arbitrary value – as mentioned above, dscf will fill the file and then continue the calculation in
the direct mode.
1. The converged energy is written to the file energy – however, if there has been such a file before, the energy
is appended to the existing ones. You might have to check the date and time of the file to find out if it has been
written lately.
2. The header of the MOs (either file mos or alpha for RHF or UHF cases resp.) gives a hint about the status of
the MOs. Do a head mos or head alpha and check if you can find one of the entries in the first line:
3. If you have gnuplot installed, you can call cgnce <output file> to get a graphical plot of the
convergence behaviour, with the output file of the energy run as option. If no output file is given, cgnce takes
[Link], i.e. the last energy run of a geometry calculation (see chapter 8.1).
36
TURBOMOLE Tutorial 7. Single Point Calculations
Create two new subdirectories and copy to each the coordinates of C8H8 (from exercise 6.3). If you do not have the
coordinates, use the ones from the structure library (see below).
Make sure that the working directory, from which the runs are started later on, is located on a file system with fast
access (i.e. directly connected to the node you are running on and shared by as few processors as possible).
• In both directories, run define and set up the input for (semi-direct, if you like) SCF calculations with a def-
SVP (in one directory) and a def-TZVPP basis set (in the other directory), respectively. Don't forget to set the
symmetry-information (desy)! To add the coordinates, use either a coord if you have copied the file, or
a !c8h8 if you do not have the coordinates (any more?).
Enter mp2 at the general menu and then assign the auxiliary basis sets with cbas. You should get:
• accept all defaults but change the core memory to some larger value (should be 70 to 80 % of the RAM per
CPU, some memory should be left to the system for I/O cache). define will automatically set the keyword
$denconv .1d-6
thus requesting a tighter convergence threshold. All post-SCF programs will terminate, if this keyword is not
found in control
• Run dscf.
to prepare a run with a maximum disk usage of 2000 MB and a maximum memory usage of 700 MB (adapt
these values as necessary). The script mp2prep works only properly, if the file mos has been created by a
converged SCF run (this is the reason, why we ran dscf before).
37
TURBOMOLE Tutorial 7. Single Point Calculations
Make three subdirectories. Call define in each directory, and load the coordinates of BF from the structure library
(a !bf). Prepare semi-direct (!) dscf runs, employing the cc-pVTZ, cc-pVQZ and cc-pV5Z basis sets respectively
(see chapter 7.2 to see how semi-direct runs are prepared) . Keep copies of the initial mos files and run the calculations.
Then, prepare the RI-SCF calculations. To do that, just run through define until you reach the last menu. Enter the
rijk sub menu and switch on this option. This will automatically load the appropriate auxiliary basis sets. Choose a
sufficiently large value for the core memory. Compare the computation times.
To speed up calculations using the Resolution-of-the-identity (RI) approximation, TURBOMOLE currently provides three
kinds of auxiliary basis sets, which you should not mix up.
1. Coulomb-Fitting ($jbas). Basis sets declared in this data-group are needed for RI-DFT calculations, where
only the Coulomb part of the Fock operator is approximated. They can be kept rather small.
2. Coulomb- and Exchange-Fitting ($jkbas). If additionally the exchange part of the Fock operator needs to be
approximated (RI-SCF calculations), a larger fitting basis is needed. It also can be used for RI-DFT runs (if the
accuracy of the $jbas auxiliary basis is not satisfactory for you).
3. Correlation-Fitting ($cbas). These basis sets are needed for RI-MP2 and RI-CC2 calculations. They contain
basis functions with high angular momentum.
Have a look at the three different kinds of fitting basis sets by doing the following:
For large RI-DFT calculations (more than 2000 basis functions), the multipole-accelerated RI-J approximation (MARI-
J) leads to a considerable speed-up. The loss in numerical precision is much lower than that due to the RI-
approximation. The multipole acceleration produces almost no overhead, so it can be used for any large DFT
calculation.
In $TURBODIR/structures/c216h36/ you can find the coordinates of a graphite sheet (C216H32). For a system of
this size, the multipole approximation is faster by nearly a factor of 2.
Setting up the input is rather easy. Prepare a RI-DFT run as usual. In the final menu of define - additionally to the sub
menus ri and dft - you also have to visit marij. Just switch on this option and accept the defaults. Only if your
calculation contains basis functions with higher angular momenta (f-functions), you will have to use higher maximum
multipole moments.
For comparison, you may start a conventional DFT run. It will take ages!
38
TURBOMOLE Tutorial 7. Single Point Calculations
Dealing with transition metal clusters one is often faced with the problem that the extended Hückel (EHT) guess does
not provide the correct occupation. Playing around with occupation numbers often makes the user feel like Sisyphus.
Fractional occupation numbers (FON) which are automatically determined in a Fermi-distribution motivated manner
(actually an error function is used) can improve convergence in these cases (see manual, keyword $fermi).
• Create a new directory and run define, read in the coordinates of Pd4 from the structure library (a !pd4)
and detect the symmetry (should be D2d). As basis set accept the default def-SV(P) basis.
Answer with no the question: 'DO YOU ACCEPT THIS OCCUPATION ?'.
This provides you a menu for assignment of occupation numbers. Choose the quintet state by entering
u 4
(alternatively you may choose a singlet by entering s or u 0).
• In the final define menu choose a RI-DFT calculation using the BP86 functional.
Save the output and the energy file, then try to do a few calculations with different occupations and start orbitals, but
without using $fermi. Check how close you can get in the total energy compared to the previous run.
Warning: Fermi pseudo smearing is a very nice feature to get an occupation you would not have expected to be the
lowest one... But if you leave $fermi in the control file and then start a geometry optimization, ridft or dscf will
redo the occupation in each geometry cycle! That might be what you want, but the run has the possibility to switch from
one hyper surface to another, leading to a completely different minimum structure with a completely different
occupation than you might have expected. This minimum does not have to be lower in energy than the one with the
fixed occupation numbers...
39
TURBOMOLE Tutorial 7. Single Point Calculations
If your energy did not converge after a first run, you can change all the keywords that are responsible for the
convergence behavior in the control file:
2. $scfdamp # sets the damping of the DIIS, damping starts with the start value
# and will either be decreased or increased by step and decreased
# only to the limit of min.
4. $scforbitalshift # helps to get a better convergence by shifting the virtual and/or occupied
# orbitals up or down, resp. - please refer to the manual (keywords section)
The basis set superposition error (BSSE) can be corrected for using the counterpoise method. The following example
explains how to perform a counterpoise calculation with TURBOMOLE.
Note that this example is a simple BSSE case for a dimer. More complicated BSSE calculations for up to three
fragments and counterpoise corrected geometry optimizations can be done with the module jobbsse. Please read
chapter 3.6 of the manual if you want to use that tool.
The coordinates of the dimer of H2O in Cs symmetry are available from the structure library. The structure has already
been optimized.
First of all the energy of the dimer has to be evaluated at the MP2-level:
1. Crate a new working directory and run define as for a SCF run. Load the coordinates of the water dimer
from the structure library (a !h2o_2). Choose the basis sets def-SV(P) and create start-MOs for dscf from
Hückel guess.
2. Enter
freeze
to get in the frozen core assignment menu and choose
core 0
in order not to have frozen electrons.
40
TURBOMOLE Tutorial 7. Single Point Calculations
3. Run a dscf-run first and a rimp2-run afterwards to get the energy of the dimer at the MP2 level (EDIM).
Next, you can evaluate the energy of each water molecule, in the presence of the basis set of the second one:
1. Create a new directory and copy in it the control and the coord files.
2. In the control file change the symmetry group of the system to C 1 and the $atoms keyword, so that one of the
two water molecules displays charge zero:
$atoms
o 1 \
cbas=o def-SV(P) \
basis =o def-SV(P)
h 2-3 \
cbas=h def-SV(P) \
basis =h def-SV(P)
o 4 \
charge =0.000000 \
cbas=o def-SV(P) \
basis =o def-SV(P)
h 5-6 \
charge =0.000000 \
cbas=h def-SV(P) \
basis =h def-SV(P)
3. Alternatively (and that is the easier way to do it), start define with the input and change the charge of the
elements in question to zero by entering in the Atomic Attributes Menu:
c 4-6 0.000
4. Run define to get start-MOs and to switch off the frozen core approximation as shown above.
5. Run a dscf-run first and a rimp2-run afterwards, to get the energy of the monomer, already corrected for the
BSSE (E1B).
6. Repeat the same procedure for the second molecule of water, to get the energy of the monomer E2B.
You can evaluate the dissociation energy, corrected for the BSSE, in the following way:
E B = E DIM −E 1B −E 2B
Furthermore, you can calculate the energies of the molecules of water in the geometry of the complex:
2. Delete in the coord file the coordinates of one of the two water molecules.
4. Run a dscf and a rimp2 step, to get the energy of the monomer E1.
5. Repeat the same procedure for the other water molecule, to get the energy of the monomer E 2.
Now you can estimate the dissociation energy (without structure relaxation effect) in the following way:
E=E DIM −E 1 − E 2
41
TURBOMOLE Tutorial 7. Single Point Calculations
The BSSE is usually defined as the difference between the two dissociation energies:
BSSE = E− E B
The procedure to set up and run parallel jobs depends much on the computer architecture and the queuing-system.
There are different parallelization methods implemented in the current version of Turbomole, but for their usage no
additional keywords or settings are needed. The user just has to tell Turbomole whether a parallel job will be running on
a single system with many CPUs or cores (SMP) or on a cluster using several (different) nodes connected by a network
interface:
1. MPI – parallel versions of dscf, grad, ridft, rdgrad, escf, aoforce, mpgrad, ricc2, pnoccsd
2. SMP – parallel versions for shared memory systems of almost all time demanding modules are available
In general, the parallel version can be used the same way the serial one is used. All you have to do is to set the
environment variable PARA_ARCH to MPI for the MPI parallelization or to SMP for the multi-core version, and, if
you do not want to do the calculations on the default 2 nodes, set PARNODES to the number of CPUs you would like
to use.
For the SMP version, which is the recommended way to run post SCF calculations on a multi-core system, the binaries
will be called by wrapper scripts named like the serial binaries. Hence, calling this version does not differ from calling
the serial binaries.
MPI version for parallel jobs over a network using different nodes:
• set PARA_ARCH=MPI
the sysname script will append a _mpi to its output:
export PARA_ARCH=MPI
export PARNODES=4
export PATH=$TURBODIR/bin/`sysname`/:$PATH
• The name of the nodes where the parallel job will run is also needed. If you use a supported queuing system
(PBS, LSF, SGE, SLURM), Turbomole will automatically find the right nodes from the provided settings.
Otherwise write the names of the machines in a file (each line just one name, so for using several CPUs or
cores on one node, add additional lines with the same name) and set the environment variable HOSTS_FILE
to this file. Turbomole will process this list and use either just as many nodes as provided or just the number
which has been set with PARNODES – depending on which number is larger.
42
TURBOMOLE Tutorial 7. Single Point Calculations
• set PARA_ARCH=SMP
the sysname script will append a _smp to its output.
• set number of threads with PARNODES and the PATH just in the same way as for the MPI version.
The most common way to run jobs is to have a queuing system like PBS, LSF, SLURM or SGE/Univa Grid engine. For
those queuing systems, TURBOMOLE will use the information about the available nodes directly, so it will automatically
start the jobs where they are supposed to run. For other queuing systems: please ask your system administrator.
The input has to be in a directory that can be accessed on each node, having the same path name. Usually one starts
parallel calculations from an NFS disk.
Note: avoid the usage of the shared NFS disk as much as possible !! Otherwise this might dramatically slow down the
calculation. See the hints below and carefully read Hints in the Turbomole User Forum.
Some hints:
1. When using ridft for larger inputs, do not forget to switch on $marij. Multipole accelerated RI-J can be
more than a factor of 6 and more faster than usual RI-J calculations for big systems. You get that for free and
without additional errors, so it is always safe to turn it on.
2. NumForce can also be run in parallel, but here it is much more efficient to run the serial binaries at a time
instead of the parallel version – all single-point jobs can be run independently.
To run it in parallel, add the -mfile option with the name of a file which contains a list of nodes (just like
$HOSTS_FILE):
Let us now try a single point energy calculation of Water on CCSD(T)/cc-pVTZ level.
2. assuming TURBODIR is already set, now we set the path to the SMP version.
export PARA_ARCH=SMP
export PATH=$TURBODIR/bin/`sysname`:$PATH
43
TURBOMOLE Tutorial 7. Single Point Calculations
ired
*
bb all cc-pVTZ
*
eht
<Enter>
<Enter>
<Enter>
cc
freeze
*
cbas
*
ricc2
ccsd(t)
*
*
*
44
TURBOMOLE Tutorial 7. Single Point Calculations
8. Structure Optimizations
jobex is a shell script that drives the geometry optimization. Here, we will have a look at a HF/SV(P) geometry
optimization of Cp-.
• Create a new input for this molecule, just the way it has been done in chapter 7.1. Note that the input itself
does not contain the information about the kind of job you want to run: Single point or structure optimization.
• In order to see how the optimization is working, we first proceed step by step. First, we carry out the energy
calculation (run dscf). This will create a file called energy (and converged MOs in mos, of course).
After that, we shall run the gradient program. Run the module grad. It will produce the file gradient.
Finally, the module statpt will estimate new coordinates. You can monitor the current structure with the
help of the command dist. Try this command before and after the statpt run.
• jobex will carry out these three steps automatically. On the command line, type
jobex -h
to get some further information. Then just run jobex without any further command line arguments. After
completion, inspect the energy and gradient files. A useful command for the latter is
Note, that there is one more energy in the energy file. The reason is that for a SCF (and DFT) optimization,
jobex tests the convergence after each energy calculation.
jobex -ri
• In another directory, set up a RI-MP2 calculation and start the optimization by typing
The method that is used during a geometry optimization is determined by two things:
1. the keywords in the control file, and
2. the options you use when calling jobex.
45
TURBOMOLE Tutorial 8. Structure Optimizations
Jobex finishes after the calculation did converge, but it also stops if the maximum number of cycles (default is 20) has
been reached. Now, how do we get more informations about the job that has just finished?
2. Call define there and load acrolein from the structure library:
3. Prepare a RI-DFT calculation, accepting all defaults (basis set, functional, occupation, etc.). Hence, you can
just say <Enter> and * all the time – just remember set dft to on as well as setting ri to on in the last, the
general menu.
jobex -ri -c 5
8. To check what jobex was about to do, look at the file [Link]. There you will find the information about
the options that have been given, the method that has been chosen and the convergence criteria that have been
applied.
9. You will find a file called converged in the second directory and a file [Link] in the first
directory.
10. Open [Link] in an editor. You can see the criterias given from jobex in $convcrit and the
current criteria in $convinfo.
8.4. Preoptimization
1. The probably best option to pre-optimize a structure is to use xTB-GFN2 tight binding method from the
Grimme group. For this purpose, only a coord file is needed, and jobex can be started with the option
46
TURBOMOLE Tutorial 8. Structure Optimizations
2. P7H3 is a rather nice cage molecule (its point group we naively assume to be C3v, in exercise 9 we will examine
this), set up the input for a RIDFT structure optimization (def-SV(P) basis and B-P functional).
Create a new working directory, call define and load P7H3 from the structure library:
Create another subdirectory and start again by reading in the coordinates of P7H3.
After symmetrization, try the
ff
command to pre-optimize the structure using the force field program (intuitive usage). Run a RIDFT geometry
optimization starting from this pre-optimized structure. Document the number of optimization cycles with and
without pre-optimization. Note that the structure stored in the structure library of TURBOMOLE is closer to the
DFT minimum already.
3. Starting from the RIDFT/SV(P) structure, optimize the geometry at the RIDFT/TZVP level. Create two
subdirectories.
1. Copy the coord file into the first directory, set up the input and run jobex.
2. For the second run which you prepare in the other directory, use as well the coord file as well as the
hessapprox file from the SV(P) calculation (make sure, that a line saying
$hessapprox file=hessapprox
is contained in the control file before starting jobex).
In the structure library, you will find the converged ground state structure of H3CBr (RI-MP2/TZVPP). Assume, we are
interested in the energy path upon approach of a chlorine anion.
• Load the coordinates into define (a !h3cbr), get the symmetry (via good old desy) and add a chlorine
atom at an appropriate position (somewhere on the negative z-axis).
Define a bond between chlorine and carbon by entering the command sequence
idef
f stre 1 6 # defines a [f]ixed bond between atom 1 c and 6 cl
After several blank lines you are back in the geometry menu. Test the quality of the B-matrix with imet. Find
out the number of that newly defined internal coordinate (enter dis). Then use the command
47
TURBOMOLE Tutorial 8. Structure Optimizations
to change this distance to 250 pm (actually, you have to enter 2.5 A since only Ås are supported). Now we
are ready to leave the geometry menu.
• The input preparation is finished by running through the mp2 options in the last define menu.
We ignore the warning concerning the too small gap between frozen and active orbitals (it is due to the rather
high-lying d-orbitals of bromine).
• Inspect the results. If you liked it, you can decrease the carbon-chlorine distance (use man in define) and
look for an estimate of the transition structure.
a) Freezing the d-orbitals of 3rd row elements may be problematic, larger basis set like def-QZVPP are adequate
basis sets for including them.
b) We should have tested the effect of diffuse functions on chlorine and bromine (anions!).
For more complex structures, the automatic generation of internal coordinates might fail. In that case, just proceed as
written above and define the fixed coordinates by using the command
idef
ired
The automatic definition of redundant internal coordinates ignores the non-redundant coordinate definitions.
But: fixed internal coordinates will be taken into account, building redundant internal coordinates around the given
fixed ones.
The more fixed internal coordinates you have, the more difficult it is to find the remaining set of redundant internal
coordinates – and the higher the possibility that the set of redundant internal coordinates will get linear dependent
during the optimization!
Simulated annealing serves for finding new structures on complex hyper surfaces, e.g. for metal clusters. Here, we
chose a more obvious example: the PtCl4+2 complex.
The coordinates of that molecule, but with a distorted tetrahedral structure are available in the structure library.
1. Run define as for a RI-DFT run, but the group symmetry of the complex should remain C1.
Load PtCl4 by entering a !ptcl4. Choose basis sets (def-SVP) and create start MOs (do not forget that the
charge is +2).
48
TURBOMOLE Tutorial 8. Structure Optimizations
In the 'GENERAL MENU', choose dft (default functional and grid size are appropriate) and ri options.
Adjust the option ricore according to the available RAM per processor.
Set the maximum number of SCF iterations to 100 ($scfiterlimit) and the daming to a start value of 3
($scfdamp start=3.0 step=0.050 min=0.050).
2. Run mdprep. Most default parameters are appropriate, change only the following ones:
1. request 150 MD steps in the section
'NUMBER OF MD STEPS';
2. in the section 'USER-DEFINED ACTIONS' choose a simulated annealing calculation;
3. in the sub-menu 'SIMULATED ANNEALING / QUENCHING' choose the anneal option;
4. enter an annealing rate of 0.985 and a time of 1000, from which the anneal will start to occur.
3. The program mdprep creates two files: mdmaster and mdlog. The first is a command file, which contains
the keywords for the module frog, while the latter is an output file. Be curious and inspect these files.
In order to run the structure optimization, you have to use the command:
The procedure consists of a ridft step, followed by a gradient and by a molecular dynamics step. In the file
gradient the total energy, the coordinates and the gradient for each interaction are collected. In the file mdlog
information on the time and the displacements are dumped. The file [Link] contains the output of the gradient, of
the ridft and of the MD steps of the last complete iteration. There should be a script log2egy which accomplishes
that.
In order to understand the output, you should grep from the gradient file the numbers of the cycles versus the total
energy and perhaps plot a graphic. Then you can choose the coordinates of the geometry with the minimal energy and
run a conventional optimization to refine the structure.
Searching transition state is usually a highly non-trivial task, simply because there are many of them while you are
searching for the one with the lowest barrier. Usually, you have already the reactant and product structures when
looking for the transition state.
1. you first have to guess an approximate transition state somewhere between the reactant and product structures,
2. if you have a guess structure for the transition state (like the one from 1.), and if that one is within the
quadratic region around the real state, you can apply a procedures like quasi–Newton–Josephson methods.
They are based on the restricted second-order method, which employs Hessian shift parameters. The program
statpt is doing that for you.
While step 2 is more or less straight forward and can be done in a similar way a geometry optimization (search for
minima) is performed, step 1 requires a lot of work, chemical intuition, experience, and time – at least if you want to
find the transition state rather than a transition state. Some remarks and details can be found in the TURBOMOLE
documentation, chapter 3.2 and 3.2.4.
49
TURBOMOLE Tutorial 8. Structure Optimizations
If you like to see how step 2 works (i.e. if you have a guess for a transition state structure), get the coordinates of
acrolein from structure library, and execute the following steps:
• Run define, load the coordinates (a !acrolein) and leave the geometry menu without specifying
internal coordinates (answer no after leaving the menu).
As basis set specify 3-21g hondo.
Provide Hückel MOs and continue until the last menu where you enter the
stp
section and set the index of the transition vector (itvc) to 1. Please note that in statpt, the six zero
eigenvalues of rotation and translation are not between the negative and positive values as usual, but shifted
away. So itvec 4 is the 4th eigenvalue, counted from minus infinity upwards, leaving out the zeros.
• Run the dscf, grad and aoforce modules in order to provide the start information for the transition state
search. Please see chapter 9 for a detailed description of the module aoforce and how to perform force
constant calculations.
jobex -trans
• Run aoforce again to check, whether a transition state has been reached.
Here you did a full force constant calculation (see chapter 9) with the input you are using for finding the transition state.
For real life applications, the input for this is usually a bit different:
For such realistic inputs, getting the full Hessian can be the by far most time consuming step of the calculation.
Generally, the quality of the eigenvector for a transition state search does not have to be too high, using a lower and
cheaper method might just take a few geometry steps more, but saving much time at the initial Hessian calculation.
Doing the force constant calculation at RI-DFT/B-P86/def-SV(P) level is usually good enough. In addition, if the
system is big, a LES search can be done at this level (see chapter 9.2 about how to perform such a calculation).
Now to step 1:
There is no black box method in TURBOMOLE that finds a good guess structure for the transition state. However, some of
the features can be of great help:
Fixing internal coordinates is described in chapter 8.5. Freeze the internal coordinates which you think are
involved in the transition and run a usual geometry optimization.
Change the value of the internal coordinates with define by using iman in the internal coordinate menu,
50
TURBOMOLE Tutorial 8. Structure Optimizations
Use the structure with the highest total energy to get as close to the transition state as possible.
To fix a Cartesian coordinate, open the coord file and append an f to each line of the atoms that should
be fixed. Please make sure that there is a blank between the element name and the f!
b) Scanning the potential energy surface (PES) along an internal (z-matrix) coordinate using the tmole script.
This step is very similar to a), but here you do not have to distort anything yourself. tmole is able to read in
z-matrix coordinates with parameters. The additional %scan option in the tmole input file determines along
which coordinate is scanned. An example input can be found in the Manual of tmole.
tmole [Link]
at the command line. tmole prints the results in a file called [Link] which can be
opened and viewed in molden or directly in an editor.
c) Distortion of the structure along an imaginary mode using the script screwer.
If your first crude guess gives more than one imaginary frequency, you can distort the structure along one of
the (negative) modes. To do that, make sure that you have converged MOs from an energy run, the gradients
from a gradient run and the Hessian and the vibrational modes from an aoforce run. Then, just call
screwer
and follow the instructions. You will be asked for the number of the mode along which the coordinates will be
changed. Please look at the output (scroll up the window if necessary) and choose one of the imaginary
frequencies. Next you will be asked for the step length, given as a temperature in Kelvin. If the value is too
low, statpt might optimize the structure back to the initial guess – and if it is too high, you might get to the
other side of the hill on the PES...
d) Most convenient is the usage of TmoleX for scan jobs. The builder within TmoleX can define bond lengths,
angles and torsions as fixed, and this can be used to scan along one or along several of the internal coordinates.
See the TmoleX manual for details.
jobex, like many other TURBOMOLE tools, is a shell script. If you know something about shell programming, why not
have a look at it? Just get a local copy and customize it.
51
TURBOMOLE Tutorial 8. Structure Optimizations
The calculation of HF and DFT force constants is quite easy: After having performed a single point energy calculation
or a geometry optimization, just start the program aoforce.
• Retrieve the geometry-optimized BP86/SV(P) calculation of P7H3 from exercise 8.4, or redo the input
generation and the jobex calculation. Perform a force constant calculation with the program aoforce:
While [Link] contains the detailed data about the vibrational spectrum, the zero point energy, etc., the
keyword $vibrational spectrum in the control file contains a list of the modes:
$vibrational spectrum
# mode symmetry wave number IR intensity selection rules
# cm**(-1) km/mol IR RAMAN
1 a2 -768.31 0.00000 NO NO
2 e -667.21 0.00000 YES YES
3 e -667.21 0.00000 YES YES
4 0.00 0.00000 - -
5 0.00 0.00000 - -
6 0.00 0.00000 - -
7 0.00 0.01127 - -
8 0.00 0.00379 - -
9 0.00 0.01826 - -
10 a2 208.36 0.00000 NO NO
11 e 247.39 0.52958 YES YES
12 e 247.39 0.52958 YES YES
13 e 268.18 0.01352 YES YES
...
There are three negative eigenvalues: The C3v-structure is found to be a transition state!
After vibration has finished, copy the coordinates from the control file, found in the keyword
$newcoord to the coordinate file coord – replace the coordinates and rerun
define
Now, define will find that the coordinates do not fit to the former symmetry, that is still given in the
52
TURBOMOLE Tutorial 9. Vibrational normal modes
control file:
a coord
desy
ired
will redo the internal coordinates according to the new structure (if you forget that here, jobex will fail to run
properly later on. If that happens, just recall define, say y when being asked for changes of the structure and
call ired now – accept the rest of the input until you reach the end of define).
And, you will also have to redo the start mos with eht.
• Perform a geometry-optimization of the molecule in the new symmetry (C3) also on the BP86/SV(P)-level.
The energy lowering by going from C3v- to C3-symmetry should be about 341.8 kJ/mol (or 0.13018 Hartree):
Please note:
1. Small force constant calculations, like this example, work well with the default core memory. In case of larger
molecules, however, huge matrices have to be stored, and it is advantageous to process several of them at the
same time. For this purpose, add
$maxcor <N>
to the control file, where N specifies the core memory given in MB - but remember that some additional
quantities, e.g. the core memory for RI-matrices, cause further memory requirements. Depending on the total
size of the available memory, approximately 50% of it might be a good choice.
53
TURBOMOLE Tutorial 9. Vibrational normal modes
2. aoforce will always compute the Hessian, and from it the vibrational modes, even if your gradients are not
zero! In such cases, you are not in a region where a quadratic description of the potential energy surface is
sufficient. Furthermore, non-zero gradients contribute to a high extend to the Hessian. Be aware that the
numbers you get from such a calculation do not have to be meaningful.
3. TmoleX can be used to visualize the vibrational modes, and also to distort a structure along a mode.
For larger systems, a Hessian calculation can be more expensive than the complete geometry optimization. aoforce
scales with N3, where N is the number of basis functions.
The Lowest Eigenvalue Search (LES) approach calculates only the lowest N eigenvalues and eigenvectors numerically
(Davidson iteration scheme). This reduces the scaling behavior to N2 and gets thus more efficient compared to the full
run, the bigger your input is.
The setup of an LES calculation is the same as for the full one, the keyword $les switches on the LES mode of
aoforce.
1. Load the coordinates of the P7H3 exercise from chapter 8.4, do an SCF energy calculation and then add
$les all 2
2. Run aoforce as before and compare the frequencies with the full run.
Note:
● LES is not faster than the calculation of the full spectrum if:
● Since LES will calculate the eigenvector, it can also be used to generate an input Hessian matrix for a
transition state search (see chapter 8.7) using statpt:
1. You have to add (by hand) two more keywords to the control file:
$h0hessian
$nomw
2. statpt will use the full Hessian instead of the one from the LES search if both are found.
54
TURBOMOLE Tutorial 9. Vibrational normal modes
NumForce enables numerical force constant calculations for all levels of theory with a gradient implemented.
As an example, we will perform a numerical RI-MP2/TZVP force constant calculation for methane with the
NumForce script.
This chooses RI-MP2 (options -ri and -level mp2) and additionally the use of central differences (better
numerical stability) is ensured by the option -central.
Please note:
The default increment for numerical differentiation is 0.02 au. To get more accurate results, you may have to lower this
value, but only, if you increase the quality of the wave function employing stricter convergence criteria (i.e. modify
$scfconv and $denconv in control).
NumForce actually is a shell script. If you know some shell script programming, you can have a look at it and maybe
improve it for your own purposes (of course you should copy it first).
If you have forgotten the options of NumForce, just call NumForce -help to get a short overview.
A frequently asked question is which internal coordinate (bond, angle, ...) is involved in which mode of the vibrational
spectrum. This can be answered by an analysis of the normal modes in terms of internal (non-redundant !) coordinates.
Chapter 8.1 of the TURBOMOLE documentation gives a nice description about how to perform such a calculation.
From a full vibrational spectrum (not from a lowest eigenvalue calculation), it is possible to get various thermodynamic
functions at various temperatures and pressures.
After an aoforce or NumForce run, just call the 'free enthalpy' program:
freeh
55
TURBOMOLE Tutorial 9. Vibrational normal modes
1. After calling it, freeh will first print out the normal modes from the control file. From the coordinates and
the point group it finds out the symmetry number s needed in the quasi-classical rotational partition sum. Just
accept the proposed s and go ahead.
2. Next, you will be asked for a scaling factor for the frequencies:
This scaling factor should be chosen depending on the applied method. The proposed scaling factor is the one
that is recommended for BP/SVP calculations.
Other usual scaling factors1 are, for a small SVP or 6-31G(d) like basis set:
or enter q or * to quit
You do not have to write the complete line every time. If you accept the default temperature and pressure
(298.15 K and 0.1 MPa), just hit <Enter>. Otherwise, just change the values of the temperatures or pressures:
56
TURBOMOLE Tutorial 9. Vibrational normal modes
The input above will let the start temperature and the start pressure at the default values while changing the end
temperature to 350K and the end pressure to 0.5 MPa. numt and nump are the number of temperatures and
pressures between the start and end values that will be evaluated.
4. freeh will print out a list of several properties for the given range of temperature and pressure. Here an
example for benzene, RI-DFT calculation using def-SV(P) basis set and C1 symmetry for the input given
above (tstart is default, tend is 350, number of temperatures numt is 2, pressure is from default 0.1 MPa
to pend of 0.5 MPa, number of pressures numt is 4):
T P Cv Cp
(K) (MPa) (kJ/mol-K) (kJ/mol-K)
298.15 0.1000000 0.0801568 0.0884711
298.15 0.2333333 0.0801568 0.0884711
298.15 0.3666667 0.0801568 0.0884711
298.15 0.5000000 0.0801568 0.0884711
350.00 0.1000000 0.0959260 0.1042403
350.00 0.2333333 0.0959260 0.1042403
350.00 0.3666667 0.0959260 0.1042403
350.00 0.5000000 0.0959260 0.1042403
You might have to scroll up the windows to see the output since freeh prints out a detailed explanation of the
used formulas and some hints.
57
TURBOMOLE Tutorial 9. Vibrational normal modes
● Starting from the coordinates in the structure library (a !pentahelicene), set up the input for an RI-
DFT/SV(P) run (and please switch on symmetry by calling desy).
ex
submenu of the “GENERAL MENU” . Here you can see the properties and methods escf and egrad are
capable of. If you have switched dft on, then e.g. rpas will do a singlet excitation at TDDFT level,
otherwise it would be a TDHF (RPA) calculation.
rpas
and enter
a 3
and
b 3
to calculate 3 states of each A and B symmetry (if there is only symmetry A, you have probably forgotten poor
desy). You can leave the other options unchanged. For larger calculations you may consider to increase
rpacor which determines the number of vectors to be treated simultaneously (saves much time!).
Note:
1. The irrep given in $soes is the one for the excited state vector, i.e. the direct product of the irreps of the
ground state and the excited state.
2. Add $spectrum <unit> and/or $cdspectrum <unit> to the control file, and you will get the files
spectrum and cdspectrum with a table containing the excitation energies (in the given unit) and the
oscillator and/or rotatory strengths. Possible units are eV, nm, au, or 1/cm.
3. Do not forget that you have to apply the selection rules yourself. The calculated oscillator strengths for the
triplet excitations from a singlet ground state are of equal size than the ones for the singlet excitations. Keep in
mind which excitations are suppressed because of the selection rules (spin).
After a calculation, the converged excitation vectors are saved in files (sing_*, trip_*). A following run with a
larger number of excitations will read in and use the already converged eigenvectors.
58
TURBOMOLE Tutorial 10. Excited states
– Let the symmetry at C1, since we do not know right now how the excited state will look like,
– For gradient calculations, only one irrep is allowed – here it is much easier to edit the control file directly,
rather than using define. Look at $soes if only one irrep is given as option.
– If no additional option is given, the highest number of the entry in $soes will be taken to compute the excited
state gradient and structure.
Sometimes, when two excitations are lying close in energy, the algorithm is more stable if you include some
higher excitation vectors in addition. In that case, if the highest number in $soes is not the one you want to
use, add the keyword
$exopt <N>
with <N> as the number of the excited state you have in mind.
– The module egrad does the energy and the gradient calculation. For single point runs, just start egrad
instead of escf and look at the output.
and load the file [Link] in a viewer that is able to plot multiple xyz structures (molden, jmol, ...).
59
TURBOMOLE Tutorial 10. Excited states
Since the module egrad of TURBOMOLE calculates the gradients of the excited states analytically, second derivatives can
be done numerically by using the script NumForce (see chapter 9.3).
We will now calculate the vibrational spectrum of the first excited (singlet) state of CH 2O at TDDFT level.
1. Use the directory of the last chapter with the converged excited state structure of CH2O.
2. Since we have already specified which excited state we want to use for the gradient/structure calculation, we
do not have to change the input file.
3. Just start NumForce with the option -ex <number of state> in addition to the usual options:
Note that you have to tell NumForce here which excited state in C1 you want to follow. NumForce has to
distort the geometry to do the numerical second derivatives for each of its steps. Hence, the symmetry for the
calculation will automatically be lowered to C1. The $soes keyword contains an irrep different than a, so
we have to choose the right excitation in C1 ourselves (by looking at the output of jobex, counting all
excitations).
● DFT grid? Set gridsize to 4 and redo the calculation from scratch (!).
● Basis set too small? Redo the calculation with def-TZVP.
● Convergence criteria? Call jobex with -energy 6 -gcart 4 in addition and start again from scratch (default is -
energy 6 -gcart 3).
1. Start to make a usual input with define using the coordinates of HCP from the structure library (a !hcp).
Choose cc2 in the General Menu and there:
ricc2
cc2
*
cbas
*
exci
list irrep
list irrep gives you the syntax of the irrep command in this submenu (unlike most other submenus,
you have to specifiy a line just the way you would add the keyword to the control file).
It also prints out the irreps of the chosen point group and possible multiplicities.
irrep=a1 nexc=1
irrep=a2 nexc=3
*
*
*
60
TURBOMOLE Tutorial 10. Excited states
2. After that, you can run the ricc2 module. Note that this module currently knows Abelian point groups only if
used for excited state calculations, therefore the symmetry group given in the control file is C2v. Look
carefully at the output (D1-diagnostic, %T1 of the excitations).
Note that CC2 excitation energies are optimized in three steps.
$ricc2
ccs
cis(d)
cc2
$excitations
irrep=a2 nexc=1
Remove the [Link], [Link], syminfo files and all CC* files before rerunning ricc2 if you have changed
the input - the program would try a CC2 restart and thus skip methods, fails to converge, stops with error messages or
produces nonsense results!
4. You certainly are also interested in properties of the excited states. Try e.g.
$ricc2
cc2
$excitations
irrep=a2 nexc=1
expval operators=diplen,qudlen
$response
expval operators=diplen,qudlen
The $response keyword switches on the calculation of ground state properties. Inspect the output file
carefully.
If you want to calculate optical spectra, the oscillator and rotator strength have to be requested. An input looks like this:
$ricc2
cc2
$excitations
irrep=a nexc=2
spectrum operators=diplen,dipvel,angmom
$spectrum ev
$cdspectrum ev
When given the $spectrum and the $cdspectrum flags the output is parsed in individual files, which can directly
be loaded in plot programs, like e.g. gnuplot.
61
TURBOMOLE Tutorial 10. Excited states
NumForce (see chapter 9.3) can also be used to calculate the vibrational frequencies of excited states. We will try that
for Ammonia and RI-CC2:
1. Prepare the input and load the coordinates from the structure library ( a !ammonia).
2. Do not apply symmetry, so this time try to avoid entering desy and keep C1 symmetry.
3. Accept the default def-SV(P) basis (yes, it is much too small, so please do not publish the results).
6. Since we have chosen the gradients and the energy of the excited states, jobex will do a geometry
optimization of the first excited state. If you delete the keyword $excitations, you will get the ground
state.
7. Run
NumForce -level cc2 > [Link]
Note: do not call NumForce with the -ex option! This does only work for TDDFT excited state calculations, whereas
the CC2 part always is completely controlled by the keywords $ricc2 and $excitations.
62
TURBOMOLE Tutorial 11. COSMO: dealing with solvation effects
Briefly: COSMO is a continuum solvation model, almost identical to the CPCM called method in many other quantum
chemistry programs. COSMO builds a metal cavity around the molecule, corresponding to an electrostatically ideal
solvent of e=∞.
The cavity construction starts with a union of spheres of radii Ri + RSOLV for all atoms i. So the most important input
parameter for COSMO is the radius for each element that should be taken for the cavity construction.
cosmoprep
Here we just do a geometry optimization with DFT (Hartree-Fock can be used the same way). To learn how to do
vibrational frequency calculations or how to use COSMO with MP2, please see chapter 12.2.6 of the TURBOMOLE
documentation.
1. Start with define, load benzene from the structure library with
a !benzene
2. Let the symmetry at C1 and define internal redundant coordinates (ired and *).
4. Do a eht and accept the occupation for charge=0 (eht and many times <Enter>).
5. Switch on dft an ri
cosmoprep
****************************************************
*** radius definition menu ***
****************************************************
8. Here you have to tell cosmoprep which radius for each element you want to use. Unless you have your own
radii, there are two possibilities:
63
TURBOMOLE Tutorial 11. COSMO: dealing with solvation effects
1. optimized radius – for a limited set of elements, optimized radii have been determined by fitting the
results of many calculations to experiments,
A good approach is to use optimized radii for all elements available, and the bondii for the rest.
Enter
r all o
9. For elements where optimized radii are missing, e.g. Si in SiMe 3, you would get something like:
so for one of your 25 atoms the optimized radius is missing and you have to assign bondii radii.
Scroll up your windows and search for one or more lines like:
r "si" b
and check if the number of atoms is now equal to the number of radii.
10. Exit the radius assignment with * and enter a name of the cosmo file in the next section – or use the default by
hitting <Enter>.
11. Now check the control file and search for cosmo. With those keywords in the control file, energy and gradient
calculations at Hartree-Fock and DFT level will include solvation effects – you do not have to specify any
additional option with jobex:
12. Check the [Link] file and look at the energy output there.
64
TURBOMOLE Tutorial 12. Calculation of NMR chemical shifts
Please refer to chapter 9 and section 12.2.18 (Keywords for Module mpshift) of the documentation for an overview
of the capabilities and the usability of mpshift.
Prepare an input for a calculation of the shieldings of tetramethylsilane, a typical reference molecule for 13C shifts:
1. Call define and load the minimum structure of TMS from the structure library by entering
a !sime4
at the geometry menu. Let desy determine the symmetry of the coordinates (Td).
2. Accept the default basis set def-SV(P). Usually a basis set of SVP quality is sufficient for DFT
calculations when non-hybrid functionals are used, as long as no transition state elements with non-d 0 or
d10 occupation are involved.
3. Do an extended Hückel guess with eht, switch on dft in the last menu and accept the defaults (B-P
functional with m3 grid).
4. Call dscf to get converged Mos.
5. Call mpshift or the script chemshift.
6. The total, the isotropic, and the anisotropic shieldings of all nuclei can be found at the keyword
$nmr dft shielding constants
in the control file if you have called mpshift, or in the file shieldings if you have called
chemshift.
1. Just repeat the last calculation, but do an ridft input and start it before running mpshift.
2. mpshift does not use the RI-J approximation itself, but it can do NMR shielding calculations starting
either from a conventional DFT run or from an RI-DFT run.
1. Prepare the input as in the DFT case, but choose the def-TZVP basis set this time and select b3-lyp as
functional (or switch off DFT for a Hartree-Fock calculation). For HF and DFT with hybrid functionals, a
TZVP basis set is recommended.
2. For a fully direct calculation just continue with point 4, but it can be faster to use some disk space. You
can either set the maximum file size of the twoint file to an arbitrary number (in MB, as usual), or let a
statistics run determine the maximum file size needed for this input: Call
stati dscf
to add the $statistics keyword to the control file and call dscf to start the statistics calculation.
3. Edit the control file and add a path to a local directory at the keyword
$scfintunit at file=twoint
If the twoint file is too big for your system, set it to a smaller number. mpshift (just like dscf) will
65
TURBOMOLE Tutorial 12. Calculation of NMR chemical shifts
use only as much space as provided by the keyword and computes the rest of the integrals directly.
1. Create a usual dscf input like the one in the section before.
2. MP2 chemical shieldings need a very well converged density, so you have to do a single-point dscf
calculation with at least $denconv .1d-6. This keyword is added by the script mp2prep when preparing
usual MP2 energy or gradient calculations, but not when preparing MP2 chemical shifts. It can not be set
within define, so you have to add it 'by hand' if you do just a mpshift calculation after a single-point HF
run.
3. Do a statistics run for dscf, add $denconv .1d-6 to the control file and run dscf.
4. mp2prep -c prepares the input for the NMR shieldings calculation at MP2 level. On many systems,
mp2prep has got problems determining the free disk space, so it is highly recommended to use the -p <MB>
option of mp2prep
mp2prep -c -p 400
5. Start mpshift. It will do the SCF and the MP2 calculation of the nuclear magnetic shieldings.
12.3. Hints
• Do not use ECPs. The electrons in the core potential will not be taken into account during the calculation, so
the results will just be nonsense.
66
TURBOMOLE Tutorial 13. Visualization of orbitals and densities
13.1. TmoleX
The easiest way to visualize surfaces of orbitals, densities and much more is to use TmoleX. Choose
the property which you like to see in the Result section of TmoleX (e.g. by reading in the control
file of a completed calculation) by clicking on the button called '3D Surfaces'.
Just call the TURBOMOLE program tm2molden after a calculation. You will be asked about the data that should be
included in the molden input file. If the basis set and the molecular orbitals are written to the input file, molden (or
molekel) will be able to plot the orbitals and the density by calculating those properties itself.
If you have an old calculation, you can add one of those keywords and call
dscf -proper
or any other of the programs mentioned above. Only the property/visualization step will be done in such a case.
To plot, say, the total density of water, just do a usual input and add
$pointval dens
Note:
67
TURBOMOLE Tutorial 13. Visualization of orbitals and densities
68
TURBOMOLE Tutorial 13. Visualization of orbitals and densities
Here is an example of two iso-density surfaces of Water, one at a value of 0.1 a.u. in blue, and one at a value of 0.03 in
red.
69
TURBOMOLE Tutorial 13. Visualization of orbitals and densities
To plot MOs, it is recommended to do a single point calculation first and then look at the orbitals and the occupation by
calling the script
eiger
You will get a list of the orbitals together with the occupation and the energy. This gives a hint about the MOs which
might be interesting to have a look at.
Let us make an input for benzene (a !benzene from the structure library), call desy for the symmetry, choose def-
SVP and RI/DFT-BP86. Run ridft and call eiger:
HOMO-LUMO Separation
HOMO: 14. 1 e1g -0.23205215 H = -6.31446 eV
LUMO: 15. 1 e2u -0.03843656 H = -1.04591 eV
Gap : +0.19361560 H = +5.26855 eV
As you can see, the HOMO is MO number 14 and the LUMO is MO number 15. So to plot the HOMO and the LUMO,
add
$pointval mo 14-15
ridft -proper
If you look at the output, you will see which file name is associated to which orbital – usually that is quite clear from
the file name anyway.
Start gOpenMol, load in the coordinates as shown above, go to the Plot/Contour menu and load the HOMO file.
Import it and specify two different contours – one with a positive value and one with a negative. Change the color of
one of them and let them plot by clicking on Apply.
Now you can load the LUMO in addition, import it and plot again two contours with different colors.
Play a bit with the values and colours. Below is a screen shot of such a plot. Red and blue is the HOMO and green and
grey is the LUMO.
70
TURBOMOLE Tutorial 13. Visualization of orbitals and densities
Look at the Turbomole documentation about how to plot differential densities of excited states, MP2 densities, spin
densities, ...
71
TURBOMOLE Tutorial 13. Visualization of orbitals and densities
To choose a simple xyz format instead of the one for gOpenMol, add
This will write out the grid and the value of the MO in a file using the format:
x y z f(x,y,z)
and, in addition, some lines at the beginning that contain the most interesting data of this plot:
Since Turbomole V6.0 it is also possible to write out the 3D grid information in the commonly used cube format, just
set fmt=cub.
72