Overview

This site provides the documentation for the Defect Cross Sections project. This code currently calculates the capture cross section for a defect in a semiconductor based on the theory developed in the Barmparis and GaN papers. There are codes to integrate with both VASP and QuantumEspresso, but only the VASP version is currently up-to-date.

The flow chart for the full calculation may be overwhelming, but stick with me. It is important to get an overall understanding of how the code pieces together because there are so many moving parts. But before showing you the full flow chart, let’s start with a simple one:

Simple capture flow chart


The basic process for running a capture calculation is to get all of the VASP calculations that you need done, run Export to translate the information into a form easily read by the rest of the code, calculate phonons, post-process the files to gather various energies needed and information about the phonons, then run TME and LSF for the zeroth- and first-order terms.

VASP and Export Calculations

The following VASP calculations are needed for a capture calculation:

  • relaxed perfect crystal (plus SCF after)
  • relaxed final charge state (plus SCF after)
  • relaxed initial charge state (plus SCF after)
  • final charge state in initial positions

See the VASP and Export page to find details on how the calculations should be set up and the suggested order of running the calculations.

The results must then be post-processed by the Export code to be used as input to the other programs in the suite. Once the VASP results are exported, the raw files are not needed again. Some of the items exported are:

  • wave functions
  • projectors (for PAW)
  • projections
  • plane-wave grid
  • pseudopotential

See the VASP and Export page for more details on how to run the Export code and what outputs to expect.

Energy tabulation

There are multiple different energies used in different parts of the theory. Instead of calculating the different energies in different places, the EnergyTabulator code is used to gather the energy information from the exported data from the various systems and tabulate all of the needed energies for use in the TME and LSF codes. See the EnergyTabulator page for more details.

Phonons and phonon post-processing

The phonon eigenvectors and frequencies are needed to determine how the electronic-transition energy is dissipated into each of the phonon modes. It is assumed that frequencies of the phonons in the initial and final charge states are the same, but the eigenvectors may change. Consequently, it is best to use the final-charge-state phonons. However, it may be okay to use the ground electronic state of the system for faster convergence of the phonon calculations. The atoms should be in the initial relaxed positions either way.

The phonon post-processing code (PhononPP) is then used to generate positions shifted along each eigenvector (needed for the first-order matrix element) and the Huang-Rhys factor (needed for distributing the energy across the modes in the LSF code). PhononPP is currently set up to read the required information in the form of the mesh.yaml output by Phonopy.

Check out the Phonons and PhononPP pages for guidance on running a phonon calculation with Phonopy and how to use PhononPP.

Zeroth-order

The zeroth-order transition rate is straightforward to calculate: run the TME and LSF codes with order=0. The TME code calculates the transition matrix element, then the LSF code does the time-domain integral to get the final transition rate.

First-order

The first-order matrix elements are more complex because a matrix element $M_j$ must be calculated for each phonon mode $j$. The PhononPP code generates POSCAR files with a small displacement along each of the phonon eigenvectors. The wave functions are needed for each of the shifted POSCARs, so a VASP SCF calculation must be run, then the data must be post-processed using Export. The TME code is then run with the wave functions from the shifted postitions and the wave functions from the unshifted positions.

Once the first-order matrix elements are calculated, run the LSF code to get the first-order transition rate.

Complete process

Altogether, the complete process for a capture calculation is:

Capture flow chart

Jump back to the top to get a breakdown of each piece.

Getting started

To get started, see Getting Started.

Tags: