VASP-DFPT & phonopy calculation#
How to run#
VASP can calculate force constants in real space using DFPT. The procedure to calculate phonon properties may be as follows:
Prepare unit cell structure named, e.g.,
POSCAR-unitcell
. The following structure is a conventional unit cell of NaCl.Na Cl 1.00000000000000 5.6903014761756712 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.6903014761756712 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.6903014761756712 4 4 Direct 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.5000000000000000 0.5000000000000000 0.5000000000000000 0.0000000000000000 0.5000000000000000 0.5000000000000000 0.5000000000000000 0.0000000000000000 0.5000000000000000 0.5000000000000000 0.5000000000000000 0.5000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.5000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.5000000000000000
Prepare a perfect supercell structure from
POSCAR-unitcell
,% phonopy -d --dim 2 2 2 -c POSCAR-unitcell
For later convenience, it is recommended to generate
phonopy_disp.yaml
usingSPOSCAR
file,% phonopy -d --dim 1 1 1 --pa auto -c SPOSCAR
Rename
SPOSCAR
created in (3) toPOSCAR
to be used in the VASP calculation.% mv SPOSCAR POSCAR
POSCAR-{number}
files will never be used.Calculate force constants of the perfect supercell by running VASP with
IBRION = 8
. An example ofINCAR
for insulator may be such like (just an example!)PREC = Accurate ENCUT = 500 IBRION = 8 EDIFF = 1.0e-08 IALGO = 38 ISMEAR = 0; SIGMA = 0.1 LREAL = .FALSE. ADDGRID = .TRUE. LWAVE = .FALSE. LCHARG = .FALSE.
After finishing the VASP calculation, confirm
vasprun.xml
containshessian
elements, and then createFORCE_CONSTANTS
by% phonopy --fc vasprun.xml
Run phonopy
% phonopy-load --readfc --band "0.0 0.0 0.0 0.5 0.0 0.0 0.5 0.5 0.0 0.0 0.0 0.0 0.5 0.5 0.5" -p _ _ __ | |__ ___ _ __ ___ _ __ _ _ | '_ \| '_ \ / _ \| '_ \ / _ \ | '_ \| | | | | |_) | | | | (_) | | | | (_) || |_) | |_| | | .__/|_| |_|\___/|_| |_|\___(_) .__/ \__, | |_| |_| |___/ 2.26.6 Compiled with OpenMP support (max 10 threads). Running in phonopy.load mode. Python version 3.12.4 Spglib version 2.4.0 Crystal structure was read from "phonopy_disp.yaml". Unit of length: angstrom Band structure mode Settings: Supercell: [1 1 1] Primitive matrix: [0. 0.25 0.25] [0.25 0. 0.25] [0.25 0.25 0. ] Spacegroup: Fm-3m (225) Number of symmetry operations in supercell: 1536 Use -v option to watch primitive cell, unit cell, and supercell structures. Force constants are read from "FORCE_CONSTANTS". Force constants format was transformed to compact format. Array shape of force constants: (2, 64, 3, 3) Max drift after symmetrization by translation: -0.000000 (zz) -0.000000 (zz) Reciprocal space paths in reduced coordinates: [ 0.000 0.000 0.000] --> [ 0.500 0.000 0.000] [ 0.500 0.000 0.000] --> [ 0.500 0.500 0.000] [ 0.500 0.500 0.000] --> [ 0.000 0.000 0.000] [ 0.000 0.000 0.000] --> [ 0.500 0.500 0.500] Summary of calculation was written in "phonopy.yaml". _ ___ _ __ __| | / _ \ '_ \ / _` | | __/ | | | (_| | \___|_| |_|\__,_|
When running with
phonopy
command,--readfc
option is necessary:% phonopy --readfc band.conf