Setup and QC Software#

This section will give a short introduction and an overview of the general Linux setup, as well as Quantum Chemistry programs that will be used in this practical course.

Creating your working environment#

Program Packages#

The following programs are going to be used:

program

executable

PSI4

psi4

TURBOMOLE 7.6

ridft, ricc2

COSMOtherm

cosmosolv_prak (script that calls COSMOtherm)

CRYSTAL14

crystal_interface

VASP5.4

used via crystal interface

DFTB3

used via crystal interface

xTB (WP12 version)

xtb_prak

gCP

gcp

DFTD3

dftd3

For the usage of these programs, you can take a look at the respective manuals or (in most cases) use the -h option.

Hint

You can also find some additional information about TURBOMOLE in our QC II script.

General Setup#

The file .bashrc is a configuration file loaded every time a terminal is opened. The .bashrc is designed to generally set the PATH variable or add scripts that can facilitate working in the terminal. You can find further information in the Ubuntu wiki.

To be able to use a program, the system needs to know where to find it. You can achieve this by modifying the PATH environment variable via the .bashrc in your /home/$USER/ directory. The .bashrc covers the main setup of the PSI4, VASP, CRYSTAL, and COSMO-RS software as well as the configuration of thread usage and memory limits so these programs run with a fixed number of CPU threads and enough stack space to avoid crashes. Additonally, for the usage of PSI4, the respective conda environment has to be activated. The .bashrc should look like the following and can also be found in the config directory in the WP12 GitHub Repository (if it does not exist, create it):

 1#PSI4
 2. /software/psi4conda/etc/profile.d/conda.sh
 3conda activate
 4PSIS=/tmp1/$USER/.psi4_tmp
 5if [ ! -e $PSIS ]; then
 6   mkdir $PSIS
 7fi
 8export PSI_SCRATCH=$PSIS
 9
10# make modules available
11. ${BASH_ENV} > /dev/null
12
13# VASP5.4
14export PATH=/home/abt-grimme/AK-bin/vasp/bin:$PATH
15
16# CRYSTAL14
17export PATH=/home/abt-grimme/crystal/14:$PATH
18
19# COSMORS
20export PATH=/opt/COSMOlogic/COSMOthermX19/COSMOtherm/BIN-LINUX/:$PATH
21
22# Set thread counts and use a larger stack
23export OMP_NUM_THREADS=4
24export MKL_NUM_THREADS=4
25ulimit -s unlimited
26export OMP_STACKSIZE=1000m

Important

Changes only apply to shells opened after changing your .bashrc.

If you want to apply the changes to your current shell, you need to run:

source ~/.bashrc

COSMOtherm#

The cosmosolv script needs the .cosmothermrc file in which parameters for the solvents are specified. The .cosmothermrc you will need is as follows:

 1ctd = BP_TZVP_19.ctd cdir = "/opt/COSMOlogic/COSMOthermX19/COSMOtherm/CTDATA-FILES" ldir = "/opt/COSMOlogic/COSMOthermX19/COSMOtherm/CTDATA-FILES"
 2EFILE VPFILE
 3f = toluene.cosmo fdir=/opt/COSMOlogic/COSMOthermX19/COSMOtherm/DATABASE-COSMO/BP-TZVP-COSMO autoc
 4f = out.ccf
 5henry xh={ 1.0 0.0 } tc=-50.0 Gsolv
 6henry xh={ 1.0 0.0 } tc=-10.0 Gsolv
 7henry xh={ 1.0 0.0 } tc=0.0 Gsolv
 8henry xh={ 1.0 0.0 } tc=10.0 Gsolv
 9henry xh={ 1.0 0.0 } tc=20.0 Gsolv
10henry xh={ 1.0 0.0 } tc=25.0 Gsolv
11henry xh={ 1.0 0.0 } tc=30.0 Gsolv
12henry xh={ 1.0 0.0 } tc=40.0 Gsolv
13henry xh={ 1.0 0.0 } tc=50.0 Gsolv
14henry xh={ 1.0 0.0 } tc=60.0 Gsolv

Create this file in your /home/$USER/ directory.

Hint

This is a general input file for the COSMOtherm program. The cosmosolv copies this file as an input for your calculation. If you are interested, you can find further information about COSMOtherm input files in the COSMOtherm manual.

GFN-xTB, gCP, TURBOMOLE, and DFTD3#

GFN-xTB, gCP, TURBOMOLE, and DFTD3 can be made available via the following commands.

module load xtb/prak
module load gcp
module load turbomole
module load dftd3

Please make sure to have these lines added to your .bashrc :

export OMP_NUM_THREADS=4
export MKL_NUM_THREADS=4
ulimit -s unlimited
export OMP_STACKSIZE=1000m

As mentioned above, these lines make the programs use a set number of CPU threads and give them plenty of memory so they run smoothly without running out of stack space.

Specific usage instructions#

GFN-xTB#

GFN-xTB can be called by:

xtb_prak <coord_input> [options]

where <coord_input> is a valid file of TM or Xmol format.

In exercise 2.3 you need to first optimize a structure and then calculate the second derivatives to get the vibrational contributions in the rigid-rotor-harmonic-oscillator model.

You can do that, by using the following options:
--opt : structure optimization at the GFN2-xTB level,
--hess : compute Hessian at the GFN2-xTB level (second derivatives) or
--ohess : do both with one command.

Please note that after the optimization the input structure, e.g., the coord file is not overwritten and will be on the file xtbopt.coord. You will have to use this file for the calculation of the Hessian. If you encounter significant imaginary frequencies, try to optimize the created xtbhess file e.g. xtbhess.coord and use the optimized structure for another Hessian calculation.

Calculating the k-Grid#

To set the k points the SHRINK block has to be modified in the input file. The k points are calculated differently depending on whether CRYSTAL or VASP is used.

\[\begin{split}VASP: \ \ \ \kappa_{ij} = \frac{2i-s_j-1}{2s_j} \\\\ CRYSTAL: \ \ \ \kappa_{ij} = \frac{2i-s_j}{2s_j}\end{split}\]

where sj are the shrinking factors in reciprocal space. Further information is given in the lecture (solid state part).

You can calculate the shrinking parameter based on the k-point density ρk [Bohr-1] and the unit cell vectors a ⃗1 , a ⃗2 and a ⃗3 (e.g. taken from the fort.34 file):

\[s_i \approx \frac{1}{|\vec{a}_i|*\rho_\kappa}\]

where si are the corresponding dimensionless SHRINK parameter, rounded to the next non-zero integer. Note that the a ⃗i in fort.34 are in Ångström. When converting a .cif file with cif2crystal you will receive the k-mesh density and the SHRINK parameters corrsponding to the structure automatically.

Please note that for cif2crystal to work as intended, it expects a working python interpreter which we provide for you in a suitable conda environment that you can activate as follows.

module load conda
conda activate py27

You should now see a (py27) appear in the lower left corner as part of your shell prompt.