Phonopy code is developped to calculate the phonon and thermal properties plus some other functionalities.
To install the code click on the following link:
How to install Phonopy Code to calculate Phonon and Thermal properties
We will calculate the Band structure of NaCl.
Phonopy can read only the P lattice format. Therefore you have to
convert your struct file to that with the P lattice format. This may
be done using supercell
script in the Wien2k package by making
1x1x1 supercell.
We need the struct file and one script.
NaCl.struct
NaCl
P LATTICE,NONEQUIV.ATOMS: 8
MODE OF CALC=RELA
10.753111 10.753111 10.753111 90.000000 90.000000 90.000000
ATOM -1: X=0.00000000 Y=0.00000000 Z=0.00000000
MULT= 1 ISPLIT= 8
Na NPT= 781 R0=0.00010000 RMT= 2.50000 Z: 11.0
LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000
0.0000000 1.0000000 0.0000000
0.0000000 0.0000000 1.0000000
ATOM -2: X=0.00000000 Y=0.50000000 Z=0.50000000
MULT= 1 ISPLIT= 8
Na NPT= 781 R0=0.00010000 RMT= 2.50000 Z: 11.0
LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000
0.0000000 1.0000000 0.0000000
0.0000000 0.0000000 1.0000000
ATOM -3: X=0.50000000 Y=0.00000000 Z=0.50000000
MULT= 1 ISPLIT= 8
Na NPT= 781 R0=0.00010000 RMT= 2.50000 Z: 11.0
LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000
0.0000000 1.0000000 0.0000000
0.0000000 0.0000000 1.0000000
ATOM -4: X=0.50000000 Y=0.50000000 Z=0.00000000
MULT= 1 ISPLIT= 8
Na NPT= 781 R0=0.00010000 RMT= 2.50000 Z: 11.0
LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000
0.0000000 1.0000000 0.0000000
0.0000000 0.0000000 1.0000000
ATOM -5: X=0.50000000 Y=0.50000000 Z=0.50000000
MULT= 1 ISPLIT= 8
Cl NPT= 781 R0=0.00010000 RMT= 2.50000 Z: 17.0
LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000
0.0000000 1.0000000 0.0000000
0.0000000 0.0000000 1.0000000
ATOM -6: X=0.50000000 Y=0.00000000 Z=0.00000000
MULT= 1 ISPLIT= 8
Cl NPT= 781 R0=0.00010000 RMT= 2.50000 Z: 17.0
LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000
0.0000000 1.0000000 0.0000000
0.0000000 0.0000000 1.0000000
ATOM -7: X=0.00000000 Y=0.50000000 Z=0.00000000
MULT= 1 ISPLIT= 8
Cl NPT= 781 R0=0.00010000 RMT= 2.50000 Z: 17.0
LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000
0.0000000 1.0000000 0.0000000
0.0000000 0.0000000 1.0000000
ATOM -8: X=0.00000000 Y=0.00000000 Z=0.50000000
MULT= 1 ISPLIT= 8
Cl NPT= 781 R0=0.00010000 RMT= 2.50000 Z: 17.0
LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000
0.0000000 1.0000000 0.0000000
0.0000000 0.0000000 1.0000000
0 NUMBER OF SYMMETRY OPERATIONS
Script scf.sh for SCF calculations
#!/bin/bash
# Creating different directories for different displacements
N=$(ls *.structS-*.in | wc -l)
echo $N
for s in $(eval echo "{001..$N}")
do
d=${s%%.struct}
mkdir disp-$d
(
cd disp-$d
cp ../NaCl.structS-$d.in disp-$d.struct
init_lapw -b -numk 100
run_lapw -fc 0.1
cd ..
)
done
Calculation
1- Creation of displacement Struct files
% conda activate phonopy
(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 NaCl.struct NaCl.structS NaCl.structS-001.in NaCl.structS-002.in
NaCl.structS
is the perfect supercell structure, phonopy_disp.yaml
contains the information on displacements, and POSCAR-{number}
are
the supercells with atomic displacements. NaCl.struct-{number}
.in
corresponds to the different atomic displacements written in
phonopy_disp.yaml
.
2- Phonon calculations
chmod +x scf.sh
./scf.sh
3- Calculation of sets of forces
% phonopy --wien2k -f disp-001/disp-001.scf disp-002/disp-002.scf
Post-process
In the post-process,
Force constants are calculated from the sets of forces
A part of dynamical matrix is built from the force constants
Phonon frequencies and eigenvectors are calculated from the dynamical matrices with the specified q-points.
Band structure is calculated with the following setting file named, e.g., band.conf by:
ATOM_NAME = Na Cl
DIM = 2 2 2
PRIMITIVE_AXIS = 0.0 0.5 0.5 0.5 0.0 0.5 0.5 0.5 0.0
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
The band structure is plotted by:
% phonopy --wien2k -c NaCl.struct -p band.conf
0 Comments