Functional Perovskites

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-value pairs

key description unit
comb_A Cubic perovskite labeled as A-combination  
comb_B Cubic perovskite labeled as B-combination  
gllbsc_dir_gap Direct bandgap calculated with GLLB-SC. eV
gllbsc_disc Derivative discontinuity calculated with GLLB-SC. eV
gllbsc_gamma Bandgap at \(\Gamma\) calculated with GLLB-SC. eV
gllbsc_ind_gap Indirect bandgap calculated with GLLB-SC. eV
sequence Sequence of A and B layers  

Band gaps

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)
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')
plt.show()
../_images/gaps1.svg