Professional Documents
Culture Documents
Phonopy Manual
Phonopy Manual
Release 1.7.4
Atsushi Togo
1 Examples 1
1.1 Si . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 NaCl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 MgB2 characters of ireducible representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Al-QHA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Si-gruneisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Work flow 15
6 Features 23
6.1 Band structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.2 Density of states . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.3 Thermal properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.4 Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.5 Plot and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.6 Calculation of mode Grüneisen parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
7 Input files 25
7.1 Setting file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7.2 Structure file (POSCAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7.3 Force file (FORCE_SETS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.4 FORCE_CONSTANTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.5 QPOINTS (optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.6 BORN (optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8 Output files 29
8.1 List of files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8.2 How to read phonopy YAML files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
i
9 Setting tags 33
9.1 Basic tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
9.2 Displacement creation tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
9.3 Band structure related tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
9.4 DOS related tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
9.5 Thermal properties related tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.6 Thermal displacements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.7 Specific q-points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
9.8 Non-analytical term correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.9 Group velocity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.10 Symmetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.11 Force constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
9.12 Create animation file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
9.13 Create modulated structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
9.14 Characters of irreducible representations of phonon modes . . . . . . . . . . . . . . . . . . . . . . . 43
10 Command options 45
10.1 Help (-h or --help) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
10.2 Create FORCE_SETS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
10.3 Create FORCE_CONSTANTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
10.4 Graph plotting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
10.5 Calculate DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
10.6 Unit conversion factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
10.7 Log level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
10.8 Crystal symmetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
10.9 Input cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
11 Auxiliary tools 51
11.1 bandplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
11.2 pdosplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
11.3 propplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
11.4 dispmanager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
11.5 outcar-born . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
14 Interfaces 61
14.1 VASP & phonopy calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
14.2 VASP-DFPT & phonopy calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
14.3 Wien2k & phonopy calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
14.4 FHI-aims & phonopy calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
14.5 Using phonopy as a python module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
15 Formulations 71
15.1 Second-order force constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
15.2 Modified Parlinski-Li-Kawazoe method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
15.3 Dynamical matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
15.4 Non-analytical term correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
15.5 Thermodynamic properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
ii
15.6 Thermal displacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
15.7 Group velocity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
17 References 79
17.1 Method used in phonopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
17.2 Other methods for calculating force constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
17.3 For the study of basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
18 Change Log 81
18.1 Oct-3-2013: Version 1.7.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
18.2 Sep-17-2013: Version 1.7.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
18.3 Aug-4-2013: Version 1.7.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
18.4 July-14-2013: Version 1.7.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
18.5 Jun-21-2013: Version 1.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
18.6 Apr-13-2013: Version 1.6.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
18.7 Feb-7-2013: Version 1.6.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
18.8 Nov-13-2012: Version 1.6.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
18.9 Nov-4-2012: Version 1.6.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
18.10 Oct-22-2012: Version 1.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
18.11 June-29-2012: Version 1.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
18.12 May-22-2012: Version 1.4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
18.13 May-21-2012: Version 1.4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
18.14 May-13-2012: Version 1.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
18.15 Mar-20-2012: Version 1.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
18.16 Oct-13-2011: Version 1.2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
18.17 Oct-12-2011: Version 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
18.18 Sep-19-2011: Version 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
18.19 Sep-5-2011: Version 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
18.20 Aug-8-2011: Version 0.9.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
18.21 Jun-7-2011: Version 0.9.5.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
18.22 Errata of document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
18.23 Jun-3-2011: Version 0.9.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
18.24 Errata of document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
18.25 Apr-18-2011: Version 0.9.4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
18.26 Feb-26-2011: Version 0.9.4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
18.27 Feb-20-2011: Version 0.9.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
18.28 Jan-21-2011: Version 0.9.3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
18.29 Jan-12-2011: Version 0.9.3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
18.30 Errata of document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
18.31 Dec-30-2010: Version 0.9.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
18.32 Dec-5-2010: Version 0.9.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
18.33 Nov-26-2010: Version 0.9.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
18.34 Sep-22-2010: Version 0.9.1.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
18.35 Aug-24-2010: Version 0.9.1.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
18.36 June-10-2010: Version 0.9.1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
18.37 May-11-2010: Version 0.9.1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
18.38 May-10-2010: Version 0.9.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
18.39 Apr-12-2010: Version 0.9.0.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
18.40 Apr-12-2010: Version 0.9.0.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
18.41 Apr-10-2010: Version 0.9.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
18.42 Mar-10-2010: Version 0.7.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
iii
18.43 Feb-10-2010: Version 0.7.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
18.44 Jan-12-2010: Version 0.7.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
18.45 Dec-8-2009: Version 0.7.1 released . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
18.46 Nov-24-2009: Version 0.7.0 released . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
18.47 Oct-14-2009: Version 0.6.2 released . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
iv
CHAPTER
ONE
EXAMPLES
1.1 Si
% phonopy -f vasprun.xml
_
_ __ | |__ ___ _ __ ___ _ __ _ _
| ’_ \| ’_ \ / _ \| ’_ \ / _ \ | ’_ \| | | |
| |_) | | | | (_) | | | | (_) || |_) | |_| |
| .__/|_| |_|\___/|_| |_|\___(_) .__/ \__, |
|_| |_| |___/
0.9.4
counter (file index): 1 (1)
1.1.2 DOS
% phonopy -p mesh.conf
_
_ __ | |__ ___ _ __ ___ _ __ _ _
| ’_ \| ’_ \ / _ \| ’_ \ / _ \ | ’_ \| | | |
| |_) | | | | (_) | | | | (_) || |_) | |_| |
| .__/|_| |_|\___/|_| |_|\___(_) .__/ \__, |
|_| |_| |___/
0.9.4
Mesh sampling mode
Settings:
1
phonopy manual, Release 1.7.4
% phonopy -t -p mesh.conf
_
_ __ | |__ ___ _ __ ___ _ __ _ _
| ’_ \| ’_ \ / _ \| ’_ \ / _ \ | ’_ \| | | |
| |_) | | | | (_) | | | | (_) || |_) | |_| |
| .__/|_| |_|\___/|_| |_|\___(_) .__/ \__, |
|_| |_| |___/
0.9.4
Mesh sampling mode
Settings:
Sampling mesh: [31 31 31]
Supercell: [2 2 2]
Spacegroup: Fd -3 m (227)
Number of irreducible q-points: 816
# T [K] F [kJ/mol] S [J/K/mol] C_v [J/K/mol]
0.000 11.7110491 0.0000000 0.0000000
10.000 11.7110005 0.0207133 0.0652014
20.000 11.7101707 0.1826665 0.5801980
30.000 11.7063149 0.6494417 1.9566658
40.000 11.6959681 1.4755146 3.9391312
50.000 11.6758627 2.5838025 6.0729958
60.000 11.6436850 3.8753235 8.1398560
70.000 11.5979859 5.2789839 10.1081936
80.000 11.5378707 6.7536680 12.0151390
90.000 11.4627491 8.2777066 13.8988294
100.000 11.3721917 9.8393077 15.7763729
...
2 Chapter 1. Examples
phonopy manual, Release 1.7.4
1.2 NaCl
% phonopy -p band.conf
_
_ __ | |__ ___ _ __ ___ _ __ _ _
| ’_ \| ’_ \ / _ \| ’_ \ / _ \ | ’_ \| | | |
| |_) | | | | (_) | | | | (_) || |_) | |_| |
| .__/|_| |_|\___/|_| |_|\___(_) .__/ \__, |
|_| |_| |___/
0.9.1.4
Band structure mode
Settings:
Supercell: [2 2 2]
Primitive axis:
[ 0. 0.5 0.5]
[ 0.5 0. 0.5]
[ 0.5 0.5 0. ]
Spacegroup: Fm -3 m (225)
Paths in reciprocal reduced coordinates:
[ 0.00 0.00 0.00] --> [ 0.50 0.00 0.00]
[ 0.50 0.00 0.00] --> [ 0.50 0.50 0.00]
[ 0.50 0.50 0.00] --> [-0.00 -0.00 0.00]
[ 0.00 0.00 0.00] --> [ 0.50 0.50 0.50]
...
1.2. NaCl 3
phonopy manual, Release 1.7.4
1.4
4 Chapter 1. Examples
phonopy manual, Release 1.7.4
1.2.3 PDOS
% phonopy -p pdos.conf
_
_ __ | |__ ___ _ __ ___ _ __ _ _
| ’_ \| ’_ \ / _ \| ’_ \ / _ \ | ’_ \| | | |
| |_) | | | | (_) | | | | (_) || |_) | |_| |
| .__/|_| |_|\___/|_| |_|\___(_) .__/ \__, |
|_| |_| |___/
1.6.2
1.2. NaCl 5
phonopy manual, Release 1.7.4
With non-analytical term correction, the PDOS may not change very much because it mainly affects to the density of
states only around Γ point.
% phonopy --nac -p pdos.conf
_
_ __ | |__ ___ _ __ ___ _ __ _ _
| ’_ \| ’_ \ / _ \| ’_ \ / _ \ | ’_ \| | | |
| |_) | | | | (_) | | | | (_) || |_) | |_| |
| .__/|_| |_|\___/|_| |_|\___(_) .__/ \__, |
|_| |_| |___/
1.6.2
6 Chapter 1. Examples
phonopy manual, Release 1.7.4
1.6.2
-----------------
Character table
-----------------
q-point: [ 0. 0. 0.]
Point group: 6/mmm
1 2 3 4 5 6
-------- -------- -------- -------- -------- --------
1 0 0 -1 0 0 1 -1 0 -1 1 0 0 -1 0 0 1 0
0 1 0 0 -1 0 1 0 0 -1 0 0 1 -1 0 -1 1 0
0 0 1 0 0 -1 0 0 1 0 0 -1 0 0 1 0 0 -1
7 8 9 10 11 12
-------- -------- -------- -------- -------- --------
-1 0 0 1 0 0 -1 1 0 1 -1 0 0 1 0 0 -1 0
0 -1 0 0 1 0 -1 0 0 1 0 0 -1 1 0 1 -1 0
0 0 1 0 0 -1 0 0 1 0 0 -1 0 0 1 0 0 -1
13 14 15 16 17 18
-------- -------- -------- -------- -------- --------
0 -1 0 0 1 0 -1 0 0 1 0 0 -1 1 0 1 -1 0
-1 0 0 1 0 0 -1 1 0 1 -1 0 0 1 0 0 -1 0
0 0 -1 0 0 1 0 0 -1 0 0 1 0 0 -1 0 0 1
19 20 21 22 23 24
-------- -------- -------- -------- -------- --------
0 1 0 0 -1 0 1 0 0 -1 0 0 1 -1 0 -1 1 0
1 0 0 -1 0 0 1 -1 0 -1 1 0 0 -1 0 0 1 0
0 0 -1 0 0 1 0 0 -1 0 0 1 0 0 -1 0 0 1
Transformation matrix:
E i C6 S3 C3 S6
-------- -------- -------- -------- -------- --------
1 0 0 -1 0 0 1 -1 0 -1 1 0 0 -1 0 0 1 0
0 1 0 0 -1 0 1 0 0 -1 0 0 1 -1 0 -1 1 0
0 0 1 0 0 -1 0 0 1 0 0 -1 0 0 1 0 0 -1
C2 sgh C3 S6 C6 S3
-------- -------- -------- -------- -------- --------
-1 0 0 1 0 0 -1 1 0 1 -1 0 0 1 0 0 -1 0
0 -1 0 0 1 0 -1 0 0 1 0 0 -1 1 0 1 -1 0
0 0 1 0 0 -1 0 0 1 0 0 -1 0 0 1 0 0 -1
Character table:
1 ( -0.019): A2u
1.000 -1.000 1.000 -1.000 1.000 -1.000 1.000 -1.000
1.000 -1.000 1.000 -1.000 -1.000 1.000 -1.000 1.000
-1.000 1.000 -1.000 1.000 -1.000 1.000 -1.000 1.000
2 ( 0.004): E1u
2.000 -2.000 1.000 -1.000 -1.000 1.000 -2.000 2.000
-1.000 1.000 1.000 -1.000 -0.000 0.000 0.000 -0.000
0.000 -0.000 0.000 -0.000 -0.000 0.000 -0.000 0.000
4 ( 9.953): E1u
2.000 -2.000 1.000 -1.000 -1.000 1.000 -2.000 2.000
8 Chapter 1. Examples
phonopy manual, Release 1.7.4
6 ( 11.982): A2u
1.000 -1.000 1.000 -1.000 1.000 -1.000 1.000 -1.000
1.000 -1.000 1.000 -1.000 -1.000 1.000 -1.000 1.000
-1.000 1.000 -1.000 1.000 -1.000 1.000 -1.000 1.000
7 ( 17.269): E2g
2.000 2.000 -1.000 -1.000 -1.000 -1.000 2.000 2.000
-1.000 -1.000 -1.000 -1.000 0.000 0.000 0.000 0.000
-0.000 -0.000 0.000 0.000 0.000 0.000 -0.000 -0.000
9 ( 20.565): B2g
1.000 1.000 -1.000 -1.000 1.000 1.000 -1.000 -1.000
1.000 1.000 -1.000 -1.000 -1.000 -1.000 1.000 1.000
-1.000 -1.000 1.000 1.000 -1.000 -1.000 1.000 1.000
_
___ _ __ __| |
/ _ \ ’_ \ / _‘ |
| __/ | | | (_| |
\___|_| |_|\__,_|
1.4 Al-QHA
% phonopy-qha e-v.dat thermal_properties.yaml-{-{5..1},{0..5}} --sparse=50
# Vinet EOS
# T E_0 B_0 B’_0 V_0
0.000000 -14.796263 75.231724 4.758283 66.697923
2.000000 -14.796263 75.231723 4.758283 66.697923
4.000000 -14.796263 75.231718 4.758284 66.697923
6.000000 -14.796263 75.231695 4.758286 66.697924
8.000000 -14.796263 75.231634 4.758294 66.697928
10.000000 -14.796264 75.231510 4.758308 66.697934
...
1.5 Si-gruneisen
1.4. Al-QHA 9
phonopy manual, Release 1.7.4
10 Chapter 1. Examples
CHAPTER
TWO
2.1 Pre-process
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 dif-
ferent atomic displacements written in disp.yaml.
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.
ADDGRID = .TRUE.
LWAVE = .FALSE.
LCHARG = .FALSE.
11
phonopy manual, Release 1.7.4
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.
2.3 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
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
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
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.
2.3.1 Details
2.3. Post-process 13
phonopy manual, Release 1.7.4
THREE
WORK FLOW
Work flow of phonopy is shown schematically. There are two ways to calculate, (1) atomic forces from finite displace-
ments and (2) given force constants. You can choose one of them. Forces on atoms or force constants are calculated
by your favorite calculator (shown by the diamonds in the work flow). The boxes are jobs being done by phonopy, and
the circles are input and intermediate output data structures.
15
phonopy manual, Release 1.7.4
FOUR
The procedure of setup phonopy is explained in this section. It is supposed that phonopy is installed on the recent
linux distribution like Ubuntu or Fedora. Mac OS X users may find some more information on Using phonopy on Mac
OS X. If you met installation problems, it is recommended to prepare a system with Ubuntu linux as a virtual machine.
See Set up Ubuntu linux on VirtualBox
1. Prepare the following Python libraries:
• Python and its header files
• numpy
• matplotlib
• python-lxml
• python-yaml
In Ubuntu linux, they are installed by:
% sudo apt-get install python-dev python-numpy \
python-matplotlib python-tk python-lxml python-yaml
3. Put your phonopy directory into your PYTHONPATH in .bashrc etc, e.g.:
export PYTHONPATH=~/phonopy-1.3/lib/python
4. Set up C-libraries for python C-API and python codes. This can be done as follows:
Run setup.py script:
% python setup.py install --home=.
The command phonopy is located in the bin directory. The install location can be specified by the option
--home.
17
phonopy manual, Release 1.7.4
FIVE
1. Install MacPorts. Download MacPorts from http://www.macports.org/ and follow the installation instruction.
2. Install the following packages
py27-matplotlib
py27-lxml
py27-yaml
py27-scipy
This path can be system dependent. PYTHONPATH setting in step 3 of Download and install is also necessary.
7. Install phonopy following Download and install (step 1 can be omitted.)
Make sure that step 6 is done after step 5.
19
phonopy manual, Release 1.7.4
The following the steps to install Ubuntu linux on VirtualBox. This document is prepared for the user who failed to
install phonopy for some reason. Basically the questions on this procedure are not accepted in the phonopy mailing
list.
The setup of Ubuntu linux on VirtualBox is quite easy. Ubuntu (server) linux on VMware player can be set up similarly.
1. Install VirtualBox
VirtualBox is an open source virtualization system. VirtualBox runs on Windows, Mac, Linux, etc. On Windows
and Mac, the explanation of how to install is unnecessary. On Ubuntu linux, it can be installed using apt-get:
% sudo apt-get install virtualbox
To install ubuntu server, set the install image as the virtual CD device from Settings -> Storage, and click ‘OK’.
Start the virtual machine, then the installation of Ubuntu linux will start.
In the install process, you may just click ‘continue’, ..., ‘install’, etc. The computer’s name and user name are
set as you like.
4. System setting of the virtual machine
Boot the virtual machine and login to the ubuntu linux with the user name and password.
The terminal emulator is opened by ‘Alt’ + ‘Ctrl’ + ‘T’ or from the top-left corner seraching ‘terminal’. What
has to do first is update the system by:
% sudo apt-get update
‘vim’, ‘zsh’, ‘screen’, ‘aptitude’ may be also useful. Then install phonopy following Download and install.
5. Using phonopy from the host computer of the virtual machine
Phonopy can be used from the host computer (the machine where VirtualBox was installed).
First, the network device of the virtual machine has to be modified. If NAT is used, the port-forwarding setting
is required, Settings -> Network -> Port forwarding, right click, Insert new rule, Host port -> 2222, Guest port
-> 22. You can login to the virtual machine, e.g., by terminal:
The IP-address is found after inet addr of (probably) eth0. Then you can login to the virtual machine by the
usual manner with the IP address.
If the host computer is a usual linux or Mac (with the terminal in X11), X-forwarding is easily used by:
% ssh -X -l username -p 2222 localhost
or:
% ssh -X IPADDRESS_OF_VIRTUALMACHINE
This is very useful because the plot can be forwarded to the host computer.
SIX
FEATURES
Phonon band structure is calculated for the specified band paths (Band structure related tags).
Total and partial density of states are calculated based on the q-point sampling mesh (DOS related tags). Smearing
parameter is set by SIGMA tag or --sigma option.
Helmholtz free energy, heat capacity at constant volume, and entropy at temperatures are calculated from the phonon
frequencies on the q-point sampling mesh (Thermal properties related tags).
6.4 Animation
The results of DOS, PDOS, band structure, and thermal properties are immediately plotted by specifying -p option
(Graph plotting). When -s option is set together with the -p option, the plot is stored in the PDF file (-p -s). In
addition those results are saved in output text files (Output files), too.
A script gruneisen is used for calculating mode Grüneisen parameters in band structure style and mesh sampling
style. See the details at Calculation of mode Grüneisen parameters.
23
phonopy manual, Release 1.7.4
24 Chapter 6. Features
CHAPTER
SEVEN
INPUT FILES
A setting file contains phonopy settings which are summarized at Setting tags. This file is passed to phonopy as an
argument, e.g.,
% phonopy phonopy.conf
Crystal structure is written in VASP’s manner (for Wien2k interface, see WIEN2k mode). The format is simple.
The first line is for your comment, where you can write anything you want. The second line is the ratio for lattice
parameters. You can multiply by this number. The third to fifth lines give the lattice parameters, a, b, and c for the
respective lines. The sixth line contains the number of atoms for each atomic species, which have to correspond to the
atomic positions in the order. The seventh line should be written as Direct. This means that the atomic positions are
represented in fractional (reduced) coordinates. When you write chemical symbols in the first line, they are read and
those defined by the ATOM_NAME tag are overwritten.
Si O
1.00000000000000
4.2266540199664249 0.0000000000000000 0.0000000000000000
0.0000000000000000 4.2266540199664249 0.0000000000000000
0.0000000000000000 0.0000000000000000 2.6888359272289208
2 4
Direct
0.0000000000000000 0.0000000000000000 0.0000000000000000
0.5000000000000000 0.5000000000000000 0.5000000000000000
0.3067891334429594 0.3067891334429594 0.0000000000000000
0.6932108665570406 0.6932108665570406 0.0000000000000000
0.1932108665570406 0.8067891334429594 0.5000000000000000
0.8067891334429594 0.1932108665570406 0.5000000000000000
The VASP 5.x style is also supported. Chemical symbols are inserted just before the line of the numbers of atoms.
The chemical symbols in this line overwrite those defined by the ATOM_NAME tag and those defined by the first line
of POSCAR.
25
phonopy manual, Release 1.7.4
Stishovite
1.00000000000000
4.2266540199664249 0.0000000000000000 0.0000000000000000
0.0000000000000000 4.2266540199664249 0.0000000000000000
0.0000000000000000 0.0000000000000000 2.6888359272289208
Si O
2 4
Direct
0.0000000000000000 0.0000000000000000 0.0000000000000000
0.5000000000000000 0.5000000000000000 0.5000000000000000
0.3067891334429594 0.3067891334429594 0.0000000000000000
0.6932108665570406 0.6932108665570406 0.0000000000000000
0.1932108665570406 0.8067891334429594 0.5000000000000000
0.8067891334429594 0.1932108665570406 0.5000000000000000
This file gives sets of forces in supercells with finite atomic displacements. Each supercell involves one displaced
atom. The first line is the number of atoms in supercell. The second line gives number of calculated supercells with
displacements. Below the lines, sets of forces with displacements are written. In each set, firstly the atom number in
supercell is written. Secondary, the atomic displacement in Cartesian coordinates is written. Below the displacement
line, atomic forces in Cartesian coordinates are successively written. This is repeated for the set of displacements.
Blank likes are simply ignored.
In the following example, the third line is the displaced atom number that corresponds to the atom number in the
supercell created by phonopy. The fourth line gives the displacements in Cartesian coordinates. The lines below,
the atomic forces in Cartesian coordinates are written. Once all the forces for a supercell are written, the next set of
forces are written. This routine is repeated until the forces of all the displacements have been written.
See also VASP interface and WIEN2k interface for VASP and Wien2k users.
7.3.1 Example
48
2
1
0.0050650623043761 0.0000000000000000 0.0086223630086415
-0.0347116200 -0.0000026500 -0.0679795200
0.0050392400 -0.0015711700 -0.0079514600
0.0027380900 -0.0017851900 -0.0069206400
... (continue until all the forces for this displacement have written)
25
0.0050650623043761 0.0000000000000000 0.0086223630086415
-0.0017134500 -0.0001539800 0.0017333400
0.0013248100 0.0001984300 -0.0001203700
-0.0001310200 -0.0007955600 0.0003889300
... (continue until all the forces for this displacement have written)
7.4 FORCE_CONSTANTS
If the force constants of a supercell are known, it is not necessary to prepared FORCES. Phonopy has an interface to
read and write FORCE_CONSTANTS. To read and write FORCE_CONSTANTS are controlled by Force constants.
VASP users can use VASP DFPT interface to create FORCE_CONSTANTS from vasprun.xml.
7.4.1 Format
First line is for the number of atoms in supercell. Below second line, force constants between atoms are written by
every four lines. In first line of the four lines, anything can be written, i.e., just ignored. Second to fourth lines of the
four lines are for the second rank tensor of force constant in Cartesian coordinates, i.e.::
xx xy xz
yx yy yz
zx zy zz
7.4.2 Example
32
1 1
4.635786969900131 -0.000000000000000 -0.000000000000000
-0.000000000000000 4.635786969900130 -0.000000000000000
-0.000000000000000 -0.000000000000000 4.635786969900130
1 2
-0.246720998398056 -0.000000000000000 -0.000000000000000
-0.000000000000000 0.018256999881458 -0.000000000000000
-0.000000000000000 -0.000000000000000 0.018256999881458
...
1 32
0.002646999982813 0.018011999883049 -0.000000000000000
0.018011999883049 0.002646999982813 -0.000000000000000
-0.000000000000000 -0.000000000000000 0.035303999770773
2 1
-0.246720998398056 0.000000000000000 0.000000000000000
0.000000000000000 0.018256999881458 0.000000000000000
0.000000000000000 0.000000000000000 0.018256999881458
...
32 32
4.635786969900131 0.000000000000000 0.000000000000000
0.000000000000000 4.635786969900130 0.000000000000000
0.000000000000000 0.000000000000000 4.635786969900130
Specific q-points are calculated using QPOINTS = .TRUE. tag and QPOINTS file. The file format of QPOINTS is
as follows. The first line gives the number of q-points. Then the successive lines give q-points in reduced coordinate
of reciprocal space of the input unit cell.
7.4. FORCE_CONSTANTS 27
phonopy manual, Release 1.7.4
7.5.1 Example
512
-0.437500000000000 -0.437500000000000 -0.437500000000000
-0.312500000000000 -0.437500000000000 -0.437500000000000
-0.187500000000000 -0.437500000000000 -0.437500000000000
...
7.6.1 Format
In the first line, the first value is the unit conversion factor. For VASP, it may be 27.2116 × 0.52918.
In the second line, dielectric constant is specifed in Cartesian coordinates. The nine values correspond to the tensor
elements of xx, xy, xz, yx, yy, yz, zx, zy, and zz.
From the third line, Born effective charges Z for the independent atoms in the primitive cell have to be written in Carte-
sian coordinates. The independent atoms can be found using the --symmetry option. If PRIMITIVE_AXIS is sup-
posed to be used to calculate phonons, the option --primitive_axis has to be set together with the --symmetry
option.
7.6.2 Example
14.400
2.00 0.00 0.00 0.00 2.00 0.00 0.00 0.00 2.00
1.98 0.00 0.00 0.00 1.98 0.00 0.00 0.00 1.98
-0.99 0.00 0.00 0.00 -0.99 0.00 0.00 0.00 -0.99
...
EIGHT
OUTPUT FILES
The output data are stored in the following files on the current directory.
8.1.1 band.yaml
Sets of phonon frequencies on band paths calculated by the band-structure mode (e.g. BAND tag) are stored in the
YAML format.
band.yaml is viewed using the tool bandplot (bandplot). bandplot can convert the data in the YAML format
to that in the gnuplot-style format using the --gnuplot option.
8.1.2 mesh.yaml
A set of frequencies on irreducible q-points of a q-point mesh by the mesh-sampling mode (MP tag) is stored in the
YAML format.
8.1.3 qpoints.yaml
A set of frequencies calculated by the q-points mode (QPOINTS tag) is stored in the YAML format.
8.1.4 thermal_properties.yaml
The thermal properties calculated with -t option are stored in the YAML format.
thermal_properties.yaml is plot using the tool propplot (propplot).
Total DOS and partial dos are stored in the simple format, respectively.
total_dos.dat and partial_dos.dat are viewed using the tool pdosplot (pdosplot).
29
phonopy manual, Release 1.7.4
The first column is the phonon frequency. The following colums are the projected density of states for atoms in the
primitive cell. In the NaCl example, there are two atoms in the primitive cell, which are one Na and one Cl atoms. The
order of atoms in the primitive cell is confirmed running phonopy with the -v option. The partial_dos.dat of
this example is starting with the following lines:
# Sigma = 0.063253
-0.6695362607 0.0000000000 0.0000000000
-0.6379098952 0.0000000000 0.0000000000
-0.6062835296 0.0000000000 0.0000000000
-0.5746571641 0.0000000000 0.0000000000
-0.5430307986 0.0000000000 0.0000000000
-0.5114044331 0.0000000000 0.0000000000
-0.4797780675 0.0000000000 0.0000000000
-0.4481517020 0.0000000000 0.0000000000
-0.4165253365 0.0000000000 0.0000000000
-0.3848989710 0.0000000000 0.0000000000
-0.3532726054 0.0000000004 0.0000000006
-0.3216462399 0.0000000044 0.0000000066
-0.2900198744 0.0000000370 0.0000000551
-0.2583935089 0.0000002410 0.0000003596
-0.2267671433 0.0000012239 0.0000018260
...
where from the left to right in each line, frequency, PDOS of Na and PDOS of Cl. The first line is just a comment to
remember the sigma value used.
8.1.6 disp.yaml
This file contains information to create supercells with displacements. The format is hopefully understood just looking
into it. ‘displacement’ is written in Cartesian coordinates. The displacement and direction are related by
(a, b, c)d
u=A ,
|(a, b, c)d|
where u is the displacement in Cartesian coordinates, A is the amplitude, (a, b, c) is the matrix representing supercell
lattice vectors (three column vectors), and d is the direction along the supercell axes.
Most phonopy results are written in the YAML format. YAML files are easily translated to the combination of lists
and dictionaries in the python case. For each computer language, e.g., Ruby, each YAML parser is prepared and you
can use those libraries to parse YAML files and analyze the data easily in conjunction with your favorite language. See
http://www.yaml.org/. The basic of the YAML format is found easily on the web.
General
mesh Numbers of mesh sampling points along axes of the primitive cell.
weight In the mesh sampling mode, only phonons at irreducible q-points are calculated in the default behavior.
This value means the multiplicity of a q-point in the reciprocal space of the primitive cell.
dis- In the band structure mode, this value means the distance from the origin in the reciprocal space of the
tance primitive cell. The unit is the reciprocal of length unit used in the real space.
8.2.2 thermal_properties.yaml
The physical units of the thermal properties are given in the unit section of this YAML file. However the physical units
are only correct when phonopy ran with proper physical units. See Thermal properties related tags.
8.2.3 disp.yaml
NINE
SETTING TAGS
Most of the setting tags have corresponding command-line options (Command options).
For specifying real and reciprocal points, fractional values (e.g. 1/3) are accepted. However fractional values must
not have space among characters (e.g. 1 / 3) are not allowed.
9.1.1 ATOM_NAME
Chemical symbols
ATOM_NAME = Si O
The number of chemical symbols have to be same as that of the numbers in the sixth line of POSCAR.
Chemical symbols read by phonopy are overwritten by those written in POSCAR. See POSCAR examples. In WIEN2k
mode, you don’t need to set this tag, i.e., chemical symbols are read from the structure file.
9.1.2 EIGENVECTORS
When this tag is ‘.TRUE.’, eigenvectors are calculated. With -p option, partial density of states are calculated.
9.1.3 MASS
This tag is not necessary to use usually, because atomic masses are automatically set from the chemical symbols.
Atomic masses of a primitive cell are overwritten by the values specified. This tag does not affect to the symmetry
findings. For example, when there are six atoms in a primitive cell, MASS is set as follows
MASS = 28.085 28.085 16.000 16.000 16.000 16.000
9.1.4 DIM
The supercell is created from the input unit cell. When three integers are specified, a supercell elongated along axes
of unit cell is created.
DIM = 2 2 3
33
phonopy manual, Release 1.7.4
Be careful that the axes in POSCAR is defined by three row vectors, i.e., (au bu cu )T .
9.1.5 PRIMITIVE_AXIS
PRIMITIVE_AXIS = 0.0 0.5 0.5 0.5 0.0 0.5 0.5 0.5 0.0
Likewise,
PRIMITIVE_AXIS = 0 1/2 1/2 1/2 0 1/2 1/2 1/2 0
The primitive cell for building the dynamical matrix is created by multiplying primitive-axis matrix Mp . Let the matrix
as,
0.0 0.5 0.5
Mp = 0.5 0.0 0.5
0.5 0.5 0.0
where the rows correspond to the first three, second three, and third three sets of numbers, respectively.
When lattice parameters of unit cell (set by POSCAR) are the column vectors of au , bu , and cu , those of supercell, ap ,
bp , cp , are determined by,
(ap bp cp ) = (au bu cu )Mp
Be careful that the axes in POSCAR is defined by three row vectors, i.e., (au bu cu )T .
9.2.1 CREATE_DISPLACEMENTS
Supercells with displacements are created. This tag is used as the post process of phonon calculation.
CREATE_DISPLACEMENTS = .TRUE.
DIM = 2 2 2
9.2.2 DISPLACEMENT_DISTANCE
Finite atomic displacement distance is set as specified value when creating supercells with displacements. The default
displacement amplitude is 0.01 Å. When the wien2k option is specified, the default value is changed to 0.02 Bohr.
9.2.3 DIAG
When this tag is set .FALSE., displacements in diagonal directions are not searched, i.e. all the displacements are
along the lattice vectors. DIAG = .FALSE. is recommended if one of the lattice parameter of your supercell is
much longer or much shorter than the other lattice parameters.
9.2.4 PM
This tag specified how displacements are found. When PM = .FALSE., least displacements that can calculate
force constants are found. This may cause less accurate result. When PM = .TRUE., all the displacements that
are opposite to the least displacements are found. The default setting is PM = AUTO. Plus-minus displacements are
considered with this tag. If the plus and minus displacements are symmetrically equivalent, only the plus displacement
is found. This may be in between .FALSE. and .TRUE.. You can check how it works to see the file DISP where
displacement directions on atoms are written.
BAND gives sampling band paths. The reciprocal points are specified in reduced coordinates. The given points are
connected for defining band paths. When comma , is inserted between the points, the paths are disconnected.
BAND_POINTS gives the number of sampling points including the path ends. The default value is BAND_POINTS
= 51.
An example of three paths, (0,0,0) to (1/2,0,1/2), (1/2,1/2,1) to (0,0,0), and (0,0,0) to (1/2,1/2,1/2), with 101 sampling
points of each path are as follows:
BAND = 0 0 0 1/2 0 1/2, 1/2 1/2 1 0 0 0 1/2 1/2 1/2
BAND_POINTS = 101
9.3.2 BAND_LABELS
Labels specified are depicted in band structure plot at the points of band segments. The number of labels has to
correspond to the number of band paths specified by BAND plus one.
BAND = 1/2 0 1/2 0 0 0 1/2 1/2 1/2
BAND_LABELS = X \Gamma L
The colors of curves are automatically determined by matplotlib. The same color in a band segment shows the same
kind of band. Between different band segments, the correspondence of colors doesn’t mean anything.
9.3.3 BAND_CONNECTION
With this option, band connections are estimated from eigenvectors and band structure is drawn considering band
crossings. In sensitive cases, to obtain better band connections, it requires to increase number of points calculated in
band segments by the BAND_POINTS tag.
BAND = 1/2 0 1/2 0 0 0 1/2 1/2 1/2
BAND_POINTS = 101
BAND_CONNECTION = .TRUE.
9.4.1 MP
MP numbers give uniform meshes in each axis. As the default behavior, the center of mesh is determined by the
Monkhorst-Pack scheme, i.e., for odd number, a point comes to the center, and for even number, the center is shifted
half in the distance between neighboring mesh points.
MP = 8 8 8
MP_SHIFT = 1/2 1/2 1/2
9.4.2 MP_SHIFT
MP_SHIFT gives the shifts in direction along the corresponding reciprocal axes (a∗ , b∗ , c∗ ). 0 or 1/2 (0.5) can be used
as these values. 1/2 means the half mesh shift with respect to neighboring grid points in each direction.
9.4.3 GAMMA_CENTER
Instead of employing the Monkhorst-Pack scheme for the mesh sampling, Γ center mesh is used. The default value is
.FALSE..
GAMMA_CENTER = .TRUE.
9.4.4 DOS_RANGE
DOS_RANGE = 0 40 0.1
Total and partial density of states are drawn with some parameters. The example makes DOS be calculated from
frequency=0 to 40 with 0.1 pitch.
9.4.5 PDOS
PDOS = 1 2, 3 4 5 6
By setting this tag, EIGENVECTORS = .TRUE. is automatically set. PDOS tag controls how elements of eigenvec-
tors are added. Each value gives the atom index in primitive cell. , separates the atom sets. Therefore in the example,
atom 1 and 2 are summarized as one curve and atom 3, 4, 5, and, 6 are summarized as the other curve.
The projection is applied along arbitrary direction using PROJECTION_DIRECTION tag.
9.4.6 PROJECTION_DIRECTION
Eigenvectors are projected along the direction specified by this tag. Projection direction is specified in reduced coor-
dinates, i.e., with respect to a, b, c axes.
PDOS = 1, 2
PROJECTION_DIRECTION = -1 1 1
9.4.7 SIGMA
This tag specifies the deviation of a smearing function. The unit is same as that of final result of DOS, i.e., for VASP
without --factor option, it is THz. The default value is the value given by the difference of maximum and minimum
frequencies divided by 100.
SIGMA = 0.1
9.4.8 DEBYE_MODEL
By setting .TRUE., DOS at lower phonon frequencies are fit to a Debye model. By default, the DOS from 0 to 1/4
of the maximum phonon frequencies are used for the fitting. The function used to the fitting is D(ω) = aω 2 where
a is the parameter and the Debye frequency is (9N/a)1/3 where N is the number of atoms in unit cell. Users have
to unserstand that this is not a unique way to determine Debye frequency. Debye frequency is dependent on how to
parameterize it.
DEBYE_MODEL = .TRUE.
Thermal properties, free energy, heat capacity, and entropy, are calculated from their statistical thermodynamic ex-
pressions (see Thermodynamic properties). Thermal properties are calculated from phonon frequencies on a sampling
mesh in the reciprocal space. Therefore These tags are used with MP tag and their convergence with respect to the
sampling mesh has to be checked. Usually this calculation is not computationally demanding, so the convergence is
easily achieved with increasing the density of the sampling mesh. -p option can be used together to plot the thermal
propreties. Phonon frequencies have to be calculated in THz. Therefore unit conversion factor to THz may be specified
using --factor option. The calculated values are written into thermal_properties.yaml. The unit systems
of free energy, heat capacity, and entropy are kJ/mol, J/K/mol, and J/K/mol, respectively, where 1 mol means NA ×
your input unit cell (not formula unit), i.e. you have to divide the value by number of formula unit in your unit cell by
yourself. For example, in MgO (conventional) unit cell, if you want to compare with experimental results in kJ/mol,
you have to divide the phonopy output by four.
TMIN, TMAX, and TSTEP tags are used to specify the temperature range to be calculated. The default values of them
are 0, 1000, and 10, respectively.
TPROP = .TRUE.
TMAX = 2000
Experimental
Mean square displacements projected to Cartesian axes as a function of temperature are calculated from the number of
phonon excitations. The usages of TMAX, TMIN, TSTEP tags are same as those in thermal properties tags. The result
is writen into thermal_displacements.yaml. See the detail of the method, Mean square displacement.
The projection is applied along arbitrary direction using PROJECTION_DIRECTION tag (PROJEC-
TION_DIRECTION).
TDISP = .TRUE.
PROJECTION_DIRECTION = 1 1 0
Mean square displacement matricies are calculated. The difinition is shown at Mean square displacement. The result
is writen into thermal_displacement_matrices.yaml where six matrix elements are given in the order of
xx, yy, zz, yz, xz, xy.
TDISPMAT = .TRUE.
9.7.1 QPOINTS
When QPOINTS = .TRUE., QPOINTS file in your working directory is read, and the q-points written in this file
are calculated.
9.7.2 WRITEDM
WRITEDM = .TRUE.
Dynamical matrices D are written into qpoints.yaml in the following 6N × 3N format, where N is the number
of atoms in the primitive cell.
D11 D12 D13
D21 D22 D23 · · ·
D = D31 D32 D33 ,
..
.
and Djj 0 is
xx xx xy xy xz xz
Re(Djj 0) Im(Djj 0) Re(Djj 0) Im(Djj 0) Re(Djj 0) Im(Djj 0)
yx yx yy yy yz yz
Djj 0 = Re(Djj 0 ) Im(Djj 0 ) Re(Djj 0 ) Im(Djj 0 ) Re(Djj 0 ) Im(Djj 0 ) ,
zx zx zy zy zz zz
Re(Djj 0) Im(Djj 0) Re(Djj 0) Im(Djj 0) Re(Djj 0) Im(Djj 0)
where j and j’ are the atomic indices in the primitive cell. The phonon frequencies may be recovered from
qpoints.yaml by writing a simple python script. For example, qpoints.yaml is obtained for NaCl at
q = (0, 0.5, 0.5) by
phonopy --dim="2 2 2" --pa="0 1/2 1/2 1/2 0 1/2 1/2 1/2 0" --qpoints="0 1/2 1/2" --writedm
import yaml
import numpy as np
data = yaml.load(open("qpoints.yaml"))
dynmat = []
dynmat_data = data[’phonon’][0][’dynamical_matrix’]
for row in dynmat_data:
vals = np.reshape(row, (-1, 2))
dynmat.append(vals[:, 0] + vals[:, 1] * 1j)
dynmat = np.array(dynmat)
9.8.1 NAC
Non-analytical term correction is applied to dynamical matrix. BORN file has to be prepared in the current directory.
See BORN (optional) and Non-analytical term correction.
NAC = .TRUE.
9.9.1 GROUP_VELOCITY
Group velocities at q-points are calculated by using this tag. The group velocities are written into a yaml file cor-
responding to the run mode in Cartesian coordinates. The physical unit depends on physical units of input files and
frequency conversion factor, but if VASP and the default settings (e.g., THz for phonon frequency) are simply used,
then the physical unit will be Angstrom THz.
GROUP_VELOCITY = .TRUE.
9.9.2 GV_DELTA_Q
The reciprocal distance used for finite difference method is specified. The default value is 1e-4.
GV_DELTA_Q = 0.01
9.10 Symmetry
9.10.1 SYMMETRY
9.10.2 MESH_SYMMETRY
Symmetry search on the reciprocal sampling mesh is disabled by setting MESH_SYMMETRY = .FALSE..
9.10.3 FC_SYMMETRY
This tag is used to symmetrize force constants partly. The number of iteration of the following set of symmetrization
applied to force constants is specified. The default value is 0. In the case of VASP, this tag is usually unnecessary to
be specified.
FC_SYMMETRY = 1
where i and j are the atom indices, and α and β are the Catesian indices for atoms i and j, respectively. Force constants
are symmetric in each pair as
∂2U ∂2U
Φαβ
ij = β
= = Φβα
ji
∂uα
i ∂uj ∂uβj ∂uα
i
These symmetrizations break the symmetry conditions each other. Be careful that the other symmetries of force con-
stants, i.e., the symmetry from crystal symmetry or rotational symmetry, are broken to force applying FC_SYMMETRY.
9.11.1 FORCE_CONSTANTS
FORCE_CONSTANTS = READ
There are three values to be set, which are READ and WRITE, and .FALSE.. The default is
.FALSE.. When FORCE_CONSTANTS = READ, force constants are read from FORCE_CONSTANTS
file. With FORCE_CONSTANTS = WRITE, force constants calculated from FORCE_SETS are written to
FORCE_CONSTANTS file.
The file format of FORCE_CONSTANTS is shown here.
9.12.1 ANIME_TYPE
ANIME_TYPE = JMOL
There are V_SIM, ARC, XYZ, JMOL, and POSCAR settings. Those may be viewed by v_sim, gdis, jmol (anima-
tion), jmol (vibration), respectively. For POSCAR, a set of POSCAR format structure files corresponding to respective
animation images are created such as APOSCAR-000, APOSCAR-001,....
There are several parameters to be set in the ANIME tag.
9.12.2 ANIME
For v_sim
The values are the q-point to be calculated. An animation file of anime.ascii is generated.
To watch each phonon mode, v_sim is recommended. The file anime.ascii is supposed to work with v_sim
version 3.51 or later. An example how to watch phonon modes at a q-point is shown as follows.
First, you need to create a phonopy input file with, e.g., ANIME = 0.5 0.5 0. After running phonopy with this
input file, you get anime.ascii that contains all phonon modes at the q-point. Then start v_sim
v_sim anime.ascii
After opening the graphical user interface, you can find a tab called Phonons. There you can see the phonon
modes at the q-point that you specified in the phonopy input file. Then select one of the phonon modes and watch
by pushing the play button. Because only the unit cell shows up at the start of v_sim, if you want to watch a
phonon modulation with a longer period, then change the values of Expand nodes in the Box and symmetry tab
(http://inac.cea.fr/L_Sim/V_Sim/user_guide.html#trans). This is especially important when you choose a q-point other
than the Γ-point.
V_sim has a good graphical user interface and also a lot of command line options. To read the manual well and to
check the command line options help you to use v_sim comfortably, e.g.,
v_sim -w oneWindow anime.ascii -x 1:1:0 -t 0.5:0.5:0.5
9.13.1 MODULATION
The MODULATION tag is used to create a crystal structure with displacements along normal modes at q-point in the
specified supercell dimension.
Atomic displacement of the j-th atom is created from the real part of the eigenvectors with amplitudes and phase
factors as
A
√ Re [exp(iφ)ej exp(q · rj )] ,
mj
where A is the amplitude, φ is the phase, and mj is the mass of the j-th atom, q is the q-point specified, rjl is the
position of the j-th atom and in the l-th unit cell, and ej is the j-th part of eigenvector. Convention of eigenvector or
dynamical matrix employed in phonopy is shown in Dynamical matrix.
If several modes are specified as shown in the example above, they are overlapped on the structure. The output file-
names are MPOSCAR.... Each modulated structure of a normal mode is written in MPOSCAR-<number> where the
numbers correspond to the order of specified sets of modulations. MPOSCAR is the structure where all the modulations
are summed. MPOSCAR-orig is the structure without containing modulation, but the dimension is the one that is
specified. Some information is written into modulation.yaml.
Usage
The first three values correspond to the supercell dimension. The following values are used to describe how the atoms
are modulated. Multiple sets of modulations can be specified by separating by comma ,. In each set, the first three
values give a Q-point in the reduced coordinates in reciprocal space. Then the next three values are the band index
from the bottom with ascending order, amplitude, and phase factor in degrees. The phase factor is optional. If it is not
specified, 0 is used.
Before multiplying user specified phase factor, the phase of the modulation vector is adjusted as the largest absolute
√
value, |ej | / mj , of element of 3N dimensional modulation vector to be real. The complex modulation vector is
shown in modulation.yaml.
MODULATION = 3 3 1, 1/3 1/3 0 1 2, 1/3 1/3 2 3.5
9.14.1 IRREPS
Characters of irreducible representations (IRs) of phonon modes are shown. For this calculation, a primitive cell
has to be used. If the input unit cell is a non-primitive cell, it has to be transformed to a primitive cell using
PRIMITIVE_AXIS tag.
The first three values gives a q-point in reduced coordinates to be calculated. The degenerated modes are searched
only by the closeness of frequencies. The frequency difference to be tolerated is specified by the fourth value in the
frequency unit that the user specified.
IRREPS = 0 0 0 1e-3
Only the databases of IRs for a few point group types at the Γ point are implemented. If the database is available, the
symbols of the IRs and the rotation operations are shown.
9.14.2 SHOW_IRREPS
Experimental
Irreducible representations are shown along with character table.
IRREPS = 1/3 1/3 0
SHOW_IRREPS = .TRUE.
TEN
COMMAND OPTIONS
45
phonopy manual, Release 1.7.4
• --tdm (TDISPMAT)
• --tmin (TMIN)
• --tmax (TMAX)
• --tstep (TSTEP)
• --writedm (WRITEDM = .TRUE.)
• --writefc (FORCE_CONSTANTS = WRITE)
When both of command-line option and setting tag for the same purpose are set simultaneously, the command-line
options overide the setting tags.
VASP interface
FORCE_SETS file is created from disp.yaml, which is an output file when creating supercell with displacements,
and vasprun.xml‘s, which are the VASP output files. disp.yaml in the current directory is automatically read.
The order of displacements written in disp.yaml file has to correpond to that of vasprun.xml files .
% phonopy -f disp-001/vasprun.xml disp-002/vasprun.xml ...
Attention:
• Site-projected wave function information (the same information as PROCAR) siginificantly increases the size of
vasprun.xml. So parsing xml file uses huge memory space. It is recommended
• to switch off to calculate it. If there are many displacements, shell expansions are useful, e.g.,
disp-*/vasprun.xml, or disp-{001..128}/vasprun.xml (for zsh, and recent bash).
--fz option is used to subtract residual forces in the equilibrium supercell.
% phonopy --fz sposcar/vasprun.xml disp-001/vasprun.xml ...
WIEN2k interface
This is experimental support to generage FORCE_SETS. Insted of this, you can use the external tool called
scf2forces to generate FORCE_SETS. scf2forces is found at http://www.wien2k.at/reg_user/unsupported/.
FORCE_SETS file is created from disp.yaml, which is an output file when creating supercell with displacements,
and case.scf‘s, which are the WIEN2k output files. The order of displacements in disp.yaml file and the order
of case.scf‘s have to be same. For Wien2k struct file, only negative atom index with the P lattice format is
supported.
This FORCE_CONSTANTS can be used instead of FORCE_SETS. For more details, please refer VASP-DFPT &
phonopy calculation.
10.4.1 -p
Result is plotted.
% phonopy -p
10.4.2 -p -s
10.5.1 --dos
Density of states are calculated using this option with MP tag. When -p option with MP tag is set, --dos is automat-
ically set. Therefore this tag is used when you want to calculate DOS, but you don’t need to plot.
10.6.1 --factor
Unit conversion factor of frequency from √ input values to your favorite unit is specified. The default value is that of
VASP to THz, which is calculated by eV/AMU/(Å · 2π · 1012 ) (=15.633302) in SI base unit. When the wien2k
option is specified, the default value is changed to 3.44595, which is the factor to convert from Wien2k to THz.
When calculating thermal property, the factor to THz is required. Otherwise the calculated thermal properties have
wrong units. In the case of band structure plot, any factor can be used, where the frequency is simply shown in the
unit you specified.
% phonopy --factor=521.471
10.7.1 -v or --verbose
10.7.2 -q or --quiet
No log is shown.
10.8.1 --tolerance
The specified value is used as allowed tolerance to find symmetry of crystal structure. The default value is 1e-5.
% phonopy --tolerance=1e-3
10.8.2 --symmetry
Using this option, various crystal symmetry information is just printed out and phonopy stops without going to phonon
analysis.
% phonopy --symmetry
This tag can be used together with the --cell, --wien2k, or --primitive_axis option.
10.9.1 -c or --cell
Phonopy searches the POSCAR file in the current directory. Using this tag, you can specify another filename than
POSCAR as the input unit cell.
% phonopy --cell=UPOSCAR
10.9.2 --wien2k
This option with WIEN2k struct file, phonopy runs with the WIEN2k mode. In this mode, you don’t need to prepare
POSCAR. The supercells with displacements in WIEN2k struct format are created using -d option. The physical unit
is changed to mRydberg and Bohr. Only the WIEN2k struct with the P lattice is supported. See more information
Wien2k & phonopy calculation.
% phonopy --wien2k=case.struct
ELEVEN
AUXILIARY TOOLS
A few auxiliary tools are prepared. They are stored in bin directory as well as phonopy.
11.1 bandplot
Band structure is plotted reading phonopy output in band.yaml format. -o option with a file name is used to save
the plot into a file in PDF format. A few more options are prepared and shown by -h option. If you specify more than
two yaml files, they are plotted together.
bandplot band.yaml
11.2 pdosplot
The indices and comma in ‘1 2 3 4, 5 6’ mean as follows. The indices are separated into blocks by comma (1 2 4 5
and 3 6). PDOS specified by the successive indices separated by space in each block are summed up. The PDOS of
blocks are drawn simultaneously. Indices usually correspond to atoms. A few more options are prepared and shown
by -h option.
11.3 propplot
Thermal properties are plotted. Options are prepared and shown by -h option. If you specify more than two yaml
files, they are plotted together.
proplot thermal_properties_A.yaml thermal_properties_B.yaml
51
phonopy manual, Release 1.7.4
11.4 dispmanager
-o is used to specify the output file name of the new displacement file and --overwrite is used to overwrite the
displacement file.
-a is specified with an atom index and a direction of displacement as a character string. The first value is the atom
index and remaining three values are for direction. --amplitude is used with -a and specify the displacement
amplitude. An example is as follows:
dispmanager disp.yaml -o disp-new.yaml -a "33 1 1 0" --amplitude 0.05
disp-new.yaml is created from disp.yaml with a new displacement of the thirty-third atom (index 33) with the
direction of (1,1,0) with the amplitude of 0.05. The direction is defined against lattice vectors. The amplitude unit is
same as the lattice vectors.
-s is specified with displacement indices. For example when there are four dependent displacements and only the first
and third displacements are needed, dispmanager is used like
dispmanager disp.yaml -o disp-new.yaml -s "1 3"
11.4.2 -w
The option is used to create supercells with displacements in POSCAR format from a displacement file.
DPOSCAR-xxx files are created.
11.4.3 --compatibility
The old style displacement file DISP is compared with disp.yaml whether the directions of the displacements are
equivalent or not.
11.5 outcar-born
This script is used to create a BORN style file from VASP output file of OUTCAR. The first and second arguments are
OUTCAR type file and POSCAR type file, respectively. If both are omitted, POSCAR and OUTCAR in current directory
are read.
TWELVE
Using phonopy results of thermal properties, thermal expansion and heat capacity at constant pressure can be calcu-
lated under the quasi-harmonic approximation. phonopy-qha is the script to calculate them. An example of the
usage is as follows:
phonopy-qha e-v.dat thermal_properties-{1..10}.yaml
1st argument is the filename of volume-energy data (in the above expample, e-v.dat). The volume and energy of
the cell (default units are in 3 and eV, respectively). An example of the volume-energy file is:
# cell volume energy of cell other than phonon
156.7387309525 -104.5290025375
154.4138492700 -104.6868148175
152.2544070150 -104.8064238800
150.2790355600 -104.8911768625
148.4469296725 -104.9470385875
146.7037426750 -104.9783724075
145.1182305450 -104.9871878600
143.5676103350 -104.9765270775
142.1282086200 -104.9485225225
139.4989658225 -104.8492814250
Lines starting with # are ignored. The other arguments are the filenames of thermal_properties.yaml calcu-
lated at the respective volumes given in the 1st argument. The thermal_properties.yaml at volume points have
to be calculated with the same temperature ranges and same temperature steps. thermal_properties.yaml can
be calculated by following Thermal properties related tags, where the physical unit of the Helmholtz free energy is
kJ/mol as the default, i.e., no need to convert the physical unit in usual cases.
The example for Aluminum is found in the example directory.
If the condition under puressure is expected, P V terms may be included in the energies.
12.1.1 Options
-h
Show help. The available options are shown. Without any option, the results are saved into text files in simple data
format.
53
phonopy manual, Release 1.7.4
--tmax
The maximum temperature calculated is specified. This temperature has to be lower than the maximum temperature
calculated in thermal_properties.yaml to let at least two temperature points fewer. The default value is
--tmax=1000.
-p
The fitting results, volume-temperature relation, and thermal expansion coefficient are plotted on the display.
--sparse
This is used with -s or -p to thin out the number of plots of the fitting results at temperatures. When --sparse=10,
1/10 is only plotted.
-s
--pressure
This option is not yet well tested. Please report to the mailing list when you get wrong results.
Pressure is specified in GPa. This corresponds to the pV term described in the following section Theory of quasi-
harmonic approximation.
-b
Fitting volume-energy data to an EOS, and show bulk modulus (without considering phonons). This is made by:
phonopy-qha -b e-v.dat
Here the word ‘quasi-harmonic approximation’ is used for an approximation that introduces volume dependence of
phonon frequencies as a part of anharmonic effect.
A part of temperature effect can be included into total energy of electronic structure through phonon (Helmholtz)
free energy at constant volume. But what we want to know is thermal properties at constant pressure. We need
some transformation from function of V to function of p. Gibbs free energy is defined at a constant pressure by the
transformation:
G(T, p) = min [U (V ) + Fphonon (T ; V ) + pV ] ,
V
where
min[function of V ]
V
means to find unique minimum value in the brackets by changing volume. Since volume dependencies of energies in
electronic and phonon structures are different, volume giving the minimum value of the energy function in the square
brackets shifts from the value calculated only from electronic structure even at 0 K. By increasing temperature, the
volume dependence of phonon free energy changes, then the equilibrium volume at temperatures changes. This is
considered as thermal expansion under this approximation.
phonopy-qha collects the values at volumes and transforms into the thermal properties at constant pressure.
THIRTEEN
Experimental
It is necessary to run three phonon calculations. One is calculated at the equilibrium volume and the remaining two
are calculated at the slightly larger volume and smaller volume than the equilibrium volume. The unitcells at these
volumes have to be fully relaxed under the constraint of each volume.
The files named POSCAR, FORCE_SETS (or FORCE_CONSTANTS with --readfc option), and optionally BORN
are stored in three different directories named, e.g., equiv, plus, and minus.
The calculated results are written into the file gruneisen.yaml.
In the example directory, an example of silicon (Si-gruneisen) is prepared. A calculation along paths in reciprocal
space can be made by
% gruneisen orig plus minus --dim="2 2 2" --pa="0 1/2 1/2 1/2 0 1/2 1/2 1/2 0" --band="1/2 1/4 3/4 0
In this calculation, neighboring q-points in each band segment are connected considering their phonon symmetry to
treat band crossing correctly. Therefore the phonon frequencies may not be ordered in gruneisen.yaml. In the
plot (-p option), the colors of phonon bands correspond to those of mode Grüneinen parameters.
A calculation on a reciprocal mesh is made by
57
phonopy manual, Release 1.7.4
% gruneisen orig plus minus --dim="2 2 2" --pa="0 1/2 1/2 1/2 0 1/2 1/2 1/2 0" --mesh="20 20 20" -p
In the plot (-p option), the colors of mode Grüneinen parameters are set for band indices with ascending order of
phonon frequencies.
Mode Grüneinen parameter may diverge around Γ-point. In the above example for band paths, mode Grüneinen
parameters are calculated at Γ-point, but gruneisen script avoids showing the values on the plot. Instead the values
at the neighboring q-points of Γ-point are used for the plot.
The following command options can be used. They work similarly to those for phonopy script.
• --dim
• --mp, --mesh
• --band
• --pa, --primitive_axis
• --readfc
• --band_points
• --nac
• -p
• -c
• -s, --save
• -o
The --color option (RB, RG, RGB) is used to gradually change the marker colors with respect to band indices. For
the mesh-sampling plot, a few more options to control matplotlib parameters are prepared.
Mode Grüneisen parameter γ(qν) at the wave vector q and band index ν is given by
V ∂ω(qν)
γ(qν) = −
ω(qν) ∂V
V ∂D(q)
=− e(qν)
e(qν) ,
2[ω(qν)]2 ∂V
where V is the volume, ω(qν) is the phonon frequency, D(q) is the dynamical matrix, and e(qν) is the eigenvector.
This is approximated by the finite difference method:
V ∆D(q)
γ(qν) ' − e(qν)
e(qν) .
2[ω(qν)]2 ∆V
The gruneisen script requires three phonon calculations at corresponding three volume points. One is for eigen-
vectors at the equilibrium volume (V ) and the remaining two are for ∆D(q) with slightly larger and smaller volumes
than V .
FOURTEEN
INTERFACES
Please follow the page Tutorial using VASP as calculator and Examples.
VASP can calculate force constants in real space using DFPT. The procedure to calculate phonon properties may be as
follows:
1. 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
3. Rename SPOSCAR created in (2) to POSCAR (POSCAR-{number} and disp.yaml files will never be used.)
% mv SPOSCAR POSCAR
4. Calculate force constants of the perfect supercell by running VASP with IBRION = 8 and NSW = 1. An
example of INCAR for insulator may be such like (just an example!):
PREC = Accurate
ENCUT = 500
61
phonopy manual, Release 1.7.4
IBRION = 8
EDIFF = 1.0e-08
IALGO = 38
ISMEAR = 0; SIGMA = 0.1
LREAL = .FALSE.
ADDGRID = .TRUE.
LWAVE = .FALSE.
LCHARG = .FALSE.
5. After finishing the VASP calculation, confirm vasprun.xml contains hessian elements, and then create
FORCE_CONSTANTS:
% phonopy --fc vasprun.xml
6. Run phonopy with the original unit cell POSCAR-unitcell and setting tag FORCE_CONSTANTS = READ
or --readfc option, e.g., as found in example/NaCl-VASPdfpt
% phonopy --dim="2 2 2" -c POSCAR-unitcell band.conf
_
_ __ | |__ ___ _ __ ___ _ __ _ _
| ’_ \| ’_ \ / _ \| ’_ \ / _ \ | ’_ \| | | |
| |_) | | | | (_) | | | | (_) || |_) | |_| |
| .__/|_| |_|\___/|_| |_|\___(_) .__/ \__, |
|_| |_| |___/
1.1
In this example, 2x2x2 supercells are created. case.structS and case.structS-xxx (xxx are num-
bers) are the perfect supercell and the supercells with displacements, respectively. Perhaps these are renamed to
case-xxx.struct and stored in case-xxx directories, then to be calculated using Wien2k.
2. Calculate forces on atoms in the supercells with displacements. Select to use case.struct_nn file when
running init_lapw. In the Wien2k calculations, the force convergence option of -fc has to be specified
to obtain total forces. A first attempt of the force convergence criterion may be 0.1 (mRy/a.u.). It is
recommended to try more strict convergence criteria with saving one by one using save_lapw.
3. Create FORCE_SETS
• Use scf2forces that is found at http://www.wien2k.at/reg_user/unsupported/.
• Or try experimetal support of -f option:
% phonopy --wien2k=case.struct -f case-001.scf case-002.scf ...
where case-xxx.scf are the Wien2k results for the supercells. case-xxx.scf has to contain
FGLxxx lines with total forces. When calculating supercells, the number of non-equivalent atoms
determined by nn has to match with the number of non-equivalent atoms determined by phonopy. The
former is found to watch case-xxx.struct after nn (it is supposed that case-xxx.struct cre-
ated by nn is used to calculate forces), and the later is displayed in the step 1. An example is found in
example/NaCl-wien2k.
The above procedure with -f option may fail. In this case, Wien2k calculations of case-xxx.scf
with P1 symmetry may be used for phonopy testing purpose though it computationally demands a lot. If
phonopy finds that case-xxx.scf are calculated with P1 symmetry, phonopy handles this as a special
case. An example is found in example/NaCl-wien2k-P1.
4. Run post-process of phonopy with the Wien2k unit cell struct file used in the step 1:
% phonopy --wien2k=case.struct [other-OPTIONS] [setting-file]
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.
The script phonopy-FHI-aims allows to conveniently employ the infrastructure provided by phonopy in order
to calculate phonons with FHI-aims. For compatibility reasons, most parameters are set via the phonon tag in
control.in as documented for the FHI-aims internal implementation in the FHI-aims manual. But several addi-
tional parameters are also handled via command line options as listed by -h.
Some examples can be found under FHI-aims in the example directory of the phonopy tarball. A subset of
them can now also be found among the FHI-aims ‘‘testcases” (only available from the developers’ repositories at the
moment). They have been slightly modified to also serve as a step-by-step guide.
For questions, please make use of the official FHI-aims forums accessible from here:
https://aimsclub.fhi-berlin.mpg.de
This is under development. Configurations may alter. Requests or suggestions are very welcome.
14.5.1 Import
See the examples in the example/ase directory in the phonopy distribution package.
Pre-process
The information of this class object is found at the bottoem of this page.
In general case, unit conversion factor for phonon frequency has to be set by using the factor keyword. The factor
from the VASP unit to THz is the default value of factor. Some of the physical unit conversion factors may be
found in phonopy/units.py. More about the conversion factor is written here.
Force calculation
Run force calculations for the supercells. Then collect forces from the calculation results. The sets of forces has to be
given in nested list (sets_of_forces) as:
[ [ [ f_1x, f_1y, f_1z ], [ f_2x, f_2y, f_2z ], ... ], # first supercell
[ [ f_1x, f_1y, f_1z ], [ f_2x, f_2y, f_2z ], ... ], # second supercell
... ]
Post process
Band structure
q_start = np.array([0.0,0.0,0.0])
q_end = np.array([0.5,0.0,0.0])
band = []
for i in range(51):
band.append(q_start + ( q_end - q_start ) / 50 * i)
bands.append(band)
phonon.set_band_structure(bands)
phonon.plot_band_structure().show()
Mesh sampling
Set sampling mesh (set_mesh) in reciprocal space. The irreducible q-points and corresponding q-point weights,
eigenvalues, and eigenvectors are obtained by get_mesh. mesh gives the sampling mesh with Monkhorst-Pack
scheme. The keyword shift gives the fractional mesh shift with respect to the neighboring grid points.
mesh = [20, 20, 20]
phonon.set_mesh(mesh)
qpoints, weights, frequencies, eigvecs = phonon.get_mesh()
Before starting mesh sampling has to be finished. Then set parameters (set_total_DOS or set_partial_DOS)
and write the results into files (write_total_DOS and write_partial_DOS). In the case of PDOS, the eigen-
vectors have to be calculated in the mesh sampling. get_total_DOS and get_partial_DOS are under prepara-
tion.
phonon.set_total_DOS()
phonon.plot_total_DOS().show()
Thermal properties
Before starting the thermal property calculation, the mesh sampling calclation has to be done in the THz unit. The unit
conversion factor for phonon frequency is set in the pre-process of Phonopy with the factor keyword. Calculation
range of temperature is set by the parameters set_thermal_properties. Helmholtz free energy, entropy, heat
capacity at contant volume at temperaturs are obtained by get_thermal_properties, where the results are
given as a tuple of temperaturs, Helmholtz free energy, entropy, and heat capacity.
phonon.set_thermal_properties(t_step=10,
t_max=1000,
t_min=0)
for t, free_energy, entropy, cv in np.array(phonon.get_thermal_properties()).T:
print ("%12.3f " + "%15.7f" * 3) % ( t, free_energy, entropy, cv )
phonon.plot_thermal_properties().show()
To apply non-analytical term correction, Born effective charge tensors for all atoms in primitive cell, dielectric con-
stant tensor, and the unit conversion factor have to be correctly set. The tensors are given in Cartesian coordinates.
The following example is that can be used for NaCl.
born = [[[1.08703, 0, 0],
[0, 1.08703, 0],
[0, 0, 1.08703]],
[[-1.08672, 0, 0],
[0, -1.08672, 0],
[0, 0, -1.08672]]]
epsilon = [[2.43533967, 0, 0],
14.5.3 Eigenvectors
Eigenvectors are given as the column vectors. Internally phonopy uses numpy.linalg.eigh and eigh is
a wrapper of LAPACK. So eigenvectors follow the convention of LAPACK, which can be shown at
http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eigh.html
Eigenvectors corresponding to phonopy yaml output are obtained as follows.
Band structure
Mesh sampling
Variables
The following variables are implemented in the Atoms class of Phonopy in atoms.py.
lattice_vectors
scaled_positions
positions
symbols
numbers
masses
Methods
set_cell( lattice_vectors )
get_cell()
set_positions( positions )
get_positions()
set_scaled_positions( scaled_positions )
get_scaled_positions()
set_masses( masses )
get_masses()
set_chemical_symbols( symbols )
get_chemical_symbols()
get_number_of_atoms()
get_atomic_numbers()
get_volume()
These methods are compatible to the ASE’s Atoms class. The arguments have to be set in the structures shown in
Variables.
The usable keywords in the initialization are:
symbols=None,
positions=None,
numbers=None,
masses=None,
scaled_positions=None,
cell=None
Primitive matrix
Primitive matrix Mp is a tranformation matrix from lattice vectors to those of a primitive cell if there exists the
primitive cell in the lattice vectors. Following a crystallography convention, the transformation is given by
(ap bp cp ) = (au bu cu )Mp
where au , bu , and cu are the column vectors of the original lattice vectors, and ap , bp , and cp are the column vectors of
the primitive lattice vectors. Be careful that the lattice vectors of the Atoms class are the row vectors (lattice_vectors).
Therefore the phonopy code, which relies on the Atoms class, is usually written such as
primitive_lattice = np.dot( original_lattice.T, primitive_matrix ).T,
or equivalently,
primitive_lattice = np.dot( primitive_matrix.T, original_lattice )
Supercell matrix
Supercell matrix Ms is a tranformation matrix from lattice vectors to those of a super cell. Following a crystallography
convention, the transformation is given by
(as bs cs ) = (au bu cu )Ms
where au , bu , and cu are the column vectors of the original lattice vectors, and as , bs , and cs are the column vectors of
the supercell lattice vectors. Be careful that the lattice vectors of the Atoms class are the row vectors (lattice_vectors).
Therefore the phonopy code, which relies on the Atoms class, is usually written such as
supercell_lattice = np.dot( original_lattice.T, supercell_matrix ).T,
or equivalently,
supercell_lattice = np.dot( supercell_matrix.T, original_lattice )
Symmetry search tolerance (often the name symprec is used in phonopy) is used to determine symmetry operations
of the crystal structures. The physical unit follows that of input crystal structure.
FIFTEEN
FORMULATIONS
where r(jl) is the point of the j-th atom in the l-th unit cell and n and N are the number of atoms in a unit cell and
the number of unit cells, respectively. A force and a second-order force constant Φαβ are given by
∂V
Fα (jl) = −
∂rα (jl)
and
∂2V ∂Fβ (j 0 l0 )
Φαβ (jl, j 0 l0 ) = 0 0
=− ,
∂rα (jl)∂rβ (j l ) ∂rα (jl)
respectively, where α, β, ..., are the Cartesian indices, j, j 0 , ..., are the indices of atoms in a unit cell, and l, l0 , ..., are
the indices of unit cells. In the finite displacement method, the equation for the force constants is approximated as
Fβ (j 0 l0 ; ∆rα (jl)) − Fβ (j 0 l0 )
Φαβ (jl, j 0 l0 ) ' − ,
∆rα (jl)
where Fβ (j 0 l0 ; ∆rα (jl)) are the forces on atoms with a finite displacement ∆rα (jl) and usually Fβ (j 0 l0 ) ≡ 0.
F = −UP,
Φxx Φxy Φxz
P = Φyx Φyy Φyz ,
Φzx Φzy Φzz
71
phonopy manual, Release 1.7.4
U = ∆rx ∆ry ∆rz .
The matrix equation is expanded for number of forces and displacements as follows:
F1 U1
F2 U2
= − P.
.. ..
. .
With sufficient number of atomic displacements, this may be solved by pseudo inverse such as
+
U1 F1
U2 F2
P = − .
.. ..
. .
Required number of atomic displacements to solve the simultaneous equations may be reduced using site-point sym-
metries. The matrix equation can be written using a symmetry operation as
R̂(F) = −R̂(U)P,
where R̂ is the site symmetry operation centring at r(jl). R̂(F) and R̂(U) are defined as RF(Rˆ−1 (j 0 l0 )) and RU,
respectively, where R is the matrix representation of the rotation operation. The combined simultaneous equations are
built such as
(1) (1)
F1 U1
F(2) .
1 ..
.
. (2)
. U1
(1) = − (1) P.
F2 U2
(2) (2)
F U
2 2
.. ..
. .
where the superscript with parenthesis gives the index of site-symmetry operations. This is solved by pseudo inverse.
where m is the atomic mass and q is the wave vector. An equation of motion is written as
X
Dαβ (jj 0 , q)eβ (j 0 , qν) = mj [ω(qν)]2 eα (j, qν).
j0β
where the eigenvector of the band index ν at q is obtained by the diagonalization of D(q):
X
eα (j 0 , qν)∗ Dαβ (jj 0 , q)eβ (j 0 , qν 0 ) = [ω(qν)]2 δνν 0 .
jαj 0 β
where ↠and â are the creation and annihilation operators of phonon, h̄ is the reduced Planck constant, and t is the
time.
To correct long range interaction of macroscopic electric field induced by polarization of collective ionic motions
near the Γ-point, non-analytical term is added to dynamical matrix (Non-analytical term correction). At q → 0, the
dynamical matrix with non-analytical term is given by,
∗
][ γ 0 qγ 0 Zj∗0 ,γ 0 β ]
P P
0 N 0 4π [ γ qγ Zj,γα
Dαβ (jj , q → 0) = Dαβ (jj , q → 0) + √ P ∞ .
mj mj Ω0 αβ qα αβ qβ
Phonon frequencies at general q-points are interpolated by the method of Wang et al. (Interpolation scheme at general
q-points with non-analytical term correction).
1
n=
exp(h̄ω(qν)/kB T ) − 1
X 1 1
E= h̄ω(qν) +
qν
2 exp(h̄ω(qν)/kB T ) − 1
∂E
CV =
∂T V
X h̄ω(qν) 2 exp(h̄ω(qν)/kB T )
= kB
qν
kB T [exp(h̄ω(qν)/kB T ) − 1]2
Y exp(−h̄ω(qν)/2kB T )
Z = exp(−ϕ/kB T )
qν
1 − exp(−h̄ω(qν)/kB T )
F = −kB T ln Z
1X X
=ϕ+ h̄ω(qν) + kB T ln 1 − exp(−h̄ω(qν)/kB T )
2 qν qν
15.5.6 Entropy
∂F
S=−
∂T
1 X X
= h̄ω(qν) coth(h̄ω(qν)/2kB T ) − kB ln [2 sinh(h̄ω(qν)/2kB T )]
2T qν qν
From Eq. (10.71) in the book “Thermodynamics of Crystal”, atomic displacement, u, is written by
21 X
h̄ − 12
uα (jl, t) = âν (q) exp(−iων (q)t) + â†ν (−q) exp(iων (q)t) exp(iq · r(jl))eα
[ων (q)] ν (j, q)
2N mj q,ν
where j and l are the labels for the j-th atomic position in the l-th unit cell, t is the time, α is an axis (a Cartesian axis
in the default behavior of phonopy), m is the atomic mass, N is the number of the unit cells, q is the wave vector, ν is
the index of phonon mode. e is the polarization vector of the atom jl and the band ν at q. r(jl) is the atomic position
and ω is the phonon frequency. ↠and â are the creation and annihilation operators of phonon. The expectation value
of the squared atomic displacement is calculated as,
h̄ X
|uα (jl, t)|2 = ων (q)−1 (1 + 2nν (q))|eα 2
ν (j, q)| ,
2N mj q,ν
where T is the temperature, and kB is the Boltzmann constant. The equation is calculated using the commutation
relation of the creation and annihilation operators and the expectation values of the combination of the operations,
e.g.,
h̄ X
B(j, t) = ων (q)−1 (1 + 2nν (q))eν (j, q) ⊗ e∗ν (j, q).
2N mj q,ν
This is a symmetry matrix and diagonal elements are same as mean square displacement calculated along Cartesian x,
y, z directions.
In phonopy, eigenvectors are calculated in the Cartesian axes that are defined in the input structure file. Mean square
displacement along an arbitrary axis is obtained projecting eigenvectors in the Cartesian axes as follows:
h̄ X
|u(jl, t)|2 = ων (q)−1 (1 + 2nν (q))|n̂ · eν (j, q)|2
2N mj q,ν
15.7.1 Method
In the previous versions, group velocity was calculated using finite difference method:
1 ∂D(q)
e(qν) ' 1 ∆D(q)
vg (qν) = e(qν) e(qν) e(qν) .
2ω(qν) ∂q 2ω(qν) ∆q
Group velocity calculation with the finite difference method is still able to be activated using GV_DELTA_Q tag or
-gv_delta_q option. ∆q = (∆qx , ∆qy , ∆qz ) is described in Cartesian coordinated in reciprocal space. In the
implementation, central difference is employed, and +∆qα and −∆qα are taken to calculate group velocity, where α
is the Cartesian index in reciprocal space. ∆qα is specified in the unit of reciprocal space distance (−1 for the default
case) by --gv_delta_q option or GV_DELTA_Q tag.
SIXTEEN
Phonopy development started to replace and extend fropho (http://fropho.sourceforge.net/). The implementation of
fropho is also based on Parlinski-Li-Kawazoe method. Although fropho was implemented from scratch except for the
symmetry finder and input file parser, to start the development, it was motivated by the existence of PHON code. The
important part of the implementation is the symmetry handling. In fropho, at first the symmetry finder in Abinit code
was employed, but later the symmetry finder was replaced by spglib (http://spglib.sourceforge.net/).
77
phonopy manual, Release 1.7.4
SEVENTEEN
REFERENCES
• K. Parlinski, Z. Q. Li, and Y. Kawazoe, Phys. Rev. Lett. 78, 4063 (1997)
Parlinski-Li-Kawazoe method is based on the supercell approach with the finite displacement method. The calculation
and symmetrization of force constants are executed by using singular-value decomposition (pseudo-inverse). The key
of this method would be the matrix formulations of equations, which leads to the coherent and flexible implementation.
• Y Wang , J J Wang , W Y Wang , Z G Mei , S L Shang , L Q Chen and Z K Liu, J. Phys.: Condens. Matter. 22,
202201 (2010)
Interpolation scheme at getenral q-points with non-analytical term correction is implemented according to Wang et al
(--nac option).
79
phonopy manual, Release 1.7.4
17.2.2 DFPT
• Xavier Gonze and Changyol Lee, Phys. Rev. B 55, 10355 (1997)
The most famous implementation is Abinit. Currently there are many implementations of DFPT. VASP can calculate
force constants using DFPT however only at Gamma-point.
EIGHTEEN
CHANGE LOG
• Thermal displacement matrix is implemented. See TDISPMAT, TMAX, TMIN, TSTEP and Mean square dis-
placement.
• PDOS with projection along arbitrary direction was implemented. See PROJECTION_DIRECTION.
• partial_dos.dat format was changed. XYZ projected PDOS is not output. Instead atom projected PDOS
(sum of XYZ projected PDOS) is written. See Output files.
• DOS and PDOS python interface was modified. The keyword of omega_something is changed to
freq_something.
• gruneisen didn’t run because it didn’t follow the move of the file_IO.py file location. This is fixed.
• The formula of non-analytical term correction implemented in phonopy is not translational invariant in reciprocal
space. This induces tiny difference of the choice of equivalent q-points being different by reciprocal primitive
vectors. Now in the mesh sampling mode (MP), q-points are automatically moved to inside first-Brillouin-zone.
• In the mesh sampling mode, consistency of symmetry of mesh numbers to crystal symmetry is checked. If
the symmetry disagrees with crystal symmetry, mesh symmetrization (equivalent to MESH_SYMMETRY =
.FALSE.) is disabled.
• Wien2k interface is updated to adapt Wien2k-13.
• Fix the problem that only Vinet EOS worked in phonopy-qha.
• Fix. Segmentation fault happens in some specific systems (e.g. Kubuntu 12.04 32bit) due to a different behavior
of numpy array creation.
• Group velocity for degenerate phonon mode is calculated slightly different from older version and now it is
symmetrized by site-symmetry of q-point.
81
phonopy manual, Release 1.7.4
• The tag CHARACTER_TABLE was renamed to IRREPS (IRREPS), and the option of --ct was re-
named to --irreps as well. To show Ir-representations along with characters, SHOW_IRREPS tag (or
--show_irreps option) is used. The output file name was also renamed to irreps.yaml. In the ir-reps
calculation, display and file outputs were modified to show the arguments of complex value characters.
• Numpy array types of ‘double’ and ‘intc’ for those arrays passed to numpy C-API are used.
• thermal_displacement.py is slightly modified for the preparation to include thermal displacement ma-
trix.
• Symmetry finder update (spglib 1.4.2).
• Group velocity can be calculated using GROUP_VELOCITY tag or --gv option (Group velocity).
• Non-analytical term correction is implemented in C, which accelerates the calculation speed.
• Arbitral projection direction is allowed for thermal displacements calculation. (TDISP, TMAX, TMIN, TSTEP)
• A new tag WRITEDM and an option –writedm are implemented. Dynamical matrices are written into
qpoints.yaml when this is used togather with the QPOINTS mode. (WRITEDM)
• Implementation of database of character table for another type of point group -3m.
• A new option --irreps or IRREPS tag (Experimental).
• character_table.yaml output.
• Eigenvectors output in‘‘modulation.yaml‘‘ was recovered.
• Bug fix on showing the values of thermal properties. No bug in plot and yaml.
• Avoid list comprehension with else statement, because it is not supported in old python versions.
• Arguments of get_modulation in Phonopy module were modified. The phase factor is now included in
phonon_modes.
• Class Phonopy was refactored. All private variables were renamed as those starting with an underscore. Some
basic variables are obtained with the same variable names without the underscode, which was implemented by
the function property.
• The labels of segments of band structure plot are specified by BAND_LABELS (BAND_LABELS).
• --band option is implemented.
• GAMMA_CENTER tag and --gc, --gamma_center option are implemented (MP).
• phonopy-qha was polished. Most of the code was moved to phonopy/qha/__init__.py.
• Phonopy::get_mesh and Phonopy::get_band_structure were modified. Instead of eigenvalues,
frequencies are returned.
• The order of return values of Phonopy::get_thermal_properties was changed as numpy arrays of
temperatures, Helmhotlz free energies, entropies, and heat capacities at constant volume.
• Arguments of the class ThermalProperties, Dos, and PartialDOS were changed. Instead of eigenval-
ues, frequencies are used.
• The default sigma value used for total and partial DOS was changed to (max_frequency - min_frequency) / 100.
• Symmetry finder update.
• settings.py is moved to phonopy/cui/Phonopy. The configure parser from a file and options is mod-
ified.
• Usage of MODULATION tag was changed.
• The option --nosym is available on the manual.
• Wien2k interface is updated (Wien2k & phonopy calculation), but this is still quite experimental support.
• More information is involved in disp.yaml. Along this modification, supercells with displacements can be
created solely from disp.yaml using dispmanager.
• Instead of TRANSLATION tag, FC_SYMMETRY is created (FC_SYMMETRY).
• Closing support of --fco option.
• Add a few more examples in the example directory.
• Symmetry finder update
• propplot is updated for the --gnuplot option.
The example of FORCE_SETS was wrong and was fixed. The explanation of the document is correct.
• In the setting tag BAND, now comma , can be used to disconnect the sequence of band paths (Band structure
related tags).
• dispmanager, an auxiliary tool for modifying disp.yaml, is developed (dispmanager).
• Symmetry finder update to spglib-1.0.3.1. Almost perfect casting to a Bravais lattice is achieved using
--symmetry option.
• The setting tags TRANSLATION, PERMUTATION, and MP_REDUCE are ceased.
• Big phonopy-interface change was imposed. Some of filenames and formats of input and output files are mod-
ified. There is no default setting filename like INPHON (setting file is passed as the first argument). Some of
tag names and those usage are also modified. Please first check Examples for the new usage.
List of changes:
– Setting file has to be passed to phonopy as the first argunment.
– FORCES is replaced by FORCE_SETS (Force file (FORCE_SETS)).
– DISP is replaced by disp.yaml.
– LSUPER tag is removed. Please use -d option.
– NDIM and MATDIM tags are replaced by DIM tag (DIM).
– Band structure setting tags are changed to BAND tag (Band structure related tags).
– DOS tag is renamed to DOS_RANGE tag (DOS related tags).
These changes are applied only for the phonopy interface. Internal simulation code has not been touched, so
physical results would not be affected. If you have any questions, please send e-mail to phonopy mailinglist.
• phonopy-FHI-aims had not worked in some of previous versions. Now it works by Jörg Meyer and Christian
Carbogno.
• Directory structure of the code was changed.
• Symmetry finder update to spglib-1.0.2
• [Experimental] Finding Bravais lattice using --symmetry option.
• [Experimental] Modulated structure along specified phonon modes by MODULATION tag (Create modulated
structure).
• Animation file output update (Create animation file). The ANIME tag format was changed.
• phonopy-qha is updated. A few options are added (Options). Calculation under pressure is supported by
--pressure option.
• Primitive cell search and Bravais lattice output are integrated into the symmetry search with --symmetry
option.
• There were mistakes in the documents for the PRIMITIVE_AXIS and MATDIM. The 9 values are read from
the first three to the last three as respective rows of the matrices defined.
• The new tag ANIME_TYPE supports xyz and xyz_jmol formats by Jörg Meyer and Christian Carbogno, and
also A set of ‘‘POSCAR‘ files corresponding to animation frames.
• Fix bugs in trim_cell and Primitive.__supercell_to_primitive_map in cells.py. When
Ms−1 Mp is not symmetric, the supercell was not created correctly.
• phonopy-FHI-aims update by jm.
• The code on non-analytical term correction is included in the DynamicalMatrix class. Data sets read by
parse_BORN are set by set_non_analytical_term and gotten by get_non_analytical_term.
The q-vector direction (only direction is used in the non-analytical term correction) is set by
set_q_non_analytical_term. However for emprical damping function, some distance is used, i.e.,
when a q-point is getting away, non-analytical term is weaken. For this purpose, the second argument of
set_q_non_analytical_term is used.
At the same time, a small problem on the previous implementation was found. When a reduced q-point is out
of the first Brillouin zone, it is not correctly handled. Currently it is fixed so as that when absolute values of
elements of the reduced q-point are over 0.5, they are reduced into -0.5 < q < 0.5.
[Attention] The previous --nac option is moved to --nac_old. --nac is used for different method of the
non-analytical term correction at general q-points. This will be documented soon.
• Bug fix on write_FORCES in file_IO.py. When order of displacements in DISP file is not ascending
order of atom indices, it was not correctly re-ordered. Because the default order of phonopy is ascending order,
usually there is no problem for the most users.
• phonopy-FHI-aims
– adapted to extensions of dynamical_matrix with respect to non-analytical corrections
– added support for animation infrastructure
– moved several options to control.in
by Jörg Meyer and Christian Carbogno
• phonopy-FHI-aims adapted to split of dos array into the two seperate omega, dos arrays in TotalDOS class
by Jörg Meyer.
• The methods of get_partial_DOS and get_total_DOS are added to the Phonopy class.
• spglib bug was fixed. If the crystal structure has non-standard origin, the translation was not correctly handled.
This problem happened after version 0.9.0.
• spglib update
• Phonopy module (__init.py__) is heavily revised and the script phonopy is rewritten using the phonopy
module. Therefore there may be bugs. Be careful. Document of the phonopy module will be updated gradually.
• A small Wien2k interface document is added (Wien2k & phonopy calculation).
• A script phonopy-FHI-aims and its examples are added by Jörg Meyer.
• spglib update
• spglib update
• Animation mode (Create animation file)