Ni100 surface
Based on the three VASP wiki examples in the links 1, 2 and 3
Task: Perform a relaxation of the first two layers of a Ni (100) surface, thereafter calculate its DOS and bandstructure.
System-specific instructions
Select instructions for the system you are using:
Instructions for use on the NAISS cluster Tetralith (NSC)
Instructions for use on the EuroHPC cluster LEONARDO
First, copy the example folder which contains some of the VASP input files
cp -r /software/sse2/tetralith_el9/manual/vasp/training/ws2024/Ni100_surf .
cd Ni100_surf
and copy the latest POTCAR file for Ni
cp /software/sse2/tetralith_el9/manual/vasp/POTCARs/PBE/2024-03-19/Ni/POTCAR .
cp -r /leonardo_scratch/fast/EUHPC_TD02_030/vasp_ws2024/examples/Ni100_surf .
cd Ni100_surf
and copy the latest POTCAR file for Ni
cp /leonardo_scratch/fast/EUHPC_TD02_030/vasp_ws2024/potpaw_PBE.64/Ni/POTCAR .
Input files
POSCAR
fcc (100) surface
3.53
.50000 .50000 .00000
-.50000 .50000 .00000
.00000 .00000 5.00000
Ni
5
Selective Dynamics
Cartesian
.00000 .00000 .00000 F F F
.00000 .50000 .50000 F F F
.00000 .00000 1.00000 F F F
.00000 .50000 1.50000 T T T
.00000 .00000 2.00000 T T T
Ni lattice constant a = 3.53Å
1 atom per layer
5 layers in total
Note “S” or “Selective dynamics” chosen in the line under number of atoms
INCAR
ISTART = 0; ICHARG = 2
general:
SYSTEM = clean Ni(100) surface
ENCUT = 270
ISMEAR = 2 ; SIGMA = 0.2
ALGO = Fast
EDIFF = 1E-6
spin:
ISPIN=2
MAGMOM = 5*1
dynamic:
NSW = 100
POTIM = 0.8
IBRION = 1
ISTART=0, static calculation (default)
ICHARG=2, initial charge-density from overlapping atoms (default if ISTART=0)
ENCUT=270, default energy cutoff 270 eV
ISMEAR=2, Methfessel-Paxton smearing used for metal
SIGMA=0.2, default smearing
ALGO=Fast, (default is Normal) first steps according to Davidson, thereafter RMM-DIIS, algorithms for electron minimization
EDIFF=1E-6,
ISPIN=2, gives a spin-polarized calculation
MAGMOM=5*1, for the 5 atoms in POSCAR an initial magnetic moment of 1 Bohr magnetons
NSW=100,
POTIM=0.8,
IBRION=1, ionic relaxation (RMM-DIIS)
KPOINTS
k-points
0
Monkhorst-Pack
9 9 1
0 0 0
Equally spaced k-mesh
Odd Monkhorst-Pack k-mesh > Gamma centered
Note, only one k-point in the z-direction for the surface
1. Surface relaxation
First, note how selective dynamics (S) works in the POSCAR file
Selective Dynamics
Cartesian
.00000 .00000 .00000 F F F
.00000 .50000 .50000 F F F
.00000 .00000 1.00000 F F F
.00000 .50000 1.50000 T T T
.00000 .00000 2.00000 T T T
So, for relaxation F=False
and T=True
, so one sees that the two atoms at z=1.5 and 2.0 are able to move in all directions, while the three lower atoms (layers) are fixed.
For surface relaxations it’s typical to fix the bulk-like atoms in the bottom and let the ones close to the surface be able to relax
Alternatively, a symmetric supercell can be constructed with inner bulk-like layers
Submit the calculation to the queue
sbatch run.sh
and observe the relaxation e.g. with
cat OSZICAR
After the calculation is finished, compare the forces in OUTCAR between the first and the last step (e.g. using less
).
First step:
POSITION TOTAL-FORCE (eV/Angst)
-----------------------------------------------------------------------------------
0.00000 0.00000 0.00000 0.000000 0.000000 0.419201
0.00000 1.76500 1.76500 0.000000 0.000000 -0.401608
0.00000 0.00000 3.53000 0.000000 0.000000 -0.002589
0.00000 1.76500 5.29500 0.000000 0.000000 0.392849
0.00000 0.00000 7.06000 -0.000000 -0.000000 -0.407852
-----------------------------------------------------------------------------------
total drift: -0.000000 -0.000000 -0.008050
Last step:
POSITION TOTAL-FORCE (eV/Angst)
-----------------------------------------------------------------------------------
0.00000 0.00000 0.00000 -0.000000 0.000000 0.425910
0.00000 1.76500 1.76500 0.000000 -0.000000 -0.402950
0.00000 0.00000 3.53000 -0.000000 0.000000 -0.023012
0.00000 1.76500 5.29871 -0.000000 0.000000 -0.001056
-0.00000 -0.00000 6.98070 -0.000000 -0.000000 0.001107
-----------------------------------------------------------------------------------
total drift: 0.000000 -0.000000 -0.019988
Check the obtained relaxed structure in CONTCAR
:
fcc (100) surface
3.53000000000000
0.5000000000000000 0.5000000000000000 0.0000000000000000
-0.5000000000000000 0.5000000000000000 0.0000000000000000
0.0000000000000000 0.0000000000000000 5.0000000000000000
Ni
5
Selective dynamics
Direct
0.0000000000000000 0.0000000000000000 0.0000000000000000 F F F
0.5000000000000000 0.5000000000000000 0.1000000000000014 F F F
0.0000000000000000 0.0000000000000000 0.2000000000000028 F F F
0.5000000000000000 0.5000000000000000 0.3002099841022341 T T T
-0.0000000000000000 0.0000000000000000 0.3955072458335201 T T T
Check the convergence using p4vasp or py4vasp
Compare surface energies following the example in the VASP wiki
What is the inward relaxation of the surface layers (compare VASP wiki)
Visualize the relaxation of the structure using p4vasp or py4vasp (follow VASP wiki figures)
2. Surface DOS
Now, in a new folder “dos”, calculate the local DOS for the relaxed Ni(100) surface using CONTCAR from the previous step
mkdir dos
cp CONTCAR dos/POSCAR
cp INCAR.dos dos/INCAR
cp POTCAR KPOINTS run.sh dos
cd dos
Also note that we use a new INCAR (from INCAR.dos) which looks like
general:
SYSTEM = clean (100) Ni surface
ENMAX = 270
ISMEAR = -5
ALGO = Normal
spin:
ISPIN = 2
MAGMOM = 5*1
LORBIT = 11 # lm and site decomposed DOS inside PAW spheres
ISMEAR=-5, the tetrahedron method with Blöchl corrections, suitable for DOS
ALGO=Normal, the default electron minimization algorithm
LORBIT=11, lm and site decomposed DOS
Run the calculation with
sbatch run.sh
After it finishes, at the end of OUTCAR, check the information on local charge and magnetization
total charge
# of ion s p d tot
------------------------------------------
1 0.464 0.328 8.294 9.086
2 0.488 0.483 8.309 9.280
3 0.491 0.485 8.317 9.294
4 0.498 0.505 8.334 9.338
5 0.477 0.350 8.332 9.158
--------------------------------------------------
tot 2.418 2.151 41.586 46.156
magnetization (x)
# of ion s p d tot
------------------------------------------
1 -0.003 -0.021 0.751 0.727
2 -0.008 -0.026 0.645 0.611
3 -0.008 -0.026 0.636 0.602
4 -0.008 -0.026 0.630 0.596
5 -0.004 -0.021 0.725 0.700
--------------------------------------------------
tot -0.032 -0.120 3.388 3.236
By setting LORBIT=1 and changing RWIGS, it’s possible to control the total number of electrons within the sphere
What can be said about the magnetic moments for the different layers?
Test to plot DOS using p4vasp/py4vasp, see figures at the end of the VASP wiki example
3. Surface bandstructure
Now, calculate the corresponding bandstructure for the relaxed Ni(100) surface structure. Go to the main folder “Ni100_surf” and there create the folder “band” and copy the needed files
mkdir band
cp CONTCAR band/POSCAR
cp INCAR.band band/INCAR
cp KPOINTS.band band/KPOINTS
cp POTCAR run.sh band
cd band
Also note that we use a new INCAR (from INCAR.band) which looks like
ICHARG = 11
general:
SYSTEM = clean (100) nickel surface
ENMAX = 270
ISMEAR = 2 ; SIGMA = 0.2
ALGO = Normal
spin:
ISPIN = 2
MAGMOM = 5*1
LORBIT = 11
ICHARG=11, for a non-self consistent run using previously obtained CHGCAR
Copy CHGCAR
cp ../dos/CHGCAR .
This time KPOINTS for the bandstructure looks like
kpoints for band-structure G-X-M-G
13
reziprok
.00000 .00000 .00000 1
.12500 .00000 .00000 1
.25000 .00000 .00000 1
.37500 .00000 .00000 1
.50000 .00000 .00000 1
.50000 .12500 .00000 1
.50000 .25000 .00000 1
.50000 .37500 .00000 1
.50000 .50000 .00000 1
.37500 .37500 .00000 1
.25000 .25000 .00000 1
.12500 .12500 .00000 1
.00000 .00000 .00000 1
13 k-points along the line Gamma - X - M - Gamma
Reciprocal coordinates
Each point has weight 1
Submit the job
sbatch run.sh
and wait for it to finish.
Investigate the bandstructure, compare with the VASP wiki example.