# Element: phonons

Compute the dynamical matrix.

This is done 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. Note also that the calculation of the dynamical matrix can be run in parallel.**

`do`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: ** deltaph**,

**,**

`do`**,**

`gamma`**,**

`ngridq`

`reduceq`## Attribute: deltaph

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 (value `fromscratch`) or skipped (value `skip`.) In the latter case the dynamical matrix is read from files produced in a previous run with the same parameters. The value `fromscratch` can also be used to continue an incomplete calculation.

Type: |
choose from:fromscratch skip |

Default: |
"fromscratch" |

Use: |
optional |

XPath: |
/input/phonons/@do |

## Attribute: gamma

Determines how force constants at the $\Gamma$-point are computed. The numerical differentiation is done from (a) a displacement by `deltaphi` and the equilibirum (`onestep`), (b) displacements by $\pm$`deltaphi` (`twostep`), or (c) displacements by `deltaphi` and 2`deltaphi` (`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: ngridq

Number of ${\bf q}$ grid points along the basis vector directions. This determines the size of the supercell.

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 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.