VASP & phonopy calculation

Pre-process

The input stureture 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 consiering 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, disp.yaml, and POSCAR-{number} as follows:

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

SPOSCAR is the perfect supercell structure, 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 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 (direct calculation of force constants) by your favorite calculator. See the details.

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 outcar-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 outcar-born in the directory containing OUTCAR of this VASP calculation:

% outcar-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:

% outcar-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.

Some more details

The structure file names are different in different force calculators, see Interfaces to calculators. To notify this, (*) is put after the structure file name. By refering Interfaces to calculators, please read the file name according to those for the other calculators.

Following files are required in your working directory.

  • POSCAR (*), and FORCE_SETS or FORCE_CONSTANTS
  • disp.yaml is required to create FORCE_SETS.

In the case of finite difference approach, there are three steps.

  1. Create supercells and introduce atomic displacements. Each supercell contains one atomic displacement. It is done by using -d option with --dim option that specifies supercell dimension. The files of supercells with atomic displacements like as POSCAR-001, POSCAR-002, …, (*) are created in current directory by running phonopy. The files disp.yaml and SPOSCAR are also created. The file SPOSCAR is the perfect supercell that contains no atomic displacement. This file is not usually used.
  2. Calculate forces on atoms of the supercells with atomic displacements. After obtaining forces on atoms that calculated by some calculator (it’s out of phonopy), the forces are summarized in FORCE_SETS file following the format.
  3. Calculate phonon related properties.

If you already have force constants, the first and second steps can be omitted. However your force constants have to be converted to the format that phonopy can read. The VASP interface to convert force constants is prepared in phonopy.