graphene/2D-Conductivity/conductivity_calculations.m

165 lines
5.7 KiB
Matlab

%% conductivity_calculations.m
%%
%% calculate and present 2D sheet conductivty for graphene
close all; clear all; clc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% FLAGS & OPTIONS
%%%%%%%%%%%%%%%%%%%%%%%%%%%
DISPLAY_HZ = true; % convert rads back to Hz for presenting
MIN_F = 9;
MAX_F = 15;
F_TOTAL = 1e2; % number of points to generate
% EXCITATION_TYPE = 'intra';
EXCITATION_TYPE = 'inter';
% EXCITATION_TYPE = 'all';
MULTIPLE_SERIES = true; % for comparing two dopants
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% CALCULATE
%%%%%%%%%%%%%%%%%%%%%%%%%%%
x_vals = logspace(MIN_F, MAX_F, F_TOTAL); % hz
x_vals = x_vals .* (2*pi); % rads-1
% CALCULATE SHEET CONDUCTIVITY
cond = zeros(length(x_vals), 2);
for x=1:length(x_vals)
cond(x, :) = sheet_conductivity(x_vals(x),... % omega (rads-1)
fermi_from_carrier_density(1.3e17, ev_to_j(3)),... % fermi_level (J)
10,... % temp (K)
1e-12); % scatter_lifetime (s)
end
if MULTIPLE_SERIES
cond2 = zeros(length(x_vals), 2);
for x=1:length(x_vals)
cond2(x, :) = sheet_conductivity(x_vals(x),... % omega (rads-1)
fermi_from_carrier_density(1.3e17, ev_to_j(3)),... % fermi_level (J)
300,... % temp (K)
1e-12); % scatter_lifetime (s)
end
cond3 = zeros(length(x_vals), 2);
for x=1:length(x_vals)
cond3(x, :) = sheet_conductivity(x_vals(x),... % omega (rads-1)
fermi_from_carrier_density(1.3e17, ev_to_j(3)),... % fermi_level (J)
2230,... % temp (K)
1e-12); % scatter_lifetime (s)
end
end
if DISPLAY_HZ % divide radians back to hertz
x_vals = x_vals ./ (2*pi);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% RENDER
%%%%%%%%%%%%%%%%%%%%%%%%%%%
RE_COLOUR = 'r-';
IM_COLOUR = 'r--';
MAG_COLOUR = 'r:';
RE_COLOUR2 = 'g-';
IM_COLOUR2 = 'g--';
MAG_COLOUR2 = 'g:';
RE_COLOUR3 = 'b';
IM_COLOUR3 = 'b--';
MAG_COLOUR3 = 'b:';
LW = 2;
figure(1);
hold on;
% INTRA
if strcmp(EXCITATION_TYPE, 'intra')
cond = cond * 1e3;
cond2 = cond2 * 1e3;
cond3 = cond3 * 1e3;
ylabel('Conductivity (mS)');
plot(x_vals, real(cond(:, 1)), RE_COLOUR, 'LineWidth', LW);
plot(x_vals, imag(cond(:, 1)), IM_COLOUR, 'LineWidth', LW);
plot(x_vals, abs(cond(:, 1)), MAG_COLOUR, 'LineWidth', LW);
if MULTIPLE_SERIES
plot(x_vals, real(cond2(:, 1)), RE_COLOUR2, 'LineWidth', LW);
plot(x_vals, imag(cond2(:, 1)), IM_COLOUR2, 'LineWidth', LW);
plot(x_vals, abs(cond2(:, 1)), MAG_COLOUR2, 'LineWidth', LW);
plot(x_vals, real(cond3(:, 1)), RE_COLOUR3, 'LineWidth', LW);
plot(x_vals, imag(cond3(:, 1)), IM_COLOUR3, 'LineWidth', LW);
plot(x_vals, abs(cond3(:, 1)), MAG_COLOUR3, 'LineWidth', LW);
end
title('2D Intraband Sheet Conductivity');
% INTER
elseif strcmp(EXCITATION_TYPE, 'inter')
cond = cond * 1e6;
cond2 = cond2 * 1e6;
cond3 = cond3 * 1e6;
ylabel('Conductivity (\muS)');
plot(x_vals, real(cond(:, 2)), RE_COLOUR, 'LineWidth', LW);
plot(x_vals, imag(cond(:, 2)), IM_COLOUR, 'LineWidth', LW);
plot(x_vals, abs(cond(:, 2)), MAG_COLOUR, 'LineWidth', LW);
if MULTIPLE_SERIES
plot(x_vals, real(cond2(:, 2)), RE_COLOUR2, 'LineWidth', LW);
plot(x_vals, imag(cond2(:, 2)), IM_COLOUR2, 'LineWidth', LW);
plot(x_vals, abs(cond2(:, 2)), MAG_COLOUR2, 'LineWidth', LW);
plot(x_vals, real(cond3(:, 2)), RE_COLOUR3, 'LineWidth', LW);
plot(x_vals, imag(cond3(:, 2)), IM_COLOUR3, 'LineWidth', LW);
plot(x_vals, abs(cond3(:, 2)), MAG_COLOUR3, 'LineWidth', LW);
end
title('2D Interband Sheet Conductivity');
% COMPLEX
else
cond = cond * 1e3;
cond2 = cond2 * 1e3;
cond3 = cond3 * 1e3;
ylabel('Conductivity (mS)');
plot(x_vals, real(sum(cond, 2)), RE_COLOUR, 'LineWidth', LW);
plot(x_vals, imag(sum(cond, 2)), IM_COLOUR, 'LineWidth', LW);
plot(x_vals, abs(sum(cond, 2)), MAG_COLOUR, 'LineWidth', LW);
if MULTIPLE_SERIES
plot(x_vals, real(sum(cond2, 2)), RE_COLOUR2, 'LineWidth', LW);
plot(x_vals, imag(sum(cond2, 2)), IM_COLOUR2, 'LineWidth', LW);
plot(x_vals, abs(sum(cond2, 2)), MAG_COLOUR2, 'LineWidth', LW);
plot(x_vals, real(sum(cond3, 2)), RE_COLOUR3, 'LineWidth', LW);
plot(x_vals, imag(sum(cond3, 2)), IM_COLOUR3, 'LineWidth', LW);
plot(x_vals, abs(sum(cond3, 2)), MAG_COLOUR3, 'LineWidth', LW);
end
title('2D Sheet Conductivity');
end
set(gca,'Xscale','log')
% set(gca,'Yscale','log')
axis tight
% ylim([-inf 225])
if MULTIPLE_SERIES
% legend('TTF Re(\sigma)', 'TTF Im(\sigma)', 'TTF |\sigma|', 'CoCp_2 Re(\sigma)', 'CoCp_2 Im(\sigma)', 'CoCp_2 |\sigma|');
legend('1x10^{8}m^{-2} Re(\sigma)', '1x10^{8}m^{-2} Im(\sigma)', '1x10^{8}m^{-2} |\sigma|', '1x10^{15}m^{-2} Re(\sigma)', '1x10^{15}m^{-2} Im(\sigma)', '1x10^{15}m^{-2} |\sigma|', '1.3x10^{17}m^{-2} Re(\sigma)', '1.3x10^{17}m^{-2} Im(\sigma)', '1.3x10^{17}m^{-2} |\sigma|');
% legend('10K Re(\sigma)', '10K Im(\sigma)', '10K |\sigma|', '300K Re(\sigma)', '300K Im(\sigma)', '300K |\sigma|', '2230K Re(\sigma)', '2230K Im(\sigma)', '2230K |\sigma|');
% legend('5x10^{-12} s Re(\sigma)', '5x10^{-12} s Im(\sigma)', '5x10^{-12} s |\sigma|', '1x10^{-12} s Re(\sigma)', '1x10^{-12} s Im(\sigma)', '1x10^{-12} s |\sigma|', '1x10^{-13} s Re(\sigma)', '1x10^{-13} s Im(\sigma)', '1x10^{-13} s |\sigma|');
else
legend('Real', 'Imaginary');
end
grid;
if DISPLAY_HZ
xlabel('Frequency (Hz)');
else
xlabel('Frequency (rads-1)');
end