6.8. geom with VASP

Tip

VASP is useful for clusters in periodic systems, like surface-supported, or zeolite-absorbed systems. You’d better have some experience of condensed-phase physics or solid quantum chemistry before reading this section.

To use VASP with geom, you need two files: misc/runVASP.py.

misc/runVASP.py is a script to call VASP. There are ONLY 2 things that you need to change:

runVASP.py
1vaspcmd = "vasp_std"
2pbc = [[8.1426336762816440, 0.0000000000000000, 0.0000000000000000],
3       [-4.0677955560985355, 7.0495917923679352, 0.0000000000000000],
4       [0.0000000000000000, 0.0000000000000000, 30.0000000000000000]]

You need to change vaspcmd to the correct VASP calling command on your computer, and pbc to the cell sizes of your system.

As usual, you should prepare INCAR, POTCAR, and KPOINTS for running VASP calculations.

6.8.1. Example: Se3 on C2N

Tip

The sample input and output files can be found in testfiles/geom/11-c2n-vasp.

Let’s see how 3 \(\text{Se}\) are distributed over the surface of \(\text{C}_2\text{N}\). The structure of \(\text{C}_2\text{N}\) is

c2n.xyz
 118
 2C2N
 3N      0.64116352      3.56117427      5.67809614
 4N      2.69450515      2.34860406      5.67308619
 5N      2.71754532      4.73169504      5.67345986
 6N      5.41920549      2.39517656      5.67702623
 7N      5.39621102      0.01223017      5.67804973
 8N     -0.67007960      1.18256295      5.67743531
 9C      1.31336867      2.33226424      5.68025714
10C      1.32380529      4.76901081      5.68336725
11C      3.42905165      3.53718653      5.67716633
12C      4.68474934      1.20655351      5.67969992
13C      6.78995796     -0.02520025      5.68329936
14C     -1.34242672      2.41165268      5.68568288
15C      4.79530371      3.61561247      5.68882985
16C      3.31831615      1.12807079      5.68711514
17C      0.69185103      1.10770299      5.68930373
18C     -0.72092338      3.63609485      5.69624406
19C      3.47041412      5.87283681      5.69021702
20C      0.57555247      5.92048738      5.69537016

This is the Cartesian coordinates of \(\text{C}_2\text{N}\). If you add cell sizes to build a POSCAR and visualize it, the structure is like below:

alternate text

The selenium atom is:

se.xyz
11
2Se
3Se 0 0 0

The input file is:

c2nse3.inp
 1lm_dir          c2nse3   # Save the local minima to this folder.
 2num_calcs       20       # Total number of calculations.
 3do_coarse_opt   yes      # no: Do NOT the coarse optimization.
 4min_energy_gap  1.E-4    # When two energies differ smaller than
 5                         # this value, they are treated as identical.
 6                         # A negative number means do not remove
 7                         # energetically degenerated ones.
 8max_geom_iters  3000     # The maximum number of iterations for local optimization.
 9                         # If it is less or equal than zero, then the number is unlimited.
10
11components
12    c2n.xyz 1
13    fix 0 0 5 0 0 0
14    ****
15    se.xyz 3
16    random 0 0 6 6 6 8
17    ****
18end
19
20commands
21python runVASP.py $inp$ $out$ $xxx$
22end

In this input file, we fix \(\text{C}_2\text{N}\) at (0, 0, 5) without rotations, and let the selenium atoms distribute randomly above the surface.

Make sure in the current directory you have prepared runVASP.py, INCAR, POTCAR, and KPOINTS.

Now you can run the global optimization:

$ geom c2nse3.inp > c2nse3.out

This is a quite long job. For me, it took 9 days. After the optimization, the end of c2nse3.out is

c2nse3.out
 -- Result Report --
Results are energy-increasingly reordered.
Structures of energies within 1.000E-04 are treated as degenerate.
All minima are saved to "c2nse3".
-------------------------------------------------------------------
     #  index               Energy            NaiveRMSD
-------------------------------------------------------------------
   0     17        -159.07404300           0.00000000
   1      2        -158.74814600           1.24247428
   2      7        -158.74802600           2.12024945
   3     16        -158.74768300           3.16425048
   4     14        -158.73993100           3.01598380
   5     15        -158.73965600           2.06890365
   6     19        -158.72750400           2.06285077
   7     13        -158.72533900           1.12698497
   8      9        -157.98449500           3.90976227

The first one, c2nse3/17.xyz, seems to have a too low energy compared with others, and c2nse3/2.xyz seems to be more reasonable. Indeed, below we can see that in c2nse3/17.xyz, a selenium atom forms bond to the surface and induces great deformation. In c2nse3/2.xyz, the tiny selenium cluster stay in the hole of the surface, which may probably be what we expect.

alternate text