# Dielectric function and other optical properties

### Table of Contents

### Preliminaries

This tutorial calculates optical properties of PbTe using **lmf**. There is a full potential tutorial for PbTe which guides you through a self consistent DFT calculation. It is highly recommended that you follow this tutorial first before continuing with the optics calculations below.

You can begin this tutorial once you have the self-consistent density in hand.

### Tutorial

#### Introduction

The full-potential (FP) and the Atomic Spheres Approximation (ASA) implementations of the code are executed through **lmf** and **lm** respectively, and have the capacity to preform a number of equilibrium and non-equilibrium optical and electronic calculations. This tutorial will only focus on the equilibrium calculation for optical properties and the joint density of states (JDOS), non-equilibrium modes will be covered here.

#### Input File

Using the optics mode for calculating JDOS or the imaginary part of the complex dielectric function can be done in two steps. The first step is to include a new category in the control file with associated tokens, an example of what needs to be included for a simple calculation is shown below:

```
OPTICS MODE=1 NPTS=1001 WINDOW=0 1 LTET=3
```

the category above describes all necessary information needed to calculate the imaginary part of the complex dielectric function. The tokens above indicate an optics calculation mode 1 which is the imaginary part of the dielectric function, calculated for an energy range of (0,1) Ry (indicated by WINDOW token) with an energy mesh density of 1001 using the enhanced tetrahedron integration method (determined through LTET). All of the inputs for the **OPTICS** category can be found here.

#### Preforming calculations

To preform this calculation simply add the text above to the ctrl file (in this tutorial we will use **lmf** and PbTe) and invoke:

```
$ lmf -vnit=1 ctrl.pbte
```

additional switches are added to restrict the number of iteration to one, it is also recommended to include the switch **--rs=1,0** for FP calculations. This will ensure that program reads the saved density from disk but will not update the electron density; this is so that all calculations after the self-consistent calculation are preformed on the same density.

#### Output file

The output file of the optics mode can vary by mode, for the mode above the file will be named *opt.pbte*, and will contain 4 columns and 1002 rows in the standard Questaal format for 2D arrays. The first row contains brief metadata; the columns from left to right are energy value (in Ry), followed by values for the imaginary part of the dielectric function for three orientations of the electric field polarization.

#### Further Optics Modes

##### Additional OPTICS_MODE options

The **OPTICS_MODE=1** used above calculates the imaginary part of the dielectric function. Using this quantity the real part of the dielectric function and the complex index of refraction can be calculated. It is possible to calculate Single DOS and the Joint DOS (JDOS) through the optics category of the control file. These calculations are preformed by simply changing the input to **OPTICS_MODE**. It is also possible to preform DOS calculations through **OPTICS_MODE**. The full list of avaliable inputs for **OPTICS_MODE** is shown below.

```
mode=:
0: does nothing
1: calculateds the imaginary part of the dielectric function
8: simulated non-equlibrium absorption spectra
9: simulated non-equlibrium emission spectra
-1: generate JDOS, similarly to mode=1 this generates complete JDOS.
-5: generate single density of states
-8: simulated non-equlibrium joint density of state for absorption
-9: simulated non-equlibrium joint density of state for emission
```

The output files for the modes above may differ, however the same format is kept for all of them. For the spin polarised cases the first set of columns after the energy relate to the first spin while the second set are for the second spin. I the cases of negative modes the out put file is *jdos.ext*, these files have an energy column and one column per spin channel.

#### Resolving output

Both **lm** and **lmf** offer a range of option to resolve Im,DOS and JDOS through **OPTICS_PART**, **OPTICS_FILBND** and **OPTICS_EMPBND**, the options described here apply to all of the optics modes described above (Im,JDOS and DOS).

##### Occupied and unoccupied bands

It is possible to perform any of the optics mode calculations described above for a restricted number of bands, this can greatly speed up the calculation and allow for isolation and identification of individual band contributions. To restrict the bands involved in the calculation simply provide a range of values for occupied and unoccupied bands through **OPTICS_FILBND** and **OPTICS_EMPBND** respectively. Below is an example of an optics category which calculates the contribution to Im from the highest two valence bands and the lowest two conduction bands for lead telluride:

```
OPTICS MODE=1 NPTS=1001 WINDOW=0 1 LTET=3
FILBND=9,10 EMPBND=11,12
```

The optics output file generated with restricted bands will have the same name and format as unrestricted band calculations, which has been described previously in this tutorial.

##### Resolve by and band to band contribution

The optical and electronic properties described above can also be separated by band to band contribution through **OPTICS_PART=1**, this method has the advantage that the band to band contributions for a number of bands can be preformed quickly. The output of optical calculations while using **OPTICS_PART=1** is *poptt.pbte* the format of this file differs from *opt.pbte*. Details of output format for **OPTICS_PART=1** can be found here.

The contributions to the optical and electronic properties can also be resolved by contributions from single k-points, this can be achieved by preforming the optical calculations above with the added switch **OPTICS_PART=2**. A full tutorial for this option is provided here.

Finally options **OPTICS_PART=1** and **OPTICS_PART=2** can be preformed simultaneously through **OPTICS_PART=3**, the output of this option is described here.