Previous topic

Binaries

Next topic

Quaternaries

This Page

TernariesΒΆ

Source:

#
#   Copyright (c) 2013-2014, Scott J Maddox
#
#   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 'All three of these are identical:'
print '>>> AlGaAs.Eg(x=0.3)\n', AlGaAs.Eg(x=0.3)
print '>>> AlGaAs.Eg(Al=0.3)\n', AlGaAs.Eg(Al=0.3)
print '>>> AlGaAs.Eg(Ga=0.7)\n', AlGaAs.Eg(Ga=0.7)
print ''

print 'These two are identical:'
print '>>> AlGaAs.Eg(x=0.3)\n', AlGaAs.Eg_Gamma(x=0.3)
print '>>> AlGaAs(x=0.3).Eg_Gamma()\n', AlGaAs(x=0.3).Eg_Gamma()
print ''

print 'Alternate forms:'
print '>>> AlGaAs.Eg(x=0.3, T=300)\n', AlGaAs.Eg(x=0.3, T=300)
print '>>> AlGaAs(x=0.3).Eg()\n', AlGaAs(x=0.3).Eg()
print '>>> AlGaAs(x=0.3).Eg(T=300)\n', AlGaAs(x=0.3).Eg(T=300)
print ''

print ('This is the preferred usage (more efficient),'
       'if you want multiple parameters from one alloy composition:')
print '>>> myAlGaAs = AlGaAs(x=0.3)\n',
myAlGaAs = AlGaAs(x=0.3)
print '>>> myAlGaAs.Eg()\n', myAlGaAs.Eg()
print '>>> myAlGaAs.Eg(T=300)\n', myAlGaAs.Eg(T=300)
print ''

print 'Lattice matching to a substrate (at the growth temperature):'
print '>>> a_InP = InP.a(T=800)\n',
a_InP = InP.a(T=800)
print '>>> GaInAs_on_InP = GaInAs(a=a_InP, T=800)\n',
GaInAs_on_InP = GaInAs(a=a_InP, T=800)
print '>>> InP.a(T=800)\n', InP.a(T=800)
print '>>> GaInAs_on_InP.a()\n', GaInAs_on_InP.a(T=800)
print '>>> GaInAs_on_InP.elementFraction("Ga")\n', \
       GaInAs_on_InP.elementFraction("Ga")
print '>>> GaInAs_on_InP.Eg()\n', GaInAs_on_InP.Eg()
print ''

print 'Other examples:'
print '>>> AlGaAs.meff_hh_100(Al=0.3)\n', AlGaAs.meff_hh_100(Al=0.3)
print '>>> AlGaAs.meff_hh_110(Al=0.3)\n', AlGaAs.meff_hh_110(Al=0.3)
print '>>> AlGaAs.meff_hh_111(Al=0.3)\n', AlGaAs.meff_hh_111(Al=0.3)
print '>>> AlGaAs.meff_lh_100(Al=0.3)\n', AlGaAs.meff_lh_100(Al=0.3)
print '>>> AlGaAs.meff_lh_110(Al=0.3)\n', AlGaAs.meff_lh_110(Al=0.3)
print '>>> AlGaAs.meff_lh_111(Al=0.3)\n', AlGaAs.meff_lh_111(Al=0.3)
print ''

Result:

All three of these are identical:
>>> AlGaAs.Eg(x=0.3)
1.84078834337
>>> AlGaAs.Eg(Al=0.3)
1.84078834337
>>> AlGaAs.Eg(Ga=0.7)
1.84078834337

These two are identical:
>>> AlGaAs.Eg(x=0.3)
1.84078834337
>>> AlGaAs(x=0.3).Eg_Gamma()
1.84078834337

Alternate forms:
>>> AlGaAs.Eg(x=0.3, T=300)
1.84078834337
>>> AlGaAs(x=0.3).Eg()
1.84078834337
>>> AlGaAs(x=0.3).Eg(T=300)
1.84078834337

This is the preferred usage (more efficient),if you want multiple parameters from one alloy composition:
>>> myAlGaAs = AlGaAs(x=0.3)
>>> myAlGaAs.Eg()
1.84078834337
>>> myAlGaAs.Eg(T=300)
1.84078834337

Lattice matching to a substrate (at the growth temperature):
>>> a_InP = InP.a(T=800)
>>> GaInAs_on_InP = GaInAs(a=a_InP, T=800)
>>> InP.a(T=800)
5.88365
>>> GaInAs_on_InP.a()
5.88365
>>> GaInAs_on_InP.elementFraction("Ga")
0.471641417303
>>> GaInAs_on_InP.Eg()
0.73896514168

Other examples:
>>> AlGaAs.meff_hh_100(Al=0.3)
0.379075056861
>>> AlGaAs.meff_hh_110(Al=0.3)
0.687521485046
>>> AlGaAs.meff_hh_111(Al=0.3)
0.943396226415
>>> AlGaAs.meff_lh_100(Al=0.3)
0.10649627263
>>> AlGaAs.meff_lh_110(Al=0.3)
0.0945760627985
>>> AlGaAs.meff_lh_111(Al=0.3)
0.09117432531