You are on page 1of 7

Project#1 Report

Special Topics on Semiconductors

LUQMAN SALEEM
21600778
Calculation Method:
I am using MATLAB for coding and SI units throughout whole calculation. The detailed code is
provided in the end of this document. Ive defined 6x6 Hamiltonian with variable named
Hamiltonian. (Full forms of all other variables used in my code are given in Table I). There are
two parts of Hamiltonian components, Pikus-bir (Strain) Part and Luttinger Kohn. Earlier remain
same in a given type of layer over InP substrate while later changes with change in k-points.

There are three cases to analyze GaxIn1-xAs:

1. GaAs
2. InAs
3. Ga0.47In0.53As

In first, second and third case I put x=1, x=0 and x=0.47 respectively. Values of parameters were
given for first two cases while for third case it was given that we can find values by linear
extrapolation of first two cases except for Energy band gap that is calculated by equation:

= 0.324 + 0.7 + 0.4 2

Hamiltonian gives plots for Valence band only (heavy hole (HH), light hole (LH) and split off (SO)
bands). To get the conduction band I have used the equation given in detailed discussion of
book Physics of optoelectronics devices.

I placed Hamiltonian and Conduction band equation in for loop in which value of k points is
changing with step of 1 from 1 to 1000. At the end of for loop, after putting specific value of k in
equations, I used eig() function of MATLAB to find eigenvalues of Hamiltonian and stored it in
another variable named Energy, similarly value of conduction band equation for specific k
value is also saved in variable named CB.

After for loop I had 6x1000 matrix of 6 eigenvalues for each 1000 k points, I get real values and
sorted them using real() and sort() functions. At the end I plot this sort matrix and conduction
band EC variable verses k-points.

The graphs I got are as below:


GaAs:

InAs:

Ga0.47In0.53As:
Table I
Variable name in Description Variable name in Description
Code Code
hbar Hamiltonian Hamiltonian
m0 Rest electron mass Ec Conduction band
calculation equation
e Electron charge Exx, Eyy, Ezz Strain in directions
selector Variable that take g1, g2, g3 Luttinger parameters
input to decide which
graph to show.
a0 Lattice constant of meff Effective mass
substrate (InP)
al Lattice constant of k, kx, ky, kz k-points in 3D
layer (GaAs, InAs or
GaInAs)
Delta Split off parameter Energy Variable that stores
eigenvalues of
Hamiltonian
Eg Energy band gap CB Variable that stores
values for conduction
band
ac, av, a, b, d Deformation Pe, Re, Qe, Se Pikus-bir part of
potential Parameters Hamiltonian
C11, C12, C44 Strain parameters Pk, Rk, Qk, Sk Luttinger part of
Hamiltonian.
H** Hamiltonian
components

Code:
%{
Project#1 of Special Topics In Applied Physics III
%By: LUQMAN SALEEM, ID:21600778
%}
clear all;
close all;
clc;
%--------------------------Constants----------------------------
hbar=1.054e-34; %in SI Units
m0=9.1e-31; %mass of electron
hm=hbar^2/(2*m0);
e=1.6e-19; %charge of electron
%--------------------------Parameters---------------------------
selector=input('Enter 1 for GaAs, 2 for InAs and 3 for GaInAs: ');
a0=5.8688e-10; %Substrate InP lattice
constant
if selector==1
al=5.6533e-10; %Parameters for GaAs,
delta=0.34;
Eg=1.519;
ac=-7.17;
av=1.19;
a=-8.33;
b=-1.7;
d=-4.55;
C11=11.879;
C12=5.376;
C44=5.94;
Exx=(a0-al)/al;
Eyy=Exx;
Ezz=-2*C12*Exx/C11;
Exz=0;
Eyz=0;
Exy=0;
g1=6.85; %Luttinger parameters,
g1, g2 and g3
g2=2.1;
g3=2.9;
meff=0.067;
elseif selector==2 %for InAs, selector2
al=6.0584e-10;
Eg=0.42;
delta=0.38;
ac=-5.08;
av=1;
a=-6.08;
b=-1.8;
d=-3.6;
C11=8.329;
C12=4.526;
C44=3.96;
Exx=((a0-al)/al);
Eyy=Exx;
Ezz=-2*C12/C11*Exx;
Exy=0;
Exz=0;
Eyz=0;
meff=0.023;
g1=20.4;
g2=8.3;
g3=9.1;
else
x=0.468; %for GaInAs
al=5.65e-10*x+(1-x)*6.0584e-10; %lattice constant using formula
Eg=0.324+0.7*x+0.4*(x^2);
delta=(0.34+0.38)/2; %taking value using linear
relation
ac=(-7.17-5.08)/2;
av=(1.16+1)/2;
a=(-8.33-6.08)/2;
b=(-1.7-1.9)/2;
d=(-4.55-3.6)/2;
C11=(11.879+8.329)/2;
C12=(5.376+4.526)/2;
C44=(5.94+3.96)/2;
meff=(0.067+0.023)/2;
Exx=((a0-al)/al);
Eyy=Exx;
Ezz=-2*C12/C11*Exx;
Exy=0;
Exz=0;
Eyz=0;
g1=(6.85+20.4)/2;
g2=(2.1+8.3)/2;
g3=(2.9+ 9.1)/2;
end
%-----------------------------k points-------------------------------
k=zeros(3,1000); %k point matrix
k(1,1:500)=linspace(1,0,500);
k(2,1:500)=linspace(1,0,500);
k(3,1:500)=linspace(1,0,500);
k(3,501:1000)=linspace(0,1,500);
k=k*(2*pi/a0); %Real space k point matrix

%---------------------Hamiltonian Matrix and it's components----------


Energy=zeros(6,length(k)); %EigenValue matrix
CB=zeros(1,length(k)); %Conduction band energy
matrix
%>>>>>Pikus Bir part>>>
Pe=-av*(Exx+Eyy+Ezz);
Re=(sqrt(3)/2)*b*(Exx-Eyy)-1i*d*Exy;
Qe=-b/2*(Exx+Eyy-2*Ezz);
Se=-d*(Exz-1i*Eyz);
%>>>>>Luttinger part>>>
for n=1:length(k)
kx=k(1,n);
ky=k(2,n);
kz=k(3,n);
Pk=hm/e*g1*(kx.^2+ky.^2+kz.^2);
Qk=hm/e*g2*(kx.^2+ky.^2-2*kz.^2);
Rk=hm/e*sqrt(3)*(-g2*(kx.^2-ky.^2)+2*1i*g3*kx.*ky)+Re;
Sk=hm/e*2*sqrt(3)*g3*(kx-1i*ky).*kz;
%>>>>>combine both parts>>>>
P=Pk+Pe;
Q=Qk+Qe;
R=Rk+Re;
S=Sk+Se;
%>>>>>Hamiltonian components:>>>
H11=P+Q;
H12=-S;
H13=R;
H14=0;
H15=-conj(S)/sqrt(2);
H16=sqrt(2)*R;
H21=-conj(S);
H22=P-Q;
H23=0;
H24=R;
H25=-sqrt(2)*Q;
H26=sqrt(3/2)*S;
H31=conj(R);
H32=0;
H33=P-Q;
H34=S;
H35=sqrt(3/2)*conj(S);
H36=sqrt(2)*Q;
H41=0;
H42=conj(R);
H43=conj(S);
H44=P+Q;
H45=-sqrt(2)*conj(R);
H46=-conj(S)/sqrt(2);
H51=H46;
H52=H25;
H53=H26;
H54=-H16;
H55=P+delta;
H56=0;
H61=sqrt(2)*conj(R);
H62=sqrt(3/2)*conj(S);
H63=-H52;
H64=H15;
H65=0;
H66=H55;
Hamiltonian=-[H11 H12 H13 H14 H15 H16;
H21 H22 H23 H24 H25 H26;
H31 H32 H33 H34 H35 H36;
H41 H42 H43 H44 H45 H46;
H51 H52 H53 H54 H55 H56;
H61 H62 H63 H64 H65 H66];
Energy(:,n)=real(eig(Hamiltonian));
Energy(:,n)=sort(Energy(:,n));
%>>>>>coduction band part>>>>
Ec=hm/e*1/(meff)*(kx^2+ky^2+kz^2)+ac*(Exx+Eyy+Ezz);
CB(:,n)=Ec;
end
figure();
plot([1:1:length(k)],Energy,'Linewidth',1.5);
hold on;
plot([1:1:length(k)],CB+Eg,'Linewidth',1.5);
title('Band Structure using Pikus Bir Hamiltonian');
ylim([-4 5]);
xlabel('<---k--->','FontSize',20,'Color','r');
ylabel('<---E--->','FontSize',20,'Color','r');
set(gca,'XTick',[]);

%-------------------------END of PROGRAM-------------------------------------
-