Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Photo Conductivity

When the electronic state of the defect interacts with radiation, carriers can be excited to the conduction band. This is called photoconductivity. To help elucidate how likely a defect is to cause photoconductivity, we can look at the band-decomposed contribution to the frequency-dependent dielectric function. Here we have replicated VASP’s density-density optical response calculated in the independent-particle picture in the pymatgen.io.vasp.optics module and allowed users to control which dipole matrix elements are accounted for by masking the dipole matrix elements stored in the WAVEDER file and manipulate the Fermi level to populate or depopulate the defect state. This essentially allows us to calculate the optical response for (defect)→(conduction band) and (valence band)→(defect) transitions in isolation.

For more information on how VASP handles optical response, see the VASP documentation.

For more details on how the Python code works, please see the documentation for the pymatgen.io.vasp.optics module.

To compute the optical response of a defect we can use the HarmonicDefect object again. However, this time, since we don’t need to consider the vibrational modes of the defect, we only need to pass in the directory containing the relaxed structure and the WAVEDER file. Since the PROCAR file is also present in the directory, the (band, kpoint, spin) indices representing the singular, most localized, state will be automatically determined.

The defect band is [(138, 0, 1), (138, 1, 1)]
The vibrational frequency is omega=1.0 in this case is gibberish.

Identification of the Defect Band

We can first check that the defect_band, identified using the PROCAR file, is indeed an isolated flat band in the middle of the band gap. While this is not always the case since we are looking at Kohn-Sham states, this is usually a good starting point. The user can refine the definition of the defect band by passing in a list of (band, kpoint, spin) indices to the defect_band argument of the HarmonicDefect object.

band s=0,k=0  s=0,k=1  s=1,k=0  s=1,k=1
134  3.46880  3.77960  3.86670  4.22680
135  3.58800  4.06530  4.04520  4.26400
136  3.70270  4.25190  4.62880  4.79700
137  3.89660  4.28290  4.94740  4.98330
138  4.11920  4.34290  5.5338*  5.7531*
139  7.98830  6.26990  8.08180  6.35690
140  8.71050  8.44200  8.81040  8.53660
141  8.80880  8.55270  8.86150  8.60610
142  9.12240  8.76330  9.16820  8.86680
143  9.12980  9.35840  9.17690  9.36620

From the eigenvalues above, we can see that the isolated defect band is [(138, 0, 1), (138, 1, 1)] which matches with starred values determined by the data from the inverse participation ratio (IPR) analysis.

Frequency-Dependent Dielectric Function

The frequency-dependent dielectric function is calculated using the get_dielectric_function method of the HarmonicDefect object. Which requires the waveder attribute of the HarmonicDefect object to be set.

The (x,x) component of the complex dielectric function tensor for the (VBM)→(defect) and (defect)→(CBM) transitions can be obtained by calling the get_dielectric_function method with idir=0, jdir=0.

<Figure size 640x480 with 1 Axes>

From the dielectric function above we see that this particular defect (the Ga vacancy in the neutral q=0 state) is much better at capturing electrons from the valence band via dipole transitions than it is at emitting electrons to the conduction band via dipole transitions.

Of course for a complete picture of photoconductivity, the Frank-Condon type of vibrational state transition should also be considered, but we are already pushing the limits of what is acceptable in the independent-particle picture so we will leave that for another time.

Dipole Matrix Elements

We can also check the dipole matrix elements for the (VBM)→(defect) and (defect)→(CBM) transitions explicitly by calling the plot_optical_transitions method as shown below. The function returns a summary pandas.DataFrame object with the dipole matrix elements as well as the ListedColormap and Normalize objects for plotting the color bar. These objects can then be passed to other instances of the plotting function to ensure that the color bar is consistent.

[Text(0, 0, 'Kpoint-0'), Text(3, 0, 'Kpoint-1')]
<Figure size 640x480 with 2 Axes>

The DataFrame object containing the dipole matrix elements can also be examined directly.

Loading...