fundamental of nanoscience (computer project i) by ravi ... · ravi sharma dulal . computer...
TRANSCRIPT
Chalmers University
Fundamental
of
NanoScience
(Computer project I)
By
Ravi Sharma Dulal
Computer Project, Part 1
Problem C1.1 (Transmission through a rectangular potential)
Use the propagation matrix approach to calculate the transmission coefficient T of
a rectangular potential step with width L=1 nm and a height Vo=0.3 eV. Plot T as a
function of energy. Do you see any oscillations in the propability? Why? Change
the barrier width and height. What happens? Compare your results with theory. Do
they agree?
Consider a potential of height Vo= 0.3 eV.
Wavefunction parameterization:
xikxik
I BeAe 11
xikxik
II DeCe 22
xikxik
III GeFe 11
fig 1: Potential barrier with height Vo
Where,
221
pmEk ,
)(22
VoEmk
me is mass of electron and E is energy of electron.
We can calculate transmission coefficient by using propagation matrix which
relates the waves on the right hand side to those left of the barrier. Here, we have
matrix for up front (Pu), propagation in barrier (Pp) and down front (Pd).
,
Final propagation matrix can be calculated by multiplying all above matrices
together.
P = Pu*Pp*Pd
Then, Transmission coefficient is defined as,
Theoretically, transmission coefficient can be calculate directly,
Fig 2: Numerical matrix calculation for transmission coefficient (L=1 nm)
Yes, I can see the oscillations in the probability. For E>Vo, term becomes
oscillating which leads to the fluctuations in T(E) and isolated energies for which
transmission occurs with complete certainty i.e. T(E)=1. Such transmission
resonances arise from the wave interference and constitute further evidence for
the wave nature of the matter. We see transmission resonance when K2L=nΠ.
Within the barrier, wave function exponentially damped over the distance 1/k2.
Quantum mechanical phenomenon called tunneling occurs easily if barrier width is
very thin, i.e. smaller than decay length 1/K2.
Fig 3a: T(E) for barrier width L=3nm(Theoretical calculation)
Fig 3b: T(E) for barrier width L=3nm(Numerical calculation)
If we keep the barrier height constant and change the barrier width, we see
significance change in oscillations. When barrier width is narrow, even electron
with lower energy can pass through the barrier by quantum tunneling. Wider the
barrier less observable the quantum tunneling is. We see sharp front when E=V for
wider barrier. However, wavy behavior increases with increase in barrier width.
Fig 3c: T(E) for barrier width L=5nm(Theoretical calculation)
Fig 3d: T(E) for barrier width L=5nm(Numerical calculation)
If we keep the barrier width constant and vary the barrier height, we can see that
passing limit shifting towards higher energies on increasing barrier height. This one
is more close to classical expectation. Wavy behavior is observed more
prominently at higher barrier height and higher energies (E>V).
Fig 4: T(E) for barrier width L=1nm and different height(Numerical calculation)
Problem C1.2(Bound states)
Modify the program from problem 1 to treat bound states in a rectangular
potential well. Extract the bound state energies from the transmission coefficient
and compared with theory (e.g. the bound states of a particle in a box). When is
this comparison relevant?
Consider a potential well with two levels V1 and V2. Wave function
parameterization:
xik
L Ae 1
xCSinkxBCoskC 22
xik
R De 1
fig 5: Potential well with height V1
Exponentially growing terms are not allowed states so that they have been
removed. When E<V1, this is the case of bound particle. If we plot the transmission
spectrum manually, we will see the discrete energy values. Here, I use same
propagation matrix method and process is same as previous problem for potential
barrier. Just by interchanging k1 and k2, we can get discrete energy states.
Fig 6a: T(E) for finite potential well with L=1nm (Numerical calculation)
Fig 6b: T(E) for finite potential well with L=5nm(Numerical calculation)
Theoretically we can also use another equation,
This above equation can be solved graphically by taking two functions for RHS and
LHS and plotting this with respect to energy, we can get solutions. All these
solutions are valid because above equations are derived by discarding
exponentially growing terms.
Fig 6c: T(E) for finite potential well with L=1nm(Theoretical calculation)
Fig 6d: T(E) for finite potential well with L=5nm(Theoretical calculation)
Comparison between both methods:
V1=0.3eV, L=1nm (1 solution)
Matrix calculation Theoretical calculation 0.1198 0.1198
V1=0.3eV, L=1nm (5 solutions)
Matrix calculation Theoretical calculation
0.114 0.011
0.046 0.0457 0.102 0.1018
0.179 0.178 0.267 0.267
Comparison of the bound states in a rectangular potential well to the bound states
of a particle in a box is relevant only when E<V1. And LL+2δ where δ=1/k1 is decal
length for rectangular potential well. Outside the wall, wave function decays
exponentially.
Appendix
1.Matlab program for fig 2
%******************************************************************* % % % % % This Matlab script will calculate the transmission probability % for a wave impending on a step potential of height V = 0.3 eV, % using the propagation matrix method. % % % % V1 V2 % % |----------------------| % | | % | | % | | % | | % ----------------------| |---------------------- % %*******************************************************************
%% Define constants
hbar = 1.0545716e-34; % Planck's constant [Js] mass = 9.109382e-31; % Electron mass [kg] eCharge = 1.6021764e-19; % Electron charge [C] L=1e-9;
% Potential heights in the two regions [eV]
V1 = 0.0; V2 = 0.3;
% Number of energy values to consider n = 1000;
% Vector of n energies [eV]
energyVector = linspace(0,3.0,n);
% Vector of n calculated transmission probabilities
transmissionVector = zeros(1,n); % initially put to zero
% Loop over energy values
for index = 1:n
energy = energyVector(index);
% Energy convertions from eV to J
energyJoules = energy*eCharge; V1Joules = V1*eCharge; V2Joules = V2*eCharge;
% Calculate wave numbers in the different regions
k1 = sqrt(2*mass*(energyJoules - V1Joules))/hbar; k2 = sqrt(2*mass*(energyJoules - V2Joules))/hbar;
% Construct the propagation matrix Pu= 1/(2*sqrt(k1*k2))*[(k1+k2) (k1-k2); (k1-k2) (k1+k2)]; Pp=[exp(-(1i*k2*L)) 0; 0 exp(+(1i*k2*L))]; Pd= 1/(2*sqrt(k1*k2))*[(k1+k2) (k2-k1); (k2-k1) (k1+k2)]; pMatrix = Pu*Pp*Pd;
% Calculate the transmission probability and store it in % transmissionVector
transmission = 1/abs(pMatrix(1,1))^2; transmissionVector(index) = transmission; end
% Plot transmission probability as a function of energy plot(energyVector, transmissionVector); % Add labels to axes xlabel('Energy [eV]'); ylabel('Transmission probability'); % Add figure title title('Transmission probability for a step potential of height 0.3 eV and
Length 1 nm'); % Scale axes
2. Matlab Program for fig 3b and fig 3d
%% Define constants
hbar = 1.0545716e-34; % Planck's constant [Js] mass = 9.109382e-31; % Electron mass [kg] eCharge = 1.6021764e-19; % Electron charge [C] L=1e-9;
% Potential heights in the two regions [eV]
V1 = 0.0; V2 = 0.3;
% Number of energy values to consider n = 1000;
% Vector of n energies [eV]
energyVector = linspace(0,3.0,n);
% Vector of n calculated transmission probabilities
transmissionVector = zeros(1,n); % initially put to zero
% Loop over energy values
for L=3e-9:2e-9:5e-9 for index = 1:n
energy = energyVector(index);
% Energy convertions from eV to J
energyJoules = energy*eCharge; V1Joules = V1*eCharge; V2Joules = V2*eCharge;
% Calculate wave numbers in the different regions
k1 = sqrt(2*mass*(energyJoules - V1Joules))/hbar; k2 = sqrt(2*mass*(energyJoules - V2Joules))/hbar;
% Construct the propagation matrix Pu= 1/(2*sqrt(k1*k2))*[(k1+k2) (k1-k2); (k1-k2) (k1+k2)]; Pp=[exp(-(1i*k2*L)) 0; 0 exp(+(1i*k2*L))]; Pd= 1/(2*sqrt(k1*k2))*[(k1+k2) (k2-k1); (k2-k1) (k1+k2)]; pMatrix = Pu*Pp*Pd;
% Calculate the transmission probability and store it in % transmissionVector
transmission = 1/abs(pMatrix(1,1))^2; transmissionVector(index) = transmission; end figure(); hold all; % Plot transmission probability as a function of energy plot(energyVector, transmissionVector); % Add labels to axes xlabel('Energy [eV]'); ylabel('Transmission probability'); % Add figure title title('Transmission probability for a step potential of height 0.3 eV'); % Scale axes end
3. Matlab program for fig 3a and 3c
%% Define constants
hbar = 1.0545716e-34; % Planck's constant [Js] mass = 9.109382e-31; % Electron mass [kg] eCharge = 1.6021764e-19; % Electron charge [C] L=1e-9;
% Potential heights in the two regions [eV]
V1 = 0.0; V2 = 0.3;
% Number of energy values to consider n = 1000;
% Vector of n energies [eV]
energyVector = [linspace(0,0.29,n/2) linspace(0.301,3.0,n/2)];
% Vector of n calculated transmission probabilities
transmissionVector = zeros(1,n); % initially put to zero
% Loop over energy values
for L=1e-9:2e-9:6e-9 for index = 1:n
energy = energyVector(index);
% Energy convertions from eV to J
energyJoules = energy*eCharge; V1Joules = V1*eCharge; V2Joules = V2*eCharge;
% Calculate wave numbers in the different regions
k1 = sqrt(2*mass*(energyJoules - V1Joules))/hbar; k2 = sqrt(2*mass*(energyJoules - V2Joules))/hbar;
if energy > V2 transmission = 1/(1 + ((((k1^2-k2^2)/(2*k1*k2))^2)*(sin(k2*L))^2)); elseif energy <V2 transmission = 1/(1 + ((((k1^2+k2^2)/(2*k1*k2))^2)*(sin(k2*L))^2)); end transmissionVector(index) = transmission; end
figure(); % Open a figure canvas
% Plot transmission probability as a function of energy plot(energyVector, transmissionVector); % Add labels to axes xlabel('Energy [eV]'); ylabel('Transmission probability'); % Add figure title title('Transmission probability for a step potential of height 0.3
eV(Theoritical)'); % Scale axes end
4. Matlab program for fig 4
%% Define constants
hbar = 1.0545716e-34; % Planck's constant [Js] mass = 9.109382e-31; % Electron mass [kg] eCharge = 1.6021764e-19; % Electron charge [C] L=1e-9;
% Potential heights in the two regions [eV]
V1 = 0.0; V2 = 0.3;
% Number of energy values to consider n = 1000;
% Vector of n energies [eV]
energyVector = linspace(0.0,5.0,n);
% Vector of n calculated transmission probabilities
transmissionVector = zeros(1,n); % initially put to zero
% Loop over energy values
for V2 = 0.1:0.3:3.0 for index = 1:n
energy = energyVector(index);
% Energy convertions from eV to J
energyJoules = energy*eCharge; V1Joules = V1*eCharge; V2Joules = V2*eCharge;
% Calculate wave numbers in the different regions
k1 = sqrt(2*mass*(energyJoules - V1Joules))/hbar; k2 = sqrt(2*mass*(energyJoules - V2Joules))/hbar;
% Construct the propagation matrix Pu= 1/(2*sqrt(k1*k2))*[(k1+k2) (k1-k2); (k1-k2) (k1+k2)]; Pp=[exp(-(i*k2*L)) 0; 0 exp(+(i*k2*L))]; Pd= 1/(2*sqrt(k1*k2))*[(k1+k2) (k2-k1); (k2-k1) (k1+k2)]; pMatrix = Pu*Pp*Pd;
% Calculate the transmission probability and store it in % transmissionVector
transmission = 1/abs(pMatrix(1,1))^2; transmissionVector(index) = transmission; end
hold all; % Open a figure canvas
% Plot transmission probability as a function of energy plot(energyVector, transmissionVector); % Add labels to axes xlabel('Energy [eV]'); ylabel('Transmission probability'); % Add figure title title('Transmission probability for a step potential of length 1nm and
different height'); % Scale axes end
5. Matlab program for fig 6a and 6b
%******************************************************************* % % Fundamentals of Nanoscience [FKA131] % Example file, computer project % % This Matlab script will calculate the transmission probability % for a wave impending on a step potential of height V = 0.3 eV, % using the propagation matrix method. % % % % V1 V2 V1 % % -----------------------| |--------------- % | | % | | % | | % | | % |---------------------| % %*******************************************************************
%% Define constants
hbar = 1.0545716e-34; % Planck's constant [Js] mass = 9.109382e-31; % Electron mass [kg] eCharge = 1.6021764e-19; % Electron charge [C] L=1e-9;
% Potential heights in the two regions [eV]
V1 = 0.3; V2 = 0.0;
% Number of energy values to consider n = 1000;
% Vector of n energies [eV]
energyVector = linspace(0,0.3,n);
% Vector of n calculated transmission probabilities
transmissionVector = zeros(1,n); % initially put to zero
% Loop over energy values
for L=1e-9:4e-9:5e-9 for index = 1:n
energy = energyVector(index);
% Energy convertions from eV to J
energyJoules = energy*eCharge; V1Joules = V1*eCharge; V2Joules = V2*eCharge;
% Calculate wave numbers in the different regions
k1 = sqrt(2*mass*(energyJoules - V1Joules))/hbar; k2 = sqrt(2*mass*(energyJoules - V2Joules))/hbar;
% Construct the propagation matrix Pu= 1/(2*sqrt(k1*k2))*[(k1+k2) (k1-k2); (k1-k2) (k1+k2)]; Pp=[exp(-(1i*k2*L)) 0; 0 exp(+(1i*k2*L))]; Pd= 1/(2*sqrt(k1*k2))*[(k1+k2) (k2-k1); (k2-k1) (k1+k2)]; pMatrix = Pu*Pp*Pd;
% Calculate the transmission probability and store it in % transmissionVector
transmission = 1/abs(pMatrix(1,1))^2; transmissionVector(index) = transmission; end
% Open a figure canvas figure();
% Plot transmission probability as a function of energy plot(energyVector, transmissionVector); % Add labels to axes xlabel('Energy [eV]'); ylabel('Transmission probability'); % Add figure title title('Transmission probability for a finite potential well of height 0.3 eV
and L= nm'); % Scale axes end
6. Matlab program for fig 6c and 6d
%% Define constants
hbar = 1.0545716e-34; % Planck's constant [Js] mass = 9.109382e-31; % Electron mass [kg] eCharge = 1.6021764e-19; % Electron charge [C] L=1e-9;
% Potential heights in the two regions [eV]
V1 = 0.3; V2 = 0;
% Number of energy values to consider n = 100;
% Vector of n energies [eV]
energyVector = linspace(0,0.3,n);
% Vector of n calculated transmission probabilities
yb = zeros(1,n); % initially put to zero ya = zeros(1,n);
% Loop over energy values
for index = 1:n
energy = energyVector(index);
% Energy convertions from eV to J
energyJoules = energy*eCharge; V1Joules = V1*eCharge; V2Joules = V2*eCharge;
% Calculate wave numbers in the different regions
k1 = sqrt(2*mass*(-energyJoules + V1Joules))/hbar; k2 = sqrt(2*mass*(energyJoules - V2Joules))/hbar;
ya(index)=k1/k2;
yb(index) = -(((k1/k2)*(cos(k2*L))-
sin(k2*L))/(((k1/k2)*sin(k2*L))+cos(k2*L))); end
% Open a figure canvas figure(); % Plot transmission probability as a function of energy plot( energyVector, yb,'r',energyVector, ya);
% Add labels to axes xlabel('Energy [eV]'); ylabel('y'); % Add figure title title('Theoritical calculation for discrete bound energy state');