Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Release 1.7.4
Atsushi Togo
CONTENTS
.
.
.
.
.
1
1
3
7
9
9
11
11
11
12
Work flow
15
17
19
19
20
Features
6.1 Band structure . . . . . . . . . . . . . . .
6.2 Density of states . . . . . . . . . . . . . .
6.3 Thermal properties . . . . . . . . . . . . .
6.4 Animation . . . . . . . . . . . . . . . . .
6.5 Plot and output . . . . . . . . . . . . . . .
6.6 Calculation of mode Grneisen parameters
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
23
23
23
23
23
23
Input files
7.1 Setting file . . . . . . . .
7.2 Structure file (POSCAR) .
7.3 Force file (FORCE_SETS)
7.4 FORCE_CONSTANTS . .
7.5 QPOINTS (optional) . . .
7.6 BORN (optional) . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
25
25
26
27
27
28
Output files
8.1 List of files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2 How to read phonopy YAML files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
29
30
Examples
1.1 Si . . . . . . . . . . . . . . . . . . . . . . . .
1.2 NaCl . . . . . . . . . . . . . . . . . . . . . .
1.3 MgB2 characters of ireducible representations
1.4 Al-QHA . . . . . . . . . . . . . . . . . . . .
1.5 Si-gruneisen . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Setting tags
9.1 Basic tags . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2 Displacement creation tags . . . . . . . . . . . . . . . . .
9.3 Band structure related tags . . . . . . . . . . . . . . . . .
9.4 DOS related tags . . . . . . . . . . . . . . . . . . . . . .
9.5 Thermal properties related tags . . . . . . . . . . . . . .
9.6 Thermal displacements . . . . . . . . . . . . . . . . . . .
9.7 Specific q-points . . . . . . . . . . . . . . . . . . . . . .
9.8 Non-analytical term correction . . . . . . . . . . . . . . .
9.9 Group velocity . . . . . . . . . . . . . . . . . . . . . . .
9.10 Symmetry . . . . . . . . . . . . . . . . . . . . . . . . .
9.11 Force constants . . . . . . . . . . . . . . . . . . . . . . .
9.12 Create animation file . . . . . . . . . . . . . . . . . . . .
9.13 Create modulated structure . . . . . . . . . . . . . . . . .
9.14 Characters of irreducible representations of phonon modes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
33
34
35
36
38
38
39
40
40
40
41
41
43
43
10 Command options
10.1 Help (-h or --help) . . . .
10.2 Create FORCE_SETS . . . .
10.3 Create FORCE_CONSTANTS
10.4 Graph plotting . . . . . . . .
10.5 Calculate DOS . . . . . . . .
10.6 Unit conversion factor . . . .
10.7 Log level . . . . . . . . . . .
10.8 Crystal symmetry . . . . . . .
10.9 Input cell . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
45
46
46
47
47
47
47
48
48
48
11 Auxiliary tools
11.1 bandplot . . .
11.2 pdosplot . . .
11.3 propplot . . .
11.4 dispmanager
11.5 outcar-born
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
51
51
51
51
52
52
53
53
55
57
57
59
14 Interfaces
14.1 VASP & phonopy calculation . . . .
14.2 VASP-DFPT & phonopy calculation .
14.3 Wien2k & phonopy calculation . . .
14.4 FHI-aims & phonopy calculations . .
14.5 Using phonopy as a python module .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
61
61
61
63
63
64
15 Formulations
15.1 Second-order force constants . . . . .
15.2 Modified Parlinski-Li-Kawazoe method
15.3 Dynamical matrix . . . . . . . . . . .
15.4 Non-analytical term correction . . . . .
15.5 Thermodynamic properties . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
71
71
71
72
73
73
ii
74
75
77
77
17 References
17.1 Method used in phonopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.2 Other methods for calculating force constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.3 For the study of basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
79
79
80
18 Change Log
18.1 Oct-3-2013: Version 1.7.4 . .
18.2 Sep-17-2013: Version 1.7.3 .
18.3 Aug-4-2013: Version 1.7.2 . .
18.4 July-14-2013: Version 1.7.1 .
18.5 Jun-21-2013: Version 1.7 . .
18.6 Apr-13-2013: Version 1.6.4 .
18.7 Feb-7-2013: Version 1.6.3 . .
18.8 Nov-13-2012: Version 1.6.2 .
18.9 Nov-4-2012: Version 1.6.1 . .
18.10 Oct-22-2012: Version 1.6 . .
18.11 June-29-2012: Version 1.5 . .
18.12 May-22-2012: Version 1.4.2 .
18.13 May-21-2012: Version 1.4.1 .
18.14 May-13-2012: Version 1.4 . .
18.15 Mar-20-2012: Version 1.3 . .
18.16 Oct-13-2011: Version 1.2.1 .
18.17 Oct-12-2011: Version 1.2 . .
18.18 Sep-19-2011: Version 1.1 . .
18.19 Sep-5-2011: Version 1.0 . . .
18.20 Aug-8-2011: Version 0.9.6 . .
18.21 Jun-7-2011: Version 0.9.5.1 .
18.22 Errata of document . . . . . .
18.23 Jun-3-2011: Version 0.9.5 . .
18.24 Errata of document . . . . . .
18.25 Apr-18-2011: Version 0.9.4.2
18.26 Feb-26-2011: Version 0.9.4.1
18.27 Feb-20-2011: Version 0.9.4 .
18.28 Jan-21-2011: Version 0.9.3.3 .
18.29 Jan-12-2011: Version 0.9.3.2 .
18.30 Errata of document . . . . . .
18.31 Dec-30-2010: Version 0.9.3.1
18.32 Dec-5-2010: Version 0.9.3 . .
18.33 Nov-26-2010: Version 0.9.2 .
18.34 Sep-22-2010: Version 0.9.1.4
18.35 Aug-24-2010: Version 0.9.1.3
18.36 June-10-2010: Version 0.9.1.2
18.37 May-11-2010: Version 0.9.1.1
18.38 May-10-2010: Version 0.9.1 .
18.39 Apr-12-2010: Version 0.9.0.2
18.40 Apr-12-2010: Version 0.9.0.1
18.41 Apr-10-2010: Version 0.9.0 .
18.42 Mar-10-2010: Version 0.7.4 .
81
81
81
81
82
82
82
82
82
83
83
83
83
83
83
84
84
84
85
85
85
85
85
85
86
86
86
86
87
87
87
87
87
87
88
88
88
89
89
89
89
89
89
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
iii
18.43
18.44
18.45
18.46
18.47
iv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
89
89
90
90
90
CHAPTER
ONE
EXAMPLES
Example files are stored in the example directory of distributed package.
1.1 Si
1.1.1 FORCE_SETS file creation for VASP
% phonopy -f vasprun.xml
_
_ __ | |__
___ _ __
___
_ __ _
_
| _ \| _ \ / _ \| _ \ / _ \ | _ \| | | |
| |_) | | | | (_) | | | | (_) || |_) | |_| |
| .__/|_| |_|\___/|_| |_|\___(_) .__/ \__, |
|_|
|_|
|___/
0.9.4
counter (file index): 1 (1)
FORCE_SETS has been created.
_
___ _ __
__| |
/ _ \ _ \ / _ |
| __/ | | | (_| |
\___|_| |_|\__,_|
1.1.2 DOS
% phonopy -p mesh.conf
_
_ __ | |__
___ _ __
___
_ __ _
_
| _ \| _ \ / _ \| _ \ / _ \ | _ \| | | |
| |_) | | | | (_) | | | | (_) || |_) | |_| |
| .__/|_| |_|\___/|_| |_|\___(_) .__/ \__, |
|_|
|_|
|___/
0.9.4
Mesh sampling mode
Settings:
816
C_v [J/K/mol]
0.0000000
0.0652014
0.5801980
1.9566658
3.9391312
6.0729958
8.1398560
10.1081936
12.0151390
13.8988294
15.7763729
Chapter 1. Examples
1.2 NaCl
1.2.1 Band structure
% 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
Chapter 1. Examples
1.2.3 PDOS
% phonopy -p pdos.conf
_
_ __ | |__
___ _ __
___
_ __ _
_
| _ \| _ \ / _ \| _ \ / _ \ | _ \| | | |
| |_) | | | | (_) | | | | (_) || |_) | |_| |
| .__/|_| |_|\___/|_| |_|\___(_) .__/ \__, |
|_|
|_|
|___/
1.6.2
Mesh sampling mode
Settings:
Sampling mesh: [41 41 41]
Supercell: [2 2 2]
Primitive axis:
[ 0.
0.5 0.5]
[ 0.5 0.
0.5]
[ 0.5 0.5 0. ]
Spacegroup: Fm-3m (225)
Calculating force constants...
Number of irreducible q-points:
_
___ _ __
__| |
/ _ \ _ \ / _ |
| __/ | | | (_| |
\___|_| |_|\__,_|
1.2. NaCl
1771
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
Mesh sampling mode
Settings:
Non-analytical term correction: on
Sampling mesh: [41 41 41]
Supercell: [2 2 2]
Primitive axis:
[ 0.
0.5 0.5]
[ 0.5 0.
0.5]
[ 0.5 0.5 0. ]
Spacegroup: Fm-3m (225)
Calculating force constants...
Number of irreducible q-points: 1771
_
___ _ __
__| |
/ _ \ _ \ / _ |
| __/ | | | (_| |
\___|_| |_|\__,_|
Chapter 1. Examples
2
--------1 0 0
0 -1 0
0 0 -1
3
-------1 -1 0
1 0 0
0 0 1
4
--------1 1 0
-1 0 0
0 0 -1
5
-------0 -1 0
1 -1 0
0 0 1
6
-------0 1 0
-1 1 0
0 0 -1
7
--------1 0 0
0 -1 0
0 0 1
8
-------1 0 0
0 1 0
0 0 -1
9
--------1 1 0
-1 0 0
0 0 1
10
-------1 -1 0
1 0 0
0 0 -1
11
-------0 1 0
-1 1 0
0 0 1
12
-------0 -1 0
1 -1 0
0 0 -1
13
-------0 -1 0
-1 0 0
0 0 -1
14
-------0 1 0
1 0 0
0 0 1
15
--------1 0 0
-1 1 0
0 0 -1
16
-------1 0 0
1 -1 0
0 0 1
17
--------1 1 0
0 1 0
0 0 -1
18
-------1 -1 0
0 -1 0
0 0 1
19
-------0 1 0
1 0 0
0 0 -1
20
-------0 -1 0
-1 0 0
0 0 1
21
-------1 0 0
1 -1 0
0 0 -1
22
--------1 0 0
-1 1 0
0 0 1
23
-------1 -1 0
0 -1 0
0 0 -1
24
--------1 1 0
0 1 0
0 0 1
Transformation matrix:
1.000
0.000
0.000
0.000
1.000
0.000
0.000
0.000
1.000
i
--------1 0 0
0 -1 0
0 0 -1
C6
-------1 -1 0
1 0 0
0 0 1
S3
--------1 1 0
-1 0 0
0 0 -1
C3
-------0 -1 0
1 -1 0
0 0 1
S6
-------0 1 0
-1 1 0
0 0 -1
C2
--------1 0 0
0 -1 0
0 0 1
sgh
-------1 0 0
0 1 0
0 0 -1
C3
--------1 1 0
-1 0 0
0 0 1
S6
-------1 -1 0
1 0 0
0 0 -1
C6
-------0 1 0
-1 1 0
0 0 1
S3
-------0 -1 0
1 -1 0
0 0 -1
C2
-------0 -1 0
-1 0 0
0 0 -1
sgd
-------0 1 0
1 0 0
0 0 1
C2
--------1 0 0
-1 1 0
0 0 -1
sgv
-------1 0 0
1 -1 0
0 0 1
C2
--------1 1 0
0 1 0
0 0 -1
sgd
-------1 -1 0
0 -1 0
0 0 1
C2
-------0 1 0
1 0 0
0 0 -1
sgv
-------0 -1 0
-1 0 0
0 0 1
C2
-------1 0 0
1 -1 0
0 0 -1
sgd
--------1 0 0
-1 1 0
0 0 1
C2
-------1 -1 0
0 -1 0
0 0 -1
sgv
--------1 1 0
0 1 0
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 1.000 1.000 -1.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
Chapter 1. Examples
-1.000
-0.000
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
See Calculation of mode Grneisen parameters.
1.4. Al-QHA
10
Chapter 1. Examples
CHAPTER
TWO
You should find the files, SPOSCAR, disp.yaml, and POSCAR-{number} as follows:
% ls
disp.yaml
POSCAR
POSCAR-001
POSCAR-002
POSCAR-003
SPOSCAR
SPOSCAR is the perfect supercell structure, disp.yaml contains the information on displacements, and
POSCAR-{number} are the supercells with atomic displacements. POSCAR-{number} corresponds to the different atomic displacements written in disp.yaml.
=
=
=
=
=
=
=
=
=
=
Accurate
-1
500
1.0e-08
0; SIGMA = 0.01
38
.FALSE.
.TRUE.
.FALSE.
.FALSE.
11
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
In either case, by setting the -s option, the plot is going to be saved in the PDF format. If you dont need to plot DOS,
the (partial) DOS is just calculated using the --dos option.
12
2.3.1 Details
Following files are required in your working directory.
POSCAR, and FORCE_SETS or FORCE_CONSTANTS
disp.yaml is required to create FORCE_SETS.
In the case of finite difference approach, there are three steps.
1. Create supercells and introduce atomic displacements. Each supercell contains one atomic displacement. It is
done by using -d option with --dim option that specifies supercell dimension. The files of supercells with
atomic displacements like as POSCAR-001, POSCAR-002, ..., are created in current directory (the file format
and names are different in WIEN2k mode.) by running phonopy. The files disp.yaml and SPOSCAR are also
created. The file SPOSCAR is the perfect supercell that contains no atomic displacement. This file is not usually
used.
2. Calculate forces on atoms of the supercells with atomic displacements. Currently phonopy has VASP and
WIEN2k interfaces to create FORCE_SETS. After obtaining forces on atoms that calculated by some calculator (its out of phonopy), the forces are summarized in FORCE_SETS file following the format.
3. Calculate phonon related properties. See Features.
If you already have force constants, the first and second steps can be omitted. However your force constants have to be
converted to the format that phonopy can read. The VASP interface to convert force constants is prepared in phonopy.
2.3. Post-process
13
14
CHAPTER
THREE
WORK FLOW
Work flow of phonopy is shown schematically. There are two ways to calculate, (1) atomic forces from finite displacements 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
16
CHAPTER
FOUR
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
18
CHAPTER
FIVE
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
To install ubuntu server, set the install image as the virtual CD device from Settings -> Storage, and click OK.
20
Start the virtual machine, then the installation of Ubuntu linux will start.
In the install process, you may just click continue, ..., install, etc. The computers 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
% sudo apt-get upgrade
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:
21
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.
22
CHAPTER
SIX
FEATURES
6.1 Band structure
Phonon band structure is calculated for the specified band paths (Band structure related tags).
6.4 Animation
Phonon mode is visualized by animation. See Create animation file.
23
24
Chapter 6. Features
CHAPTER
SEVEN
INPUT FILES
7.1 Setting file
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
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
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)
26
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
1
2
-0.246720998398056
-0.000000000000000
-0.000000000000000
...
1 32
0.002646999982813
0.018011999883049
-0.000000000000000
2
1
-0.246720998398056
0.000000000000000
0.000000000000000
...
32 32
4.635786969900131
0.000000000000000
0.000000000000000
-0.000000000000000
4.635786969900130
-0.000000000000000
-0.000000000000000
-0.000000000000000
4.635786969900130
-0.000000000000000
0.018256999881458
-0.000000000000000
-0.000000000000000
-0.000000000000000
0.018256999881458
0.018011999883049
0.002646999982813
-0.000000000000000
-0.000000000000000
-0.000000000000000
0.035303999770773
0.000000000000000
0.018256999881458
0.000000000000000
0.000000000000000
0.000000000000000
0.018256999881458
0.000000000000000
4.635786969900130
0.000000000000000
0.000000000000000
0.000000000000000
4.635786969900130
7.4. FORCE_CONSTANTS
27
7.5.1 Example
512
-0.437500000000000
-0.312500000000000
-0.187500000000000
...
-0.437500000000000
-0.437500000000000
-0.437500000000000
-0.437500000000000
-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 Cartesian coordinates. The independent atoms can be found using the --symmetry option. If PRIMITIVE_AXIS is supposed 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
1.98 0.00
-0.99 0.00
...
28
0.00
0.00
0.00
0.00 2.00
0.00 1.98
0.00 -0.99
0.00
0.00
0.00
0.00
0.00
0.00
0.00 2.00
0.00 1.98
0.00 -0.99
CHAPTER
EIGHT
OUTPUT FILES
The output data are stored in the following files on the current directory.
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).
29
0.0000000000
0.0000000000
0.0000000000
0.0000000000
0.0000000000
0.0000000000
0.0000000000
0.0000000000
0.0000000000
0.0000000000
0.0000000004
0.0000000044
0.0000000370
0.0000002410
0.0000012239
0.0000000000
0.0000000000
0.0000000000
0.0000000000
0.0000000000
0.0000000000
0.0000000000
0.0000000000
0.0000000000
0.0000000000
0.0000000006
0.0000000066
0.0000000551
0.0000003596
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
u=A
(a, b, c)d
,
|(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.
30
nqpoint
natom
phonon
qposition
band
frequency
eigenvector
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.
Band structure mode
distance
In the band structure mode, this value means the distance from the origin in the reciprocal space of the
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
direction
displacement
31
32
CHAPTER
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.
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 dont 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 =
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
1 0 1
1 1 0
0
Ms = 1
1
1
0
1
1
1
0
where the rows correspond to the first three, second three, and third three sets of numbers, respectively. When lattice
parameters of unit cell are the column vectors of au , bu , and cu , those of supercell, as , bs , cs , are determined by,
(as bs cs ) = (au bu cu )Ms
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
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,
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.
34
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.
1/2 1/2 1
0 0 0
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
BAND_LABELS = X \Gamma L
35
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 doesnt 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
BAND_POINTS = 101
BAND_CONNECTION = .TRUE.
36
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 eigenvectors 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 coordinates, 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.
37
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.
38
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.
..
.
and Djj 0 is
Djj 0
xy
xy
xx
xx
xz
xz
Re(Djj
Im(Djj
Re(Djj
Im(Djj
Re(Djj
Im(Djj
0)
0)
0)
0)
0)
0)
yx
yx
yy
yy
yz
yz
= Re(Djj 0 ) Im(Djj 0 ) Re(Djj 0 ) Im(Djj 0 ) Re(Djj 0 ) Im(Djj 0 ) ,
zy
zy
zx
zx
zz
zz
Re(Djj
Im(Djj
Re(Djj
Im(Djj
Re(Djj
Im(Djj
0)
0)
0)
0)
0)
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
39
dynmat = np.array(dynmat)
eigvals, eigvecs, = np.linalg.eigh(dynmat)
frequencies = np.sqrt(np.abs(eigvals.real)) * np.sign(eigvals.real)
conversion_factor_to_THz = 15.633302
print frequencies * conversion_factor_to_THz
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
P1 symmetry is enforced to the input unit cell by setting SYMMETRY = .FALSE.
9.10.2 MESH_SYMMETRY
Symmetry search on the reciprocal sampling mesh is disabled by setting MESH_SYMMETRY = .FALSE..
40
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
ij = 0, for all j, , ,
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
ij =
2U
u
i uj
2U
uj u
i
=
ji
These symmetrizations break the symmetry conditions each other. Be careful that the other symmetries of force constants, i.e., the symmetry from crystal symmetry or rotational symmetry, are broken to force applying FC_SYMMETRY.
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.
There are V_SIM, ARC, XYZ, JMOL, and POSCAR settings. Those may be viewed by v_sim, gdis, jmol (animation), 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
The format of ANIME tag was modified after ver. 0.9.3.3.
41
For v_sim
ANIME = 0.5 0.5 0
The values are the q-point to be calculated. An animation file of anime.ascii is generated.
How to watch animation
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
0.5 0.5 0
42
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 filenames 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
MODULATION = 3 3 1, 1/3 1/3 0 1 2, 1/3 0 0 2 2
MODULATION = 3 3 1, 1/3 1/3 0 1 1 0, 1/3 1/3 0 1 1 90
43
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.
44
CHAPTER
TEN
COMMAND OPTIONS
Some of command-line options are equivalent to respective setting tags:
--amplitude (DISPLACEMENT_DISTANCE)
--anime (ANIME)
-d (CREATE_DISPLACEMENTS = .TRUE.
--dim (DIM)
--mp, --mesh (MP)
--band (BAND)
--band_points (BAND_POINTS)
--band_connection (BAND_CONNECTION = .TRUE.)
--eigvecs, --eigenvectors (EIGENVECTORS = .TRUE.)
--fits_debye_model (DEBYE_MODEL = .TRUE.)
--gc, --gamma_center (GAMMA_CENTER)
--gv, --group_velocity (GROUP_VELOCITY = .TRUE.)
--gv_delta_q (GV_DELTA_Q)
--irreps (IRREPS)
--show_irreps (SHOW_IRREPS)
--modulation (MODULATION)
--nac (NAC = .TRUE.)
--nosym (SYMMETRY = .FALSE.)
--nomeshsym (MESH_SYMMETRY = .FALSE.)
--pa, --primitive_axis (PRIMITIVE_AXIS)
--pd, --projection_direction (PROJECTION_DIRECTION)
--pdos (PDOS)
--readfc (FORCE_CONSTANTS = READ)
--sigma (SIGMA)
-t (TPROP)
--td (TDISP)
45
--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.
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 ...
46
This FORCE_CONSTANTS can be used instead of FORCE_SETS. For more details, please refer VASP-DFPT &
phonopy calculation.
10.4.2 -p -s
Result is plotted (saved) to PDF file.
% phonopy -p -s
47
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.2 -q or --quiet
No log is shown.
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.
48
10.9.2 --wien2k
This option with WIEN2k struct file, phonopy runs with the WIEN2k mode. In this mode, you dont 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
49
50
CHAPTER
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
Partial density of states (PDOS) are plotted.
-i option is used as
pdosplot -i 1 2 4 5, 3 6 -o pdos.pdf partial_dos.dat
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
11.4 dispmanager
This is used for two purposes.
The first argument is the displacement file (disp.yaml type). The default file name is disp.yaml.
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.
52
CHAPTER
TWELVE
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
156.7387309525
154.4138492700
152.2544070150
150.2790355600
148.4469296725
146.7037426750
145.1182305450
143.5676103350
142.1282086200
139.4989658225
Lines starting with # are ignored. The other arguments are the filenames of thermal_properties.yaml calculated 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
--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
The calculated values are written into files.
--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 quasiharmonic 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
vs
by
polynomial
fittings
of
Cv
and
Helmholtz free energy vs volume (helmholtz-volume.*). When --pressure option is specified, energy
offset of pV is added. See also the following section (Theory of quasi-harmonic approximation).
Volume vs T (volume-temperature.*)
Thermal expansion coefficient vs T (thermal_expansion.*)
54
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.
55
56
CHAPTER
THIRTEEN
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 Grneinen parameters.
A calculation on a reciprocal mesh is made by
57
--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 Grneinen parameters are set for band indices with ascending order of
phonon frequencies.
Mode Grneinen parameter may diverge around -point. In the above example for band paths, mode Grneinen
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.
58
(q) =
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:
D(q)
V
e(q)
e(q) .
(q) '
2[(q)]2
V
The gruneisen script requires three phonon calculations at corresponding three volume points. One is for eigenvectors at the equilibrium volume (V ) and the remaining two are for D(q) with slightly larger and smaller volumes
than V .
59
60
CHAPTER
FOURTEEN
INTERFACES
14.1 VASP & phonopy calculation
Please follow the page Tutorial using VASP as calculator and Examples.
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
IBRION
EDIFF
IALGO
ISMEAR
LREAL
ADDGRID
LWAVE
LCHARG
=
=
=
=
=
=
=
=
8
1.0e-08
38
0; SIGMA = 0.1
.FALSE.
.TRUE.
.FALSE.
.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
Band structure mode
Settings:
Force constants: read
Supercell: [2 2 2]
Primitive axis:
[ 0.
0.5 0.5]
[ 0.5 0.
0.5]
[ 0.5 0.5 0. ]
Spacegroup: Fm-3m (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]
62
In this example, 2x2x2 supercells are created. case.structS and case.structS-xxx (xxx are numbers) 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 created 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.
63
14.5.1 Import
After setting the phonopy python path, you can import it by
from phonopy import Phonopy
See the examples in the example/ase directory in the phonopy distribution package.
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.
64
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
Prepare dynamical matrix internally (set_post_process) with
primitive matrix (3x3 matrix, see Primitive matrix)
sets of forces
phonon.set_post_process([[0,0.5,0.5],[0.5,0,0.5],[0.5,0.5,0]], sets_of_forces)
Band structure
65
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 eigenvectors have to be calculated in the mesh sampling. get_total_DOS and get_partial_DOS are under preparation.
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 constant 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],
66
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
if eigvecs is not None:
for eigvecs_on_path in eigvecs:
for eigvecs_at_q in eigvecs_on_path:
for vec in eigvecs_at_q.T:
print vec
Mesh sampling
if eigvecs is not None:
for eigvecs_at_q in eigvecs:
for vec in eigvecs_at_q.T:
print vec
67
scaled_positions
positions
68
get_number_of_atoms()
get_atomic_numbers()
get_volume()
These methods are compatible to the ASEs 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
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 )
69
70
CHAPTER
FIFTEEN
FORMULATIONS
15.1 Second-order force constants
Potential energy of phonon system is represented as functions of atomic positions:
V [r(j1 l1 ), . . . , r(jn lN )],
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
F (jl) =
V
r (jl)
and
(jl, j 0 l0 ) =
2V
F (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
(jl, j 0 l0 ) '
F (j 0 l0 ; r (jl)) F (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.
Fy
Fz ,
xx
P = yx
zx
xy
yy
zy
xz
yz ,
zz
71
U = rx
ry
rz .
The matrix equation is expanded for number of forces and displacements as follows:
U1
F1
U2
F2
= 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 symmetries. The matrix equation can be written using a symmetry operation as
R(F)
= R(U)P,
is the site symmetry operation centring at r(jl). R(F)
where R
and R(U)
are defined as RF(R1 (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)
U1
F1
.
F(2)
..
1
.
(2)
.
U1
.
(1) = (1) P.
U2
F2
(2)
(2)
U
F
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 .
jj 0
1
u (jl, t) =
[(q)] 2 a
(q) exp(i(q)t) + a
(q) exp(i(q)t) exp(iq r(jl))e (j, q),
2N mj
q,
where a
and a
are the creation and annihilation operators of phonon, h is the reduced Planck constant, and t is the
time.
72
[ q Zj,
][ 0 q 0 Zj0 , 0 ]
4
0
N
0
P
.
D (jj , q 0) = D (jj , q 0) +
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).
n=
1
exp(h(q)/kB T ) 1
E=
X
q
1
1
+
h(q)
2 exp(
h(q)/kB T ) 1
CV =
Z = exp(/kB T )
Y exp(h(q)/2kB T )
1 exp(h(q)/kB T )
q
ln 1 exp(h(q)/kB T )
=+
2 q
q
15.4. Non-analytical term correction
73
15.5.6 Entropy
F
T
X
1 X
=
h(q) coth(
h(q)/2kB T ) kB
ln [2 sinh(h(q)/2kB T )]
2T q
q
S=
h
2N mj
21 X
12
[ (q)]
a
(q) exp(i (q)t) + a
(q) exp(i (q)t) exp(iq r(jl))e
(j, q)
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. a
and a
are the creation and annihilation operators of phonon. The expectation value
of the squared atomic displacement is calculated as,
|u (jl, t)|2 =
X
h
2
(q)1 (1 + 2n (q))|e
(j, q)| ,
2N mj q,
1
,
exp(h (q)/kB T ) 1
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.,
[
a (q), a
0 (q0 )] = (q q0 ) 0 ,
[
a (q), a
0 (q0 )] = 0,
[
a (q), a
0 (q0 )] = 0,
h|
a (q)
a 0 (q0 )|i = 0,
h|
a (q)
a 0 (q0 )|i = 0.
X
h
(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.
74
|u(jl, t)|2 =
X
h
(q)1 (1 + 2n (q))|
n e (j, q)|2
2N mj q,
75
76
CHAPTER
SIXTEEN
@article {phonopy,
Journal = {Phys. rev. B},
Year = {2008},
Title = {First-principles calculations of the ferroelastic transition between rutile-type and Ca
Author = {Togo, A and Oba, F and Tanaka, I},
Pages = {134106},
Volume = {78},
Issue = {13},
Month = {Oct}
}
77
78
CHAPTER
SEVENTEEN
REFERENCES
17.1 Method used in phonopy
17.1.1 Parlinski-Li-Kawazoe method
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.
79
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.
80
CHAPTER
EIGHTEEN
CHANGE LOG
18.1 Oct-3-2013: Version 1.7.4
Thermal displacement matrix is implemented. See TDISPMAT, TMAX, TMIN, TSTEP and Mean square displacement.
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.
freq_something.
gruneisen didnt run because it didnt 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.
81
82
83
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 eigenvalues, frequencies are used.
The default sigma value used for total and partial DOS was changed to (max_frequency - min_frequency) / 100.
Symmetry finder update.
84
85
86
87
88
89
90