VASP & phonopy calculation#

Pre-process#

The input structure of POSCAR (this) is used as an example here. Most files are found at SiO2-HP example.

In the pre-process, supercell structures with (or without) displacements are created from a unit cell fully considering crystal symmetry.

To obtain supercells (\(2\times 2\times 3\)) with displacements, run phonopy:

phonopy -d --dim="2 2 3"

You should find the files, SPOSCAR, phonopy_disp.yaml, and POSCAR-{number} as follows:

% ls
phonopy_disp.yaml  POSCAR  POSCAR-001  POSCAR-002  POSCAR-003  SPOSCAR

SPOSCAR is the perfect supercell structure, phonopy_disp.yaml contains the information on displacements, and POSCAR-{number} are the supercells with atomic displacements. POSCAR-{number} corresponds to the different atomic displacements written in phonopy_disp.yaml.

Calculation of sets of forces#

Force constants are calculated using the structure files POSCAR-{number} (from forces on atoms) or using the SPOSCAR file. In the case of VASP, the calculations for the finite displacement method can be proceeded just using the POSCAR-{number} files as POSCAR of VASP calculations. An example of the INCAR is as follows:

  PREC = Accurate
IBRION = -1
 ENCUT = 500
 EDIFF = 1.0e-08
ISMEAR = 0; SIGMA = 0.01
 IALGO = 38
 LREAL = .FALSE.
 LWAVE = .FALSE.
LCHARG = .FALSE.

Be careful not to relax the structures. Then create FORCE_SETS file using VASP interface:

% phonopy -f disp-001/vasprun.xml disp-002/vasprun.xml disp-003/vasprun.xml

or

% phonopy -f disp-{001..003}/vasprun.xml

If you want to calculate force constants by VASP-DFPT directory, see VASP-DFPT & phonopy calculation.

Post-process#

In the post-process,

  1. Force constants are calculated from the sets of forces

  2. A part of dynamical matrix is built from the force constants

  3. Phonon frequencies and eigenvectors are calculated from the dynamical matrices with the specified q-points.

For mesh sampling calculation, prepare the following setting file named, e.g., mesh.conf:

ATOM_NAME = Si O
DIM = 2 2 3
MP = 8 8 8

The density of states (DOS) is plotted by:

% phonopy -p mesh.conf

Thermal properties are calculated with the sampling mesh by:

% phonopy -t mesh.conf

You should check the convergence with respect to the mesh numbers. Thermal properties can be plotted by:

% phonopy -t -p mesh.conf

Projected DOS is calculated by the following setting file named, e.g., pdos.conf:

ATOM_NAME = Si O
DIM = 2 2 3
MP = 8 8 8
PDOS = 1 2, 3 4 5 6

and plotted by:

% phonopy -p pdos.conf

Band structure is calculated with the following setting file named, e.g., band.conf by:

ATOM_NAME = Si O
DIM =  2 2 3
BAND = 0.5 0.5 0.5  0.0 0.0 0.0  0.5 0.5 0.0  0.0 0.5 0.0

The band structure is plotted by:

% phonopy -p band.conf

In either case, by setting the -s option, the plot is going to be saved in the PDF format. If you don’t need to plot DOS, the (partial) DOS is just calculated using the --dos option.

Non-analytical term correction (Optional)#

To activate non-analytical term correction, BORN (optional) is required. This file contains the information of Born effective charge and dielectric constant. These physical values are also obtained from the first-principles calculations, e.g., by using VASP, pwscf, etc. In the case of VASP, an example of INCAR will be as shown below:

    PREC = Accurate
  IBRION = -1
  NELMIN = 5
   ENCUT = 500
   EDIFF = 1.000000e-08
  ISMEAR = 0
   SIGMA = 1.000000e-02
   IALGO = 38
   LREAL = .FALSE.
   LWAVE = .FALSE.
  LCHARG = .FALSE.
LEPSILON = .TRUE.

In addition, it is recommended to increase the number of k-points to be sampled. Twice the number for each axis may be a choice. After running this VASP calculation, BORN file has to be created following the BORN format (BORN (optional)). However for VASP, an auxiliary tool is prepared, which is phonopy-vasp-born. There is an option --pa for this command to set a transformation matrix from supercell or unit cell with centring to the primitive cell. Since this rutile-type SiO2 has the primitive lattice, it is unnecessary to set this option. Running phonopy-vasp-born in the directory containing vasprun.xml (or OUTCAR) of this VASP calculation:

% phonopy-vasp-born
# epsilon and Z* of atoms 1 3
   3.2605670   0.0000000   0.0000000   0.0000000   3.2605670   0.0000000   0.0000000   0.0000000   3.4421330
   3.7558600   0.3020100   0.0000000   0.3020100   3.7558600   0.0000000   0.0000000   0.0000000   3.9965200
  -1.8783900  -0.5270900   0.0000000  -0.5270900  -1.8783900   0.0000000   0.0000100   0.0000100  -1.9987900

To employ symmetry constraints, --st option may used as follows:

% phonopy-vasp-born --st
# epsilon and Z* of atoms 1 3
   3.2605670   0.0000000   0.0000000   0.0000000   3.2605670   0.0000000   0.0000000   0.0000000   3.4421330
   3.7561900   0.3020100   0.0000000   0.3020100   3.7561900   0.0000000   0.0000000   0.0000000   3.9968733
  -1.8780950  -0.5270900   0.0000000  -0.5270900  -1.8780950   0.0000000   0.0000000   0.0000000  -1.9984367

The values are slightly modified by symmetry, but we can see the original values obtained directly from VASP was already very good.

To put BORN file in the current directly, and running phonopy with --nac option, non-analytical term correction is activated, such as:

% phonopy -p --nac band.conf

Please watch the example of NaCl with and without --nac option shown in Examples.