# Element: phonons

Compute the dynamical matrix.

There are two methods available to compute dymanical matrices, supercell calculations (also called 'frozen phonon approach') and density-functional perturbation theory (DFPT).

In the first case, dynamical matrices are computed by constructing a supercell (attributes ** ngridq** and

**), displacing atoms in it and obtaining the dynamical matrix from the forces. As all atoms are displaced four times in each direction, and this is done for every ${\bf q}$-point, phonon calculations can become quite tedious. If the calculation was done already at an earlier point, and an existing dynamical matrix should be reused, the attribute**

`reduceq`**allows to skip a fresh calculation.**

`do`In the second case, DFPT w.r.t. phonon-like displacements of the nuclei is employed to compute the linear response of the electron density and effective potential in the unitcell from which, in turn, the linear response of the atomic forces and hence the dynamical matrices are derived.

To obtain phonon eigenvalues and eigenvectors for one or more ${\bf q}$-points, add one of the elements ** qpointset**,

**,**

`interpolate`**or**

`phonondispplot`**.**

`phonondos`contains: |
(optional)qpointset (optional)phonondos (optional)phonondispplot (optional)reformatdynmat (optional)interpolate (optional)parts |

XPath: |
/input/phonons |

This element allows for specification of the following attributes: ** canonical**,

**,**

`deltaph`**,**

`do`**,**

`drynumprocs`**,**

`gamma`**,**

`method`**,**

`ngridq`

`reduceq`## Attribute: canonical

Applies to `method="dfpt"` only! If the attribute `canonical` is set to `"true"`, the canonical (Cartesian) displacement patterns are used. Otherwhise, irreducible representations are used (default).

Type: |
boolean |

Default: |
"false" |

Use: |
optional |

XPath: |
/input/phonons/@canonical |

## Attribute: deltaph

Applies to `method="sc"` only!

Phonon calculations are performed by constructing a supercell corresponding to a particular ${\bf q}$-vector and making small periodic sin- and cos-like displacements of the atoms. The amplitude of this displacement, in cartesian coordinates for each component, is given by `deltaph` (in units of Bohr). Additionally a displacement of `2*deltaph` is done, so in general each atom is displaced four times.

`deltaph` should not be made too large, as anharmonic terms could then become significant, neither should it be too small as this can introduce a numerical error.

Type: |
fortrandouble |

Default: |
"0.03d0" |

Use: |
optional |

XPath: |
/input/phonons/@deltaph |

## Attribute: do

Specify if the phonon calculation is performed from scratch (value `fromscratch`), resumed from a previous calculation (value `fromfile`, DFPT only) or skipped (value `skip`.) In the latter case the dynamical matrix is read from files produced in a previous run with the same parameters. In case of a DFPT phonon calculation, value `dry` triggers a dry run that only generates the irreducible representations and prints the parallelization pattern.

Type: |
choose from:fromscratch fromfile skip dry |

Default: |
"fromscratch" |

Use: |
optional |

XPath: |
/input/phonons/@do |

## Attribute: drynumprocs

Applies to `method="dfpt"` only! If the attribute `do` is set to `"dry"`, this number of processes is assumed for a parrallel run.

Type: |
integer |

Default: |
"1" |

Use: |
optional |

XPath: |
/input/phonons/@drynumprocs |

## Attribute: gamma

Applies to `method="sc"` only! Determines how force constants at the $\Gamma$-point are computed. The numerical differentiation is done from (a) a displacement by `deltaph` and the equilibirum (`onestep`), (b) displacements by $\pm$`deltaph` (`twostep`), or (c) displacements by `deltaph` and 2`deltaph` (`standard`) for each atom in each cartesian direction. Note that options (a) requires $3N+1$ computations, whereas option (b) and (c) require $6N$ for $N$ atoms. In particular if only the $\Gamma$-point is to be computed, option (b) is more accurate and yields better eigenvectors than (a).

Type: |
choose from:onestep twostep standard |

Default: |
"twostep" |

Use: |
optional |

XPath: |
/input/phonons/@gamma |

## Attribute: method

Method to compute phonons. Either `"sc"` for super-cell approach or `"dfpt"` (default) for density-functional perturbation theory.

Type: |
choose from:sc dfpt |

Default: |
"dfpt" |

Use: |
optional |

XPath: |
/input/phonons/@method |

## Attribute: ngridq

Number of ${\bf q}$ grid points along the basis vector directions. This determines the size of the supercell. In case of a DPFT calculation this grid must be commensurate with the ${\bf k}$ grid from the `groundstate` element.

Type: |
integertriple |

Default: |
"1 1 1" |

Use: |
optional |

XPath: |
/input/phonons/@ngridq |

## Attribute: reduceq

The attribute `reduceq` is set to `"true"` if the ${\bf q}$-point set is to be reduced with the crystal symmetries.

Type: |
boolean |

Default: |
"true" |

Use: |
optional |

XPath: |
/input/phonons/@reduceq |

# Element: phonondos

Compute the phonon density of states (DOS) $g(\omega)$ and thermodynamical properties. This is done by calculating the phonon eigenvalues on a dense grid, specified by ** ngrdos**. The DOS is output to file

`PHDOS.OUT`. Note that $\int\limits_{\omega_{\rm min}}^{\omega_{\rm max}} d\omega\; g(\omega) = 3N_{\rm at}$

From the DOS $g(\omega)$ the following thermodynamical properties are obtained:

- the zero-point energy $E_{\rm ZP} = \frac{1}{2} \int\limits_{\omega_{\rm min}}^{\omega_{\rm max}} d\omega\; \omega\, g(\omega)$
- the vibrational internal energy $E_{\rm vib} = \frac{1}{2} \int\limits_{\omega_{\rm min}}^{\omega_{\rm max}} d\omega\; \omega\, g(\omega) \coth\frac{\omega}{2k_B T}$
- the vibrational free energy $F_{\rm vib} = k_B T \int\limits_{\omega_{\rm min}}^{\omega_{\rm max}} d\omega\; g(\omega) \log\left(2 \sinh \frac{\omega}{2k_B T}\right)$
- the vibrational entropy $S_{\rm vib} = \frac{E_{\rm vib}-F_{\rm vib}}{T}$
- the heat capacity $c = k_B \int\limits_{\omega_{\rm min}}^{\omega_{\rm max}} d\omega\; g(\omega) \left(\frac{\omega}{k_B T}\right)^{\!\!\! 2} {\exp\left(\frac{\omega}{k_B T}\right)}{\left[\exp(\frac{\omega}{k_B T})-1\right]^{-2}}$

where $N_{\rm at}$ is the number of atoms in the unit cell. These quantities are computed for the temperatures, specified by ** ntemp** and written to files

`THERMO.OUT`and

`thermo.xml`.

Type: |
no content |

XPath: |
/input/phonons/phonondos |

This element allows for specification of the following attributes: ** ngrdos**,

**,**

`nsmdos`**,**

`ntemp`

`nwdos`## Attribute: ngrdos

Number of grid points in each lattice direction on which the eigenvalues are interpolated.

Type: |
integer |

Default: |
"100" |

Use: |
optional |

XPath: |
/input/phonons/phonondos/@ngrdos |

## Attribute: nsmdos

Number of 3-point averaging runs to smoothen the DOS. One run corresponds to setting the DOS value for one frequency $g(\omega_i)$ to the average $1/3\:\left[g(\omega_{i-1})+g(\omega_{i})+g(\omega_{i+1})\right]$.

Type: |
integer |

Default: |
"0" |

Use: |
optional |

XPath: |
/input/phonons/phonondos/@nsmdos |

## Attribute: ntemp

Number of temperatures in the range up to the maximal temperature $T_{\rm max}$ for the calculation of the thermodynamical properties from the phonon DOS This corresponds to the maximal phonon frequency $\omega_{\rm max}$ by $T_{\rm max} = \omega_{\rm max} / k_B$.

Type: |
integer |

Default: |
"200" |

Use: |
optional |

XPath: |
/input/phonons/phonondos/@ntemp |

## Attribute: nwdos

Number of steps between the lowest and highest phonon frequency for the DOS.

Type: |
integer |

Default: |
"500" |

Use: |
optional |

XPath: |
/input/phonons/phonondos/@nwdos |

# Element: phonondispplot

Produce a phonon dispersion plot by interpolating phonon frequencies for points on a path through the Brillouin zone. The frequencies for all phonon modes along the path are written to file `PHDISP.OUT`, vertex lines are written to file `PHDLINES.OUT`. Use the element ** plot1d** to specify the path in reciprocal lattice vectors.

contains: |
plot1d |

XPath: |
/input/phonons/phonondispplot |

# Element: reformatdynmat

Reads in the dynamical matrix rows from the corresponding files and outputs them as $3\times 3$ blocks for each atom combination to the file `DYNMAT.OUT`. A corrected dynamical matrix which fulfills the accoustic sumrule is output to the file `DYNMAT_SUMRULE.OUT`. It is obtained by subtracting the three lowest eigenvectors from the original matrix: $D_{ij}^{\bf q}\rightarrow D_{ij}^{\bf q}-\sum_{k=1}^3 (\omega_k^0)^2 v_{k;i}^0 v_{k;j}^0$ for all ${\bf q}$, where $\omega_k^0$ is the $k$th eigenvalue of the ${\bf q}=0$ dynamical matrix and $v_{k;i}^0$ the $i$th component of its eigenvector.

Symmetrized forms are written to the files `DYNMAT_SYM.OUT` and `DYNMAT_SYM_SUMRULE.OUT`.

Type: |
no content |

XPath: |
/input/phonons/reformatdynmat |

# Element: interpolate

Interpolates the phonon frequencies, and optionally eigenvectors, on a given ${\bf q}$-point grid and outputs them to file `PHONON_INTERPOLATE.OUT`.

Type: |
no content |

XPath: |
/input/phonons/interpolate |

This element allows for specification of the following attributes: ** ngridq** (required),

**,**

`vqloff`

`writeeigenvectors`## Attribute: ngridq

${\bf q}$-point grid for interpolation.

Type: |
integertriple |

Use: |
required |

XPath: |
/input/phonons/interpolate/@ngridq |

## Attribute: vqloff

The ${\bf q}$-point offset vector in lattice coordinates.

Type: |
vect3d |

Default: |
"0.0d0 0.0d0 0.0d0" |

Use: |
optional |

XPath: |
/input/phonons/interpolate/@vqloff |

## Attribute: writeeigenvectors

Set to `true` if the phonon eigenvectors are to be interpolated and output in addition to the phonon frequencies.

Type: |
boolean |

Default: |
"false" |

Use: |
optional |

XPath: |
/input/phonons/interpolate/@writeeigenvectors |

# Reused Elements

The following elements can occur more than once in the input file. There for they are listed separately.

# Data Types

The Input definition uses derived data types. These are described here.