23vaspAS

Setup & Introduction Tutorials Tags / Variables Structures > crystals > surfaces > molecules Functions > electronic structure > ionic structure > formation energies > convergence tests > other functions 24vaspAS Database

...

Formation Energies


Vacancy Formation Energy:

Calculate the vacancy formation energy:

vacancyformationenergy $structure $modification_1 $modification_2 ...

$structure refers to the base structure (preferably a supercell) while $modification_n refers to additional moddifications to be added to the base structure (in this case addvacancy ... (see crystals)).

This function uses the function "relaxation" to relax the crystal with its vacancies.

Then, depending on how the variable $RECALCBULK (- Default = true) is set, it will procede by either:

Lastly, the results are used to calculate the vacancy formation energy.

Keep in mind that the following tags will be used in addition to the ones found in Tags / Variables:


Surface Energy:

Calculate the surface energy:

surfaceenergy $structure

$structure refers to the structure (surface).

Depending on how the variable $RECALCSURFACE (- Default = true) is set, this function will either:

Then, depending on how the variable $RECALCBULK (- Default = true) is set, it will procede by either:

Lastly, the results are used to calculate the surface energy.

We recomend using RECALCBULK=false. To calculate the reference bulk energy we recomend to run relaxation $structure while setting VACUUM_SIZE_$structure = 0 and NUMBER_OF_LAYERS_$structure = number of atoms per building cell. Then copy the value of the resulting bulk energy into the correct variable: ENERGY_$bulkstructure=$ENERGY_$structure. This procedure implements the optimal KPOINTS setting to calculate the surface energy (see KPOINTS_$structure). Another pro-tip: also set the volume per atom for the surface through a relaxation or EOS-fit on the same surface structure with VACUUM_SIZE_$structure = 0 and NUMBER_OF_LAYERS_$structure = number of atoms per building cell. These functions treat such surface cells as regular bulk crystals (see surfaces).

If RECALCSURF=true, the function "relaxation" is used to relax the surface (not the bulk structure!). So keep in mind that the following tags will be used in addition to the ones found in Tags / Variables: (So for instance, don't forget to set ISIF=2)

It is recomended to set RECALCBULK=false whenever doing kpoints- or number-of-layers- convergence tests where the surface energy is used as the convergence parameter. The automatically chosen number of kpoints in z-direction for the bulk calculations can be rather discontinuous when the number of layers is large enough.

Be sure to only use RECALCSURF=false when you know that the values stored in the variables $NUMBER_OF_LAYERS_$structure, $VACUUM_SIZE_$structure, etc. are same ones as when you calculated the energy of the surface previously.


Adsorption Energy:

Calculate the adsorption energy:

adsorptionenergy $structure $modification_1 $modification_2 ...

$structure refers to the base structure (preferably a surface supercell) while $modification_n refers to additional moddifications to be added to the base structure (in this case addvacancy ... (see surfaces)).

It will first calculate the energy of the clean surface. Then it will procede by relaxing the surface + adsorbates. This is done in two steps: first with selective dynamics set to F for all surface atoms (but not for molecule atoms) so that the distance between the surface and the molecules is set to a reasonable initial value. At this point EDIFFG and NELM are also set to -0.05 and 40 respectively. Then it will procede with your specified $SELECTIVE_DYNAMICS_DEPTH_$structure, EDIFFG and NELM to get the final energy. With these results the adsorption energy will be calculated in the last step.

Before running this function you must have calculated the energy of the molecules you are adding. So just do a quick relaxation of the molecules beforehand. A relaxation of the surface with $SUPERCELL_FACTOR_$structure = 1 before running this function is also strongly recomended as this will set LAYER_HIGHTS_$structure to a reasonable initial value.

This function uses the function "relaxation" to relax the surface with its adsorbates. So keep in mind that the following tags will be used in addition to the ones found in Tags / Variables: (So for instance, don't forget to set ISIF=2)


...