%Chapt4Figure14b.m
%resonant tunneling through 3 barriers

clear
clf;
nbarrier=3;						%number of potential barriers
bx=0.4e-9;						%barrier thickness (m)
wx=0.6e-9;						%well width (m)
V0=1;							%barrier energy (eV)

N=(2*nbarrier)+1;				%number of samples of potential
for j=1:2:(2*nbarrier)          %set up position and potential array
   dL(j)=wx;   V(j)=0;
   dL(j+1)=bx; V(j+1)=V0;
end
   dL(N)=wx;   V(N)=0;
   
Emin=0.1+(pi*1e-5);				%add (pi*1.0e-5) to energy to avoid divide by zero
Emax=0.8;						%maximum particle energy (eV)
npoints=300;					%number of points in energy plot
dE=(Emax-Emin)/npoints;			%energy increment (eV)
hbar=1.0545715e-34;             %Planck's constant (J s)
eye=complex(0.,1.);             %square root of -1
m0=9.109382e-31;				%bare electron mass (kg)
meff=1.0;						%effective electron mass / m0
m=meff*m0;						%effective electron mass (kg)
echarge=1.6021764e-19;          %electron charge (C)
  
    bxmin=0.1e-9;               %minimum central barrier thickness
    bxmax=1.5e-9;               %maximum central barrier thickness
    mpoints=300;                %number of samples
    dbx=(bxmax-bxmin)/mpoints;

    for mcount=1:mpoints   
    dL(4)=bxmin+(mcount*dbx);   %central barrier thickness
    xp(mcount)=dL(4);           %central barrier thickness vector used in plot
    for j=1:npoints
      E(j)=dE*j+Emin;
      bigP=[1,0;0,1];			%default value of matrix bigP
      	for i=1:N
         k(i)=sqrt(2*echarge*m*(E(j)-V(i)))/hbar;%wave vector at energy E
      	end
      for n=1:(N-1)				%multiply out propagation matrix
         p(1,1)=0.5*(1+k(n+1)/k(n))*exp(-eye*k(n)*dL(n));
         p(1,2)=0.5*(1-k(n+1)/k(n))*exp(-eye*k(n)*dL(n));
         p(2,1)=0.5*(1-k(n+1)/k(n))*exp(eye*k(n)*dL(n));
         p(2,2)=0.5*(1+k(n+1)/k(n))*exp(eye*k(n)*dL(n));
         bigP=bigP*p;
      end
      Trans(j,mcount)=-log((abs(1/bigP(1,1)))^2);%transmission coefficient
      
    end
    end

figure(1);
surfl(xp,E,Trans);
axis square;
axis([bxmin bxmax 0 Emax 0 25]);
shading interp;
xlabel('Central barrier thickness (m)');
ylabel('Energy, E (eV)')
zlabel('Transmission, -ln(Trans)')
