inter/intra breakdown, better max carrier val
This commit is contained in:
parent
eea2bc4b79
commit
c29ffe96bb
@ -4,42 +4,72 @@
|
|||||||
|
|
||||||
close all; clear all; clc;
|
close all; clear all; clc;
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
%% FLAGS & OPTIONS
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
DISPLAY_HZ = true;
|
DISPLAY_HZ = true;
|
||||||
|
|
||||||
MIN_F = 0;
|
MIN_F = 0;
|
||||||
MAX_F = 15; % Hz
|
MAX_F = 15; % Hz
|
||||||
F_TOTAL = 50;
|
F_TOTAL = 50;
|
||||||
|
|
||||||
MAX_Y = 30; % carriers
|
MAX_Y = 17; % carriers (m-2)
|
||||||
Y_TOTAL = 50;
|
Y_TOTAL = 50;
|
||||||
|
|
||||||
|
%EXCITATION_TYPE = 'intra';
|
||||||
|
EXCITATION_TYPE = 'inter';
|
||||||
|
%EXCITATION_TYPE = 'all';
|
||||||
|
|
||||||
t = 2.8; % eV
|
t = 2.8; % eV
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
%% CALCULATE
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
f_vals = logspace(MIN_F, MAX_F, F_TOTAL); % hz
|
f_vals = logspace(MIN_F, MAX_F, F_TOTAL); % hz
|
||||||
f_vals = f_vals .* (2*pi); % rads-1
|
f_vals = f_vals .* (2*pi); % rads-1
|
||||||
|
|
||||||
carrier_vals = logspace(0, MAX_Y, Y_TOTAL); % m-2
|
carrier_vals = logspace(0, MAX_Y, Y_TOTAL); % m-2
|
||||||
%carrier_vals = carrier_vals + 273.15;
|
%carrier_vals = carrier_vals + 273.15;
|
||||||
|
|
||||||
|
% below turns turns carrier densities into Fermi energies
|
||||||
fermi_vals = zeros(1, length(carrier_vals));
|
fermi_vals = zeros(1, length(carrier_vals));
|
||||||
for carr=1:length(carrier_vals)
|
for carr=1:length(carrier_vals)
|
||||||
fermi_vals(carr) = fermi_from_carrier_density(carrier_vals(carr), ev_to_j(t));
|
fermi_vals(carr) = fermi_from_carrier_density(carrier_vals(carr), ev_to_j(t));
|
||||||
end
|
end
|
||||||
|
|
||||||
cond = zeros(length(f_vals), length(fermi_vals));
|
|
||||||
|
% CALCULATE SHEET CONDUCTIVITY
|
||||||
|
cond = zeros(length(f_vals), % frequency
|
||||||
|
length(fermi_vals), % fermi
|
||||||
|
2); % intra/inter
|
||||||
for freq=1:length(f_vals)
|
for freq=1:length(f_vals)
|
||||||
for y=1:length(fermi_vals)
|
for y=1:length(fermi_vals)
|
||||||
% omega (rads-1), fermi_level (eV), temp (K), scatter_lifetime (s-1)
|
|
||||||
cond(freq, y) = sheet_conductivity(f_vals(freq), fermi_vals(y), 300, 5e-12);
|
cond(freq, y, :) = sheet_conductivity(f_vals(freq), % omega (rads-1)
|
||||||
|
fermi_vals(y), % fermi_level (J)
|
||||||
|
300, % temp (K)
|
||||||
|
5e-12); % scatter_lifetime (s-1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
%% RENDER
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
if DISPLAY_HZ % divide radians back to hertz
|
if DISPLAY_HZ % divide radians back to hertz
|
||||||
f_vals = f_vals ./ (2*pi);
|
f_vals = f_vals ./ (2*pi);
|
||||||
end
|
end
|
||||||
|
|
||||||
figure(1)
|
figure(1)
|
||||||
surf(f_vals, carrier_vals, transpose(real(cond)));
|
if EXCITATION_TYPE == 'intra'
|
||||||
|
surf(f_vals, carrier_vals, transpose(real(cond(:, :, 1))));
|
||||||
|
elseif EXCITATION_TYPE == 'inter'
|
||||||
|
surf(f_vals, carrier_vals, transpose(real(cond(:, :, 2))));
|
||||||
|
else
|
||||||
|
surf(f_vals, carrier_vals, transpose(real(sum(cond, 3))));
|
||||||
|
end
|
||||||
h = gca;
|
h = gca;
|
||||||
rotate3d on
|
rotate3d on
|
||||||
grid;
|
grid;
|
||||||
@ -47,7 +77,7 @@ colorbar;
|
|||||||
set(h, 'xscale', 'log')
|
set(h, 'xscale', 'log')
|
||||||
set(h, 'yscale', 'log')
|
set(h, 'yscale', 'log')
|
||||||
title('2D Sheet Real Conductivity');
|
title('2D Sheet Real Conductivity');
|
||||||
ylabel('Net Carrier Density');
|
ylabel('Net Carrier Density (m-2)');
|
||||||
zlabel('Conductivity (S/m)');
|
zlabel('Conductivity (S/m)');
|
||||||
if DISPLAY_HZ
|
if DISPLAY_HZ
|
||||||
xlabel('Frequency (Hz)');
|
xlabel('Frequency (Hz)');
|
||||||
@ -56,7 +86,14 @@ else
|
|||||||
end
|
end
|
||||||
|
|
||||||
figure(2)
|
figure(2)
|
||||||
surf(f_vals, carrier_vals, transpose(imag(cond)));
|
if EXCITATION_TYPE == 'intra'
|
||||||
|
surf(f_vals, carrier_vals, transpose(imag(cond(:, :, 1))));
|
||||||
|
elseif EXCITATION_TYPE == 'inter'
|
||||||
|
surf(f_vals, carrier_vals, transpose(imag(cond(:, :, 2))));
|
||||||
|
else
|
||||||
|
surf(f_vals, carrier_vals, transpose(imag(sum(cond, 3))));
|
||||||
|
end
|
||||||
|
surf(f_vals, carrier_vals, transpose(imag(sum(cond, 3))));
|
||||||
h = gca;
|
h = gca;
|
||||||
rotate3d on
|
rotate3d on
|
||||||
grid;
|
grid;
|
||||||
@ -64,7 +101,7 @@ colorbar;
|
|||||||
set(h, 'xscale', 'log')
|
set(h, 'xscale', 'log')
|
||||||
set(h, 'yscale', 'log')
|
set(h, 'yscale', 'log')
|
||||||
title('2D Sheet Imaginary Conductivity');
|
title('2D Sheet Imaginary Conductivity');
|
||||||
ylabel('Net Carrier Density');
|
ylabel('Net Carrier Density (m-2)');
|
||||||
zlabel('Conductivity (S/m)');
|
zlabel('Conductivity (S/m)');
|
||||||
if DISPLAY_HZ
|
if DISPLAY_HZ
|
||||||
xlabel('Frequency (Hz)');
|
xlabel('Frequency (Hz)');
|
||||||
|
@ -2,31 +2,58 @@
|
|||||||
%%
|
%%
|
||||||
%% calculate and present 2D sheet conductivty for graphene
|
%% calculate and present 2D sheet conductivty for graphene
|
||||||
|
|
||||||
close all;clear all; clc;
|
close all; clear all; clc;
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
%% FLAGS & OPTIONS
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
DISPLAY_HZ = true;
|
DISPLAY_HZ = true;
|
||||||
MIN_F = 9;
|
MIN_F = 9;
|
||||||
MAX_F = 15;
|
MAX_F = 15;
|
||||||
F_TOTAL = 1e2;
|
F_TOTAL = 1e2;
|
||||||
|
|
||||||
|
%EXCITATION_TYPE = 'intra';
|
||||||
|
EXCITATION_TYPE = 'inter';
|
||||||
|
%EXCITATION_TYPE = 'all';
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
%% CALCULATE
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
x_vals = logspace(MIN_F, MAX_F, F_TOTAL); % hz
|
x_vals = logspace(MIN_F, MAX_F, F_TOTAL); % hz
|
||||||
x_vals = x_vals .* (2*pi); % rads-1
|
x_vals = x_vals .* (2*pi); % rads-1
|
||||||
|
|
||||||
cond = [];
|
% CALCULATE SHEET CONDUCTIVITY
|
||||||
for x=x_vals
|
cond = zeros(length(x_vals), 2);
|
||||||
% omega (rads-1), fermi_level (J), temp (K), scatter_lifetime (s-1)
|
for x=1:length(x_vals)
|
||||||
cond = [cond sheet_conductivity(x, fermi_from_carrier_density(7e7, ev_to_j(2.8)), 3000, 5e-12)];
|
cond(x, :) = sheet_conductivity(x_vals(x), % omega (rads-1)
|
||||||
|
fermi_from_carrier_density(2.2e17, ev_to_j(2.8)), % fermi_level (J)
|
||||||
|
300, % temp (K)
|
||||||
|
0.135e-12); % scatter_lifetime (s-1)
|
||||||
end
|
end
|
||||||
|
|
||||||
if DISPLAY_HZ % divide radians back to hertz
|
if DISPLAY_HZ % divide radians back to hertz
|
||||||
x_vals = x_vals ./ (2*pi);
|
x_vals = x_vals ./ (2*pi);
|
||||||
end
|
end
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
%% RENDER
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
figure(1);
|
figure(1);
|
||||||
hold on;
|
hold on;
|
||||||
%plot(x_vals, real(cond));
|
%plot(x_vals, real(cond));
|
||||||
semilogx(x_vals, real(cond));
|
if EXCITATION_TYPE == 'intra'
|
||||||
semilogx(x_vals, imag(cond));
|
semilogx(x_vals, real(cond(:, 1)));
|
||||||
|
semilogx(x_vals, imag(cond(:, 1)));
|
||||||
|
elseif EXCITATION_TYPE == 'inter'
|
||||||
|
semilogx(x_vals, real(cond(:, 2)));
|
||||||
|
semilogx(x_vals, imag(cond(:, 2)));
|
||||||
|
else
|
||||||
|
semilogx(x_vals, real(sum(cond, 2)));
|
||||||
|
semilogx(x_vals, imag(sum(cond, 2)));
|
||||||
|
end
|
||||||
|
|
||||||
legend('Real', 'Imaginary');
|
legend('Real', 'Imaginary');
|
||||||
grid;
|
grid;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
function fermi = fermi_from_carrier_density(carrier_density, energy_scale), % cm-2, J
|
function fermi = fermi_from_carrier_density(carrier_density, energy_scale), % m-2, J
|
||||||
|
|
||||||
if carrier_density > 0
|
if carrier_density > 0
|
||||||
sf = 1;
|
sf = 1;
|
||||||
|
@ -6,7 +6,7 @@ e = 1.602e-19; % coulombs
|
|||||||
kb = 1.380e-23; % J/K
|
kb = 1.380e-23; % J/K
|
||||||
hbar = 6.626e-34 / (2*pi); % Js
|
hbar = 6.626e-34 / (2*pi); % Js
|
||||||
|
|
||||||
%% TERM 1
|
%% TERM 1 - INTRABRAND
|
||||||
term1_coeff = (2i*(e^2)*kb*temp) ...
|
term1_coeff = (2i*(e^2)*kb*temp) ...
|
||||||
/ ...
|
/ ...
|
||||||
(pi*hbar^2*(omega + (1i/scatter_lifetime)));
|
(pi*hbar^2*(omega + (1i/scatter_lifetime)));
|
||||||
@ -14,7 +14,9 @@ term1 = log(2*cosh(fermi_level ...
|
|||||||
/ ...
|
/ ...
|
||||||
(2*kb*temp)));
|
(2*kb*temp)));
|
||||||
|
|
||||||
%% TERM 2
|
intraband = term1_coeff*term1;
|
||||||
|
|
||||||
|
%% TERM 2 - INTERBAND
|
||||||
term2_coeff = (e^2) ...
|
term2_coeff = (e^2) ...
|
||||||
/ ...
|
/ ...
|
||||||
(4*hbar);
|
(4*hbar);
|
||||||
@ -30,8 +32,10 @@ term_2_term_3 = (1i/2*pi) * ...
|
|||||||
/ ...
|
/ ...
|
||||||
((hbar*omega - 2*fermi_level)^2 + 4*((kb*temp)^2)));
|
((hbar*omega - 2*fermi_level)^2 + 4*((kb*temp)^2)));
|
||||||
|
|
||||||
|
interband = term2_coeff*(term_2_term_1 + term_2_term_2 - term_2_term_3);
|
||||||
|
|
||||||
%% OUTPUT
|
%% OUTPUT
|
||||||
conductivity = term1_coeff*term1 + term2_coeff*(term_2_term_1 + term_2_term_2 - term_2_term_3);
|
conductivity = [intraband interband]; % return separately for display or summing
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user