# Phonons, Bandstructure and Thermoelectrics¶

## Introduction¶

The purpose of this tutorial is to illustrate the use of the **ATK** phonon
module. The tutorial is applied to small toy problems such that the
calculations are very fast. In the first chapter you will calculate the phonon
bandstructure and density of states, and learn about how these modules work.
In the second chapter you will study a device system and calculate the
electronic and phonon thermal transport coefficients, as well as the
electrical transport coefficients. From those coefficients you obtain the
thermoelectric figure of merit ZT.

Note

You will primarily use the graphical user interface **QuantumATK** for
setting up and analyzing the results. To familiarize yourself with
**QuantumATK**, it is recommended to go through the
Basic QuantumATK Tutorial.

The underlying calculation engines for this tutorial is **ATK-ForceField**
and **ATK-SE**. A complete description of all the parameters, and in many
cases a longer discussion about their physical relevance, can be found in
the ATK Reference Manual.

In order to run this tutorial, you must have a license for ATK-SE. If you do not have one, you may obtain a time-limited demo license by contacting us via our website: Contact QuantumWise.

## Phonon Bandstructure of a Graphene Nanoribbon¶

### Setting up the geometry¶

Start **QuantumATK** and create a new project. Launch the **Builder** by
clicking the icon on the toolbar.

In the builder, click

.- Uncheck the
`Passivate dangling bonds with hydrogen`

checkbox. - Select
`Armchair`

edge. - Select the structure 8 atoms wide.

Press the `Build`

button to build the structure.

In order to make sure that the phonon module can detect that the structure is one dimensional, you need to have ~ 7 Å vacuum on both sides of the structure. To this end open

.- Increase A-x to 20 Å.
- Increase B-y to 30 Å.

and close the widget.

Next, open `Apply`

to center the nanoribbon in the unit cell.
Send the structure to the **Script Generator**, by using the **Send To** icon in the lower right-hand corner of the **Builder** window.

### Defining the phonon calculation¶

In the following you will optimize the geometry and calculate the Phonon bandstructure and DOS of the nanoribbon using a Tersoff potential.

In the **Script Generator**

- Add a
**ForceFieldCalculator** - Add an
**Optimization > OptimizeGeometry** - Add an
**Analysis > PhononBandstructure** - Add an
**Analysis > PhononDensityOfStates** - Change the output file to
`armchair.hdf5`

.

If you take a look at the blocks in the **Script Generator**, you will notice that a **DyamicalMatrix** block has automatically been added as the selected phonon analysis functions require the calculation of the dynamical matrix.

### Adjusting script components¶

To set up the calculation parameters, make the following changes:

Double-click the

**ForceFieldCalculator**block and select the*Tersoff_C_2010*potential.Note that depending on the elements present in your configuration you will be able to choose among several potentials. A literature reference is also shown, giving you the possibility to check exactly how the potentials have been generated. It is very important that the potential you will use has been generated for a similar system or for similar conditions as your system.

In this case you can immediately see that the

*Tersoff_C_2010 potential*is potentially well suited for your phonon analysis: “Optimized Tersoff and Brenner empirical potential parameters for lattice dynamics and phonon thermal transport in carbon nanotubes and graphene”.

Note

For QuantumATK-versions older than 2017, the **ATK-ForceField** calculator
can be found under the name **ATK-Classical**.

- Double-click the
**OptimizeGeometry**and set maximum force to 0.01 eV/Å. - Double-click the
**PhononBandstructure**and set`Points per segment`

to 100. - Double-click the
**PhononDensityOfStates**. In the*q-point Sampling*box select`Sampling`

, uncheck the`Sync`

box, and set`qc`

to 51.

Transfer the script to the **Job Manager** (again using the “Send To” icon ) and run the calculation.

## Analyzing the Results¶

The generated output file `armchair.hdf5`

, visible on the **LabFloor**,
now contains a *PhononBandstructure* object. Select this PhononBandstructure
object on the **LabFloor** and press **2D Plot** in the plugin panel. Zoom
into the low frequency area to get the figure below.

Note the negative bands arising from stress in the nanoribbon which makes it unstable perpendicular to the plane.

### Origin of negative phonon bands¶

The negative bands seen in the phonon spectrum indicate that the structure is at a saddle point and can gain energy by further relaxing. The problem is that you only performed a force optimization and not a stress optimization, thus there is a large stress in the structure and it would like to release the stress by relaxing perpendicular to the graphene plane.

### Relaxing the stress in the configuration¶

In order to relax the stress in the configuration, open the **Script Generator** again.

Tip

All open tools are available from the *Windows* menu at the top of each **QuantumATK** tool.

Next open the **OptimizeGeometry** block.

- Set
`Maximum stress`

to 0.0001 eV/Å^{3}. - Remove check from
`z`

in`Constrain cell`

to allow optimization of the z-component of the cell.

Press `OK`

to close the widget, transfer the script to the **Job Manager**
and run the calculation. When you open the phonon bandstructure you will see
that the the negative bands are now gone.

### The density of states¶

The `armchair.hdf5`

file also contains the phonon density of state (DOS)
of the armchair nanoribbon with and without stress relaxation. Below the
phonon DOS of the fully (i.e. forces- and stress-) optimized system is shown.

From the phonon DOS it is possible to calculate the free energy, entropy, and
zero point energy of the system. In QuantumATK this is implemented in the
methods `freeEnergy()`

, `entropy()`

, and `zeroPointEnergy()`

of the
PhononDensityOfStates object. The script below shows how to evaluate the
entropy:

1 2 3 4 5 6 7 8 9 10 11 12 13 | ```
# Read the last configuration in the output file
configuration = nlread('armchair.hdf5', BulkConfiguration)[-1]
# Read the last phonon DOS in the output file
phonon_dos = nlread('armchair.hdf5', PhononDensityOfStates)[-1]
# Define the temperature
t = 300*Kelvin
# Calculate the entropy
s = phonon_dos.entropy(t)
# Print results
print 'Entropy = ', s
``` |

Execute the script by dropping it on the Job Manager, and in the **Log** you will get the output:

```
Entropy = 4.36888578559 meV/K
```

## Algorithmic Details of the Phonon Calculator¶

The phonons are calculated from the dynamical matrix of the system. The
dynamical matrix is the second derivative of the system, corresponding to the
first derivative of the forces. The first derivative of the forces are
calculated using a finite difference scheme, where the system is displaced
along each degree of freedom in the system, also called *frozen phonon*
calculations.

When you add a new phonon analysis in the **Script Generator**, it checks if a
dynamical matrix is already present. If this is not the case, a
**DynamicalMatrix** study object will automatically be added to calculate
the dynamical matrix. The **DynamicalMatrix** object of a
configuration can be stored in an `.hdf5`

file and read again to be used
in another calculation.

The details of the calculation of the dynamical matrix is controlled by the
parameters in the **DynamicalMatrix** object.

The `Repetitions`

parameter allows you to specify how many repetitions of
the central cell are employed to calculate forces when the atoms in the
central region are displaced. Setting it to `Automatic`

will make sure that
enough repetitions are used, to fit around each atom in the central region a
buffer zone of four times its covalent radius, in which the force derivatives
are taken into account. For the current system the **Log** file reports:

```
| Phonon: Automatically detected repetitions = [1 1 5] |
```

The size of this buffer region can be changed either by using `Custom`

repetitions or by enabling and setting the `Max interaction range`

parameter, which replaces the default buffer radius of four times the covalent radius.
Furthermore, you can change some other parameters, that determine e.g. whether the acoustic sum rule or symmetries are enforced, as well as numerical parameters, e.g. the finitie difference method or the displacement magnitude of the atoms in the central cell.

Note

In most cases the default values should work well. However, if you are using classical potentials with a long interaction range (e.g. potentials which include coulomb interactions), then it might be necessary to increase the `Max interaction range`

to a value somewhat larger than the largest cutoff-radius of the potential. You can normally tell if this is necessary by unchecking `Acoustic sum rule`

and inspecting the acoustic bands at the gamma point. If these bands are not zero, in most cases the maximum interaction range is too low.

### K-points used for ATK-DFT and ATK-SE¶

From QuantumATK-2019.03 onwards, the k-point sampling and density-mesh-cutoff
will be **automatically** adapted to the given number of repetitions when
setting up the super cell inside `DynamicalMatrix`

. That means you
can specify the calculator settings for the unit cell and use it with any
desired number of repetitions in dynamical matrix calculations.

In previous versions of the code the number of k-points had to be adapted for the dynamical matrix calculation. This is now handled automatically, so the k-points used for phonon calculations do not need to be modified.

## Calculating Electrical and Heat Transport for a Graphene Nanoribbon¶

In this section we will calculate the phonon transmission coefficient for the armchair nanoribbon from which the phonon thermal conductance can be obtained. This will be combined with a calculation of the electron transmission coefficient from which the conductance, Peltier coefficient and electron thermal conductance can be obtained. The different parameters are combined for calculating the thermoelectric figure of merit, ZT. The methodology for the calculations are described in Ref. [1].

### Setting up the graphene nanoribbon device¶

The first step is to build a device geometry from the relaxed armchair
nanoribbon. In the **QuantumATK** main window select the last configuration in
the `armchair.hdf5`

file and drag and drop the configuration onto the
**Builder**.

In the builder perform the following operations:

**C**-direction.
: Repeat 5 times in `OK`

to create the device.
: Default values are fine, press

Send the resulting device configuration to the **Script Generator**.

### Defining the transmission calculations¶

In the following you will setup the phonon and electron transmission calculations. For the phonon calculation you will use the Tersoff potential while using a carbon \(pi\) tight-binding model for the electron transmission calculation.

- Add a
ForceFieldCalculator.- Add an
Analysis > PhononTransmissionSpectrum.- Add a
SemiEmpiricalCalculator.- Add an
Analysis > TransmissionSpectrum.- Change the output file to
`armchair_device.hdf5`

.

### Adjusting script components¶

To set up calculation parameters, make the following changes:

- Double-click the
**ForceFieldCalculator**and select the*Tersoff_C_2010*potential. In the results box select`Do not save`

and uncheck the`Print results summary to log`

box. - No changes need to be made to the
**PhononTransmissionSpectrum**. - Double-click the second
**SemiEmpiricalCalculator**and select the`Hamiltonian`

settings. In the*Basis Set*box select the*Hancock.C ppPi*basis set.

- No changes need to be made to the
**TransmissionSpectrum**.

Transfer the script to the **Job Manager** and run the calculation.

### Analyzing the results¶

Now inspect the result file `armchair_device.hdf5`

in the **QuantumATK**
main window. You may select the *PhononTransmissionSpectrum* and the electron
*TransmissionSpectrum* and plot them using the **Transmission Analyzer** or
the **2D Plot** analysis plugin.

The phonon transmission spectrum of the armchair nanoribbon.

The electron transmission spectrum of the armchair nanoribbon, zoomed into the energy range from -1 to 1 eV.

### The thermo-electric figure of merit¶

In this section you will calculate the linear response transport coefficients
of an applied voltage difference (*dU*) or temperature difference (*dT*)
between the two electrodes. The coefficients are:

The conductance,

The Peltier coefficient,

The Seebeck coefficient,

The heat transport coeficient of electrons, \(\kappa_e\), and phonons \(\kappa_{ph}\),

where \(I_Q = dQ/dT\) is the heat current.

From these coefficients ypu can obtain the thermoelectric figure of merit

which quantifies how efficient a temperature difference can be converted into a voltage difference in a thermoelectric material.

These linear response coefficients are calculated by the **Thermoelectric
Coefficients** plugin. To perform the calculation, select the
*PhononTransmissionSpectrum* and the electron *TransmissionSpectrum* objects
simultanously and press the `Calculate`

button of the plugin.

For an undoped nanoribbon, the Fermi level is in the middle of the band gap. To get a significant Peltier coefficient the Fermi level must be at a band edge, corresponding to a doped nanoribbon. The plugin allows for shifting the Fermi level, and the following shows the result for \(\Delta E_F = 0.08 eV\), corresponding to an n-doped nanoribbon.

The **Thermoelectric Coefficients** plugin allows you to plot the different
thermoelectric coefficients as a function of the energy. For example, the
figure below reports the figure of merit ZT at 300K as a function of the
energy. The peaks corresponding to the band edges are clearly visible.

References

[1] | T. Markussen, A.-P. Jauho , M. Brandbyge: Surface-Decorated Silicon Nanowires: A Route to High-ZT Thermoelectrics Phys. Rev. Lett 103, 055502 (2009) |