Ivano E. Castelli, Mohnish Pandey, Kristian S. Thygesen, and Karsten W. Jacobsen
Bandgap Engineering of Functional Perovskites Through Quantum Confinement and Tunneling
Phys. Rev. B 91, 165309.
We investigate the band gaps and optical spectra of functional perovskites composed of layers of the two cubic perovskite semiconductors BaSnO3-BaTaO2N and LaAlO3-LaTiO2N.
Ivano E. Castelli, Mohnish Pandey, Kristian S. Thygesen, and Karsten W. Jacobsen
Bandgap Engineering of Functional Perovskites Through Quantum Confinement and Tunneling
Phys. Rev. B 91, 165309.
key |
description |
unit |
---|---|---|
|
Direct bandgap GLLB-SC |
eV |
|
Indirect bandgap GLLB-SC |
eV |
|
Derivative discontinuity GLLB-SC |
eV |
|
Bandgap at Gamma GLLB-SC |
eV |
|
Cubic perovskite labeled as A-combination |
|
|
Cubic perovskite labeled as B-combination |
|
|
Sequence of A and B layers |
|
|
GLLBSC Gamma-gap |
Here, we plot the band gaps at \(\Gamma\) when n A-layers is stuck with n B-layers (with n between 1 and 6). The changes in the gaps can be understood in terms of quantum confinement and tunneling. The cubic perovskites selected as building blocks are BaSnO3 (A) with BaTaO2N (B) or LaAlO3 (A) with LaTiO2N (B).
# creates: gaps.svg
import numpy as np
import matplotlib.pylab as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.cm as cm
import ase.db
con = ase.db.connect('funct_perovskites.db')
comb_A = 'BaSnO3'
comb_B = 'BaTaO2N'
gaps = []
for nA in range(1, 7):
for nB in range(1, 7):
name = nA * 'A' + nB * 'B'
row = con.get(comb_A=comb_A, comb_B=comb_B, sequence=name)
gaps.append(row.gllbsc_gamma_gap)
colors = []
for gap in gaps:
c = cm.jet(int(gap / max(gaps) * 255))
colors.append([c[0], c[1], c[2]])
x, y = np.meshgrid(range(1, 7), range(1, 7))
x = x.flat
y = y.flat
z = np.zeros_like(x)
dx = dy = 0.5 * np.ones_like(x)
dz = gaps
fig = plt.figure()
ax = Axes3D(fig, auto_add_to_figure=False)
fig.add_axes(ax)
plt.xlabel('nB, B = ' + comb_B)
plt.ylabel('nA, A = ' + comb_A)
ax.set_zlabel('Bandgap [eV]')
ax.bar3d(x, y, z, dx, dy, dz, color=colors)
plt.savefig('gaps.svg')