Table of Contents

Which basis sets and/or pseudopotentials should I use?

When in doubt, always use the DZVP-MOLOPT-GTH basis set and the GTH-PBE pseudopotential.

In some cases (for example for tin) there is only a short-range basis set available, called DZVP-MOLOPT-SR-GTH.

You can find all available MOLOPT basis sets in BASIS_MOLOPT, which is located in the folder $CP2K_DATA_DIR (after loading the CP2K module).

How do I run CP2K in parallel?

The command cp2k.sopt is the single-process variant of CP2K.

To run CP2K in parallel, you have to use a different executable named cp2k.popt and prefix that with mpirun -n 8 to run it on 8 CPUs in parallel. So, a complete command line to run CP2K on 8 CPUs would then be:

$ mpirun -n 8 cp2k.popt -i yourinput.inp -o youroutput.out

How do I obtain a charge density difference?

In Exercise 2 a series of *.cube files was already produced for MOs. To obtain the electronic charge density in a *.cube, file the following snippet of input file can be used (see also the reference manual):

&FORCE_EVAL
  &DFT
    &PRINT
      &E_DENSITY_CUBE
      &END E_DENSITY_CUBE
      ...
    &END PRINT
    ... ...
  &END DFT
&END FORCE_EVAL

The cubecruncher tool can be used to obtain charge density differences. A precompiled executable is available on the server tcopt3, its path being /users/scaravat/bin/cubecruncher.x.

The basic usage to obtain a charge density difference is:

$ /users/scaravat/bin/cubecruncher.x -i input.cube -o output.cube -subtract subsystem.cube

How do I build a slab model for a surface?

E.g. by using VESTA. A tutorial is available here.

Vesta comes preinstalled on tcopt3, provided that you load the proper module.

$ module load vesta

How do I obtain the stress tensor?

You have to add the following snippet to the input file:

&FORCE_EVAL
  ...
  STRESS_TENSOR ANALYTICAL
  &PRINT
    &STRESS_TENSOR
    &END STRESS_TENSOR
  &END PRINT
  ...
&END FORCE_EVAL
Your calculation should be set up in such a way that forces are being calculated: e.g. RUN_TYPE set to GEO_OPT or ENERGY_FORCE; instead RUN_TYPE ENERGY won't work!

My calculation does not converge

... and I use MULTIPLE_UNIT_CELL