GaPSb on InPΒΆ

Source:

#
#   Copyright (c) 2013-2014, Scott J Maddox
#   Copyright (c) 2025, Duarte Silva
#
#   This file is part of openbandparams.
#
#   openbandparams is free software: you can redistribute it and/or modify
#   it under the terms of the GNU Affero General Public License as published
#   by the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
#
#   openbandparams is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU Affero General Public License for more details.
#
#   You should have received a copy of the GNU Affero General Public License
#   along with openbandparams.  If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
# Make sure we import the local openbandparams version
import os
import sys
sys.path.insert(0,
    os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))
from openbandparams import *


print('Lattice matching GaPSb to InP (at the growth temperature of 470 C):')
Tg = 273.15 + 470
print('>>> a_InP = InP.a(T=Tg)\n')
a_InP = InP.a(T=Tg)
print('>>> GaPSb_on_InP = GaPSb(a=a_InP, T=Tg)\n')
GaPSb_on_InP = GaInAs(a=a_InP, T=Tg)
print('>>> InP.a(T=Tg)\n', InP.a(T=Tg))
print('>>> GaPSb_on_InP.a()\n', GaPSb_on_InP.a(T=Tg))
print('>>> GaPSb_on_InP.element_fraction("Ga")\n', \
    GaPSb_on_InP.element_fraction("Ga"))

print('\nGet the properties at 70 C:')
T = 273.15 + 70
kT = 25.8e-3 / 300 * T
print('Eg_Gamma', GaPSb_on_InP.Eg_Gamma(T=T))
print('Eg_X', GaPSb_on_InP.Eg_X(T=T))
print('Eg_L', GaPSb_on_InP.Eg_L(T=T))
xg = GaPSb_on_InP.Eg_X(T=T) - GaPSb_on_InP.Eg_Gamma(T=T)
print('Eg_X - Eg_Gamma', xg)
print('(Eg_X - Eg_Gamma)/kT', xg / kT)
lg = GaPSb_on_InP.Eg_L(T=T) - GaPSb_on_InP.Eg_Gamma(T=T)
print('Eg_L - Eg_Gamma', lg)
print('(Eg_L - Eg_Gamma)/kT', lg / kT)
meff_e_Gamma = GaPSb_on_InP.meff_e_Gamma(T=T)
print('meff_e_Gamma', meff_e_Gamma)
meff_e_L_long = GaPSb_on_InP.meff_e_L_long(T=T)
print('meff_e_L_long', meff_e_L_long)
meff_e_L_trans = GaPSb_on_InP.meff_e_L_trans(T=T)
print('meff_e_L_trans', meff_e_L_trans)
meff_e_L_DOS = (GaPSb_on_InP.meff_e_L_long(T=T) ** (1. / 3) *
                GaPSb_on_InP.meff_e_L_trans(T=T) ** (2. / 3))
print('meff_e_L_DOS', meff_e_L_DOS)
DOS_ratio = (meff_e_L_DOS) ** (3. / 2) / (meff_e_Gamma) ** (3. / 2)
print('meff_DOS_ratio', DOS_ratio)

Result:

Lattice matching GaPSb to InP (at the growth temperature of 470 C):
>>> a_InP = InP.a(T=Tg)

>>> GaPSb_on_InP = GaPSb(a=a_InP, T=Tg)

>>> InP.a(T=Tg)
 5.882063885
>>> GaPSb_on_InP.a()
 5.882063885000305
>>> GaPSb_on_InP.element_fraction("Ga")
 0.4709483112774251

Get the properties at 70 C:
Eg_Gamma 0.722934492797793
Eg_X 1.2562170243316877
Eg_L 1.2712248919823759
Eg_X - Eg_Gamma 0.5332825315338947
(Eg_X - Eg_Gamma)/kT 18.07069698090857
Eg_L - Eg_Gamma 0.5482903991845829
(Eg_L - Eg_Gamma)/kT 18.579250351042596
meff_e_Gamma 0.0376215373242294
meff_e_L_long 1.2333948722095556
meff_e_L_trans 0.061962087106446594
meff_e_L_DOS 0.16792604959543378
meff_DOS_ratio 9.43023032350692