6.1. ANPHON: Input files

Format of input files

Each input file should consist of entry fields. Available entry fields are

&general, &cell, &analysis, and &kpoint.

The format of the input file is the same as that of alm which can be found here.

Description of input variables

“&general”-field

  • PREFIX-tag : Job prefix to be used for names of output files
Default:None
Type:String

  • MODE-tag = phonons | RTA
phonons
Calculate phonon dispersion relation, phonon DOS,
Grüneisen parameters etc.
RTA
Calculate phonon lifetimes and lattice thermal conductivity
based on the Boltzmann transport equation (BTE)
with the relaxation time approximation (RTA).
SCPH
Calculate temperature dependent phonon dispersion curves
by the self-consistent phonon method.
Default:None
Type:String

  • NKD-tag : Number of atomic species
Default:None
Type:Integer

  • KD-tag = Name[1], … , Name[NKD]
Default:None
Type:Array of strings
Example:In the case of GaAs with NKD = 2, it should be KD = Ga As.

  • MASS-tag = mass[1], … , mass[NKD]
Default:Standard atomic weight of elements given by the KD-tag
Type:Array of double
Example:In the case of Bi2Te3 with NKD = 2, MASS should be MASS = 208.98 127.60.

  • FCSXML-tag : XML file containing force constants generated by the program alm
Default:None
Type:String

  • FC2XML-tag : XML file containing harmonic force constants for different size of supercell
Default:None
Type:String
Description:When FC2XML is given, the harmonic force constants in this file are used for calculating dynamical matrices. It is possible to use different size of supercell for harmonic and anharmonic terms, which are specified by FC2XML and FCSXML respectively.

  • TOLERANCE-tag : Tolerance for finding symmetry operations
Default:1.0e-6
Type:Double

  • PRINTSYM-tag = 0 | 1
0 Symmetry operations won’t be saved in “SYMM_INFO_PRIM”
1 Symmetry operations will be saved in “SYMM_INFO_PRIM”
Default:0
type:Integer

  • NONANALYTIC-tag = 0 | 1 | 2 | 3
0
Non-analytic correction is not considered.
1
Include the non-analytic correction by the damping method proposed by Parlinski.
2
Include the non-analytic correction by the mixed-space approach
3
Include the non-analytic correction by the Ewald method
Default:0
Type:Integer
Description:When NONANALYTIC > 0, appropriate NA_SIGMA and BORNINFO have to be given.

  • NA_SIGMA-tag : Damping factor for the non-analytic term
Default:0.0
Type:Double
Description:Used when NONANALYTIC = 1. The definition of NA_SIGMA is described in the formalism section.

  • BORNINFO-tag : File containing the macroscopic dielectric tensor and Born effective charges for the non-analytic correction
Default:None
Type:String
Description:The details of the file format can be found here.

  • BORNSYM-tag = 0 | 1
0 Do not symmetrize Born effective charges
1 Symmetrize Born effective charges by using point group symmetry
Default:0
Type:Integer

  • TMIN, TMAX, DT-tags : Temperature range and its stride in units of Kelvin
Default:TMIN = 0, TMAX = 1000, DT = 10
Type:Double

  • EMIN, EMAX, DELTA_E-tags : Energy range and its stride in units of kayser (cm-1)
Default:EMIN = 0, EMAX = 1000, DELTA_E = 10
Type:Double

  • ISMEAR-tag = -1 | 0 | 1
-1 Tetrahedron method
0 Lorentzian smearing with width of EPSILON
1 Gaussian smearing with width of EPSILON
Default:-1
Type:Integer
Description:ISMEAR specifies the method for Brillouin zone integration

  • EPSILON-tag : Smearing width in units of Kayser (cm-1)
Default:10.0
Type:Double
Description:This variable is neglected when ISMEAR = -1

  • BCONNECT-tag = 0 | 1 | 2
0
Phonon band is saved without change (sorted in order of energy)
1
Phonon band is connected by using the similarity of eigenvectors.
2
Same as BCONNECT=1. In addition, information about the connectivity is
saved as PREFIX.connection.
Default:0
Type:Integer
Description:The algorithm for connecting a band structure is described here.

  • CLASSICAL-tag = 0 | 1
0 Use quantum statistics (default)
1 Use classical statistics
Default:0
Type:Integer
Description:When CLASSICAL = 1, all thermodynamic functions including the occupation function, heat capacity, and mean square displacements are calculated using the classical formulae. This option may be useful when comparing the lattice dynamics and molecular dynamics results.

  • TRISYM-tag : Flag to use symmetry operations to reduce the number of triples of \(k\) points for self-energy calculations
0 Symmetry will not be used
1 Use symmetry to reduce triples of \(k\) points
Default:1
Type:Integer
Description:This variable is used only when MODE = RTA.

Note

TRISYM = 1 can reduce the computational cost, but phonon linewidth stored to the file PREFIX.result needs to be averaged at points of degeneracy. For that purpose, a subsidiary program analyze_phonons.py* should be used.


  • RESTART-tag : Flag to restart the calculation when MODE = RTA
0 Calculate from scratch
1 Restart from the existing file
Default:1 if there is a file named PREFIX.result; 0 otherwise
Type:Integer

“&scph”-field (Read only when MODE = SCPH)

  • KMESH_INTERPOLATE-tag = k1, k2, k3
Default:None
Type:Array of integers
Description:In the iteration process of the SCPH equation, the interpolation is done using the \(k\) mesh defined by KMESH_INTERPOLATE.

  • KMESH_SCPH-tag = k1, k2, k3
Default:None
Type:Array of integers
Description:This \(k\) mesh is used for the inner loop of the SCPH equation. Each value of KMESH_SCPH must be equal to or a multiple of the number of KMESH_INTERPOLATE in the same direction.

  • SELF_OFFDIAG-tag = 0 | 1
0 Neglect the off-diagonal elements of the loop diagram in the SCPH calculation
1 Consider the off-diagonal elements of the loop diagram in the SCPH calculation
Default:0
Type:Integer
Description:SELF_OFFDIAG = 1 is more accurate, but expensive.

  • TOL_SCPH-tag: Stopping criterion of the SCPH iteration
Default:1.0e-10
Type:Double
Description:The SCPH iteration stops when both \([\frac{1}{N_{q}}\sum_{q} (\Omega_{q}^{(i)}-\Omega_{q}^{(i-1)})^{2}]^{1/2}\) < TOL_SCPH and \((\Omega_{q}^{(i)})^{2} \geq 0 \; (\forall q)\) are satisfied. Here, \(\Omega_{q}^{(i)}\) is the anharmonic phonon frequency in the \(i\)th iteration and \(q\) is the phonon modes at the irreducible momentum grid of KMESH_INTERPOLATE.

  • MIXALPHA-tag: Mixing parameter used in the SCPH iteration
Default:0.1
Type:Double

  • MAXITER-tag: Maximum number of the SCPH iteration
Default:1000
Type:Integer

  • LOWER_TEMP-tag = 0 | 1
0 The SCPH iteration start from TMIN to TMAX. (Raise the temperature)
1 The SCPH iteration start from TMAX to TMIN. (Lower the temperature)
Default:1
Type:Integer

  • WARMSTART-tag = 0 | 1
0 SCPH iteration is initialized by harmonic frequencies and eigenvectors
1 SCPH iteration is initialized by the solution of the previous temperature
Default:1
Type:Integer
Description:WARMSTART = 1 usually improves the convergence.

  • IALGO-tag = 0 | 1
0 MPI parallelization for the \(k\) point
1 MPI parallelization for the phonon branch
Default:0
Type:Integer
Description:Use IALGO = 1 when the primitive cell contains many atoms and the number of \(k\) points is small.

  • RESTART_SCPH-tag = 0 | 1
0 Perform a SCPH calculation from scratch
1 Skip a SCPH iteration by loading a precalculated result
Default:1 if the file PREFIX.scph_dymat exists in the working directory; 0 otherwise
Type:Integer

“&cell”-field

Please specify the cell parameters of the primitive cell as:

&cell
 a
 a11 a12 a13
 a21 a22 a23
 a31 a32 a33
/

The cell parameters are then given by \(\vec{a}_{1} = a \times (a_{11}, a_{12}, a_{13})\), \(\vec{a}_{2} = a \times (a_{21}, a_{22}, a_{23})\), and \(\vec{a}_{3} = a \times (a_{31}, a_{32}, a_{33})\).

Note

The lattice constant \(a\) must be consistent with the value used for the program alm. For example, if one used \(a = 20.4 a_{0}\) for a 2x2x2 supercell of Si, one should use \(a = 10.2 a_{0}\) here for the primitive cell.


“&kpoint”-field

This entry field is used to specify the list of \(k\) points to be calculated. The first entry KPMODE specifies the types of calculation which is followed by detailed entries.

  • KPMODE = 0 : Calculate phonon frequencies at given \(k\) points

For example, if one wants to calculate phonon frequencies at Gamma (0, 0, 0) and X (0, 1/2, 1/2) of an FCC crystal, the &kpoint entry should be written as

&kpoint
 0
 0.000 0.000 0.000
 0.000 0.500 0.500
/
  • KPMODE = 1 : Band dispersion calculation

For example, if one wants to calculate phonon dispersion relations along G-K-X-G-L of a FCC crystal, the &kpoint entry should be written as follows:

&kpoint
 1
 G 0.000 0.000 0.000  K 0.375 0.375 0.750 51
 K 0.375 0.375 0.750  X 0.500 0.500 1.000 51
 X 0.000 0.500 0.500  G 0.000 0.000 0.000 51
 G 0.000 0.000 0.000  L 0.500 0.500 0.500 51
/

The 1st and 5th columns specify the character of Brillouin zone edges, which are followed by fractional coordinates of each point. The last column indicates the number of sampling points.

  • KPMODE = 2 : Uniform \(k\) grid for phonon DOS and thermal conductivity

In order to perform a calculation with 20x20x20 \(k\) grid, the entry should be

&kpoint
 2
 20 20 20
/

“&analysis”-field

  • GRUNEISEN-tag = 0 | 1
0 Grüneisen parameters will not be calculated
1 Grüneisen parameters will be stored
Default:0
Type:Integer
Description:When MODE = phonons and GRUNEISEN = 1, Grüneisen parameters will be stored in PREFIX.gru (KPMODE = 1) or PREFIX.gru_all (KPMODE = 2).

Note

To compute Grüneisen parameters, cubic force constants must be contained in the FCSXML file.


  • PRINTEVEC-tag = 0 | 1
0 Do not print phonon eigenvectors
1 Print phonon eigenvectors in the PREFIX.evec file
Default:0
Type:Integer

  • PRINTXSF-tag = 0 | 1
0 Do not save an AXSF file
1 Create an AXSF file PREFIX.axsf
Default:0
Type:Integer
Description:This is to visualize the direction of vibrational modes at gamma (0, 0, 0) by XCrySDen. This option is valid only when MODE = phonons.

  • PRINTVEL-tag = 0 | 1
0 Do not print group velocity
1 Store phonon velocities to a file
Default:0
Type:Integer
Description:When MODE = phonons and PRINTVEL = 1, group velocities of phonons will be stored in PREFIX.phvel (KPMODE = 1) or PREFIX.phvel_all (KPMODE = 2).

  • PRINTMSD-tag = 0 | 1
0 Do not print mean-square-displacement (MSD) of atoms
1 Save MSD of atoms to the file PREFIX.mds
Default:0
Type:Integer
Description:This flag is available only when MODE = phonons and KPMODE = 2.

  • PDOS-tag = 0 | 1
0 Only the total DOS will be printed in PREFIX.dos
1 Atom-projected phonon DOS will be stored in PREFIX.dos
Default:0
Type:Integer
Description:This flag is available only when MODE = phonons and KPMODE = 2.

  • TDOS-tag = 0 | 1
0 Do not compute two-phonon DOS
1 Two-phonon DOSs will be stored in PREFIX.tdos
Default:0
Type:Integer
Description:This flag is available only when MODE = phonons and KPMODE = 2.

Note

Calculation of two-phonon DOS is computationally expensive.


  • SPS-tag = 0 | 1 | 2
0 Do not compute scattering phase space
1
Total and mode-decomposed scattering phase space involving
the three-phonon processes will be stored in PREFIX.sps
2 Three-phonon scattering phase space with the Bose factor will be stored in PREFIX.sps_Bose
Default:0
Type:Integer
Description:This flag is available only when MODE = phonons and KPMODE = 2.

  • PRINTPR-tag = 0 | 1
0 Do not compute the (atomic) participation ratio
1
Compute participation ratio and atomic participation ratio, which will be
stored in PREFIX.pr and PREFIX.apr respectively.
Default:0
Type:Integer
Description:This flag is available when MODE = phonons.

  • KAPPA_COHERENT-tag = 0 | 1 | 2
0 Do not compute the coherent component of thermal conductivity
1 Compute the coherent component of thermal conductivity and save it in PREFIX.kl_coherent.
2
In addition to above (KAPPA_COHERENT = 1), all elements of the coherent term
are saved in PREFIX.kc_elem.
Default:0
Type:Integer
Description:This flag is available when MODE = RTA. For the theoretical details, please see this page.

Caution

Still experimental. Please check the validity of results carefully.


  • KAPPA_SPEC-tag = 0 | 1
0 Do not compute the thermal conductivity spectra
1 Compute the thermal conductivity spectra, which will be stored in PREFIX.kappa_spec .
Default:0
Type:Integer
Description:This flag is available when MODE = RTA.

  • ISOTOPE-tag = 0 | 1
0 Do not consider phonon-isotope scatterings
1 Consider phonon-isotope scatterings
2
Consider phonon-isotope scatterings as in ISOTOPE = 1 and
the calculated selfenergy is stored in PREFIX.gamma_isotope
Default:0
Type:Integer
Description:When MODE = RTA and ISOTOPE = 1 or 2, phonon scatterings due to isotopes will be considered perturbatively. ISOFACT should be properly given.

  • ISOFACT-tag = isofact[1], … , isofact[NKD]
Default:Automatically calculated from the KD tag
Type:Array of doubles
Description:Isotope factor is a dimensionless value defined by \(\sum_{i} f_{i} (1 - m_{i}/\bar{m})^{2}\). Here, \(f_{i}\) is the fraction of the \(i\)th isotope of an element having mass \(m_{i}\), and \(\bar{m}=\sum_{i}f_{i}m_{i}\) is the average mass, respectively. This quantity is equivalent to \(g_{2}\) appearing in the original paper by S. Tamura [Phys. Rev. B, 27, 858.].

  • UCORR-tag = 0 | 1
0 Do nothing
1
Compute the displacement-displacement correlation function.
The result is stored in PREFIX.ucorr
Default:0
Type:Integer
Description:The displacement-displacement correlation function involves two atoms. The first atom is located in the primitive cell at the center (shift1=[0,0,0]) and the second atom is located in the \(\ell'\) th cell. The translation vector to the \(\ell'\) th cell can be specified by the SHIFT_UCORR tag. This tag is effective only when MODE = phonons and KPMODE = 2

  • SHIFT_UCORR-tag = l1, l2, l3
Default:[0, 0, 0]
Type:Array of integers
Description:This tag specifies the translation vector used for computing the displacement-displacement (uu) correlation function. For example, if one wants to compute the uu correlation function between an atom 1 in the cell at the center and atom 2 in the neighboring cell at \(\boldsymbol{r}(\ell')=(1,0,0)\), SHIFT_UCORR should be set as SHIFT_UCORR = 1 0 0.

  • ZMODE-tag = 0 | 1
0 Do nothing
1
Compute the mode effective charges of the zone-center phonons.
The result is stored in PREFIX.zmode
Default:0
Type:Integer
Description:When MODE = phonons and ZMODE = 1, the mode effective charges are computed for the phonon modes at the Gamma point and saved in PREFIX.zmode. The unit of the mode effective charge is \(e \; \text{amu}^{-1/2}\).

  • ANIME-tag = k1, k2, k3
Default:None
Type:Array of doubles
Description:This tag is to animate vibrational mode. k1, k2, and k3 specify the momentum of phonon modes to animate, which should be given in units of the reciprocal lattice vector. For example, ANIME = 0.0 0.0 0.5 will animate phonon modes at (0, 0, 1/2). When ANIME is given, ANIME_CELLSIZE is also necessary. You can choose the format of animation files, either AXSF or XYZ, by ANIME_FORMAT tag.

  • ANIME_FRAMES-tag: The number of frames saved in animation files
Default:20
Type:Integer

  • ANIME_CELLSIZE-tag = L1, L2, L3
Default:None
Type:Array of integers
Description:This tag specifies the cell size for animation. L1, L2, and L3 should be large enough to be commensurate with the reciprocal point given by the ANIME tag.

  • ANIME_FORMAT = xsf | xyz
Default:xyz
Type:String
Description:When ANIME_FORMAT = xsf, PREFIX.anime???.axsf files are created for XcrySDen. When ANIME_FORMAT = xyz, PREFIX.anime???.xyz files are created for VMD (and any other supporting software such as Jmol).

Format of BORNINFO

When one wants to consider the LO-TO splitting near the \(\Gamma\) point, it is necessary to set NONANALYTIC = 1 and provide BORNINFO file containing dielectric tensor \(\epsilon^{\infty}\) and Born effective charge \(Z^{*}\). In BORNINFO file, the dielectric tensor should be written in first 3 lines which are followed by Born effective charge tensors for each atom as the following.

\begin{eqnarray*} \epsilon_{xx}^{\infty} & \epsilon_{xy}^{\infty} & \epsilon_{xz}^{\infty} \\ \epsilon_{yx}^{\infty} & \epsilon_{yy}^{\infty} & \epsilon_{yz}^{\infty} \\ \epsilon_{zx}^{\infty} & \epsilon_{zy}^{\infty} & \epsilon_{zz}^{\infty} \\ Z_{1,xx}^{*} & Z_{1,xy}^{*} & Z_{1,xz}^{*} \\ Z_{1,yx}^{*} & Z_{1,yy}^{*} & Z_{1,zz}^{*} \\ Z_{1,zx}^{*} & Z_{1,zy}^{*} & Z_{1,zz}^{*} \\ & \vdots & \\ Z_{N_p,xx}^{*} & Z_{N_p,xy}^{*} & Z_{N_p,xz}^{*} \\ Z_{N_p,yx}^{*} & Z_{N_p,yy}^{*} & Z_{N_p,zz}^{*} \\ Z_{N_p,zx}^{*} & Z_{N_p,zy}^{*} & Z_{N_p,zz}^{*} \\ \end{eqnarray*}

Here, \(N_p\) is the number of atoms contained in the primitive cell.

Attention

Please pay attention to the order of Born effective charges.