From c29ffe96bb59d2089252dbea98a708bae9ae489f Mon Sep 17 00:00:00 2001 From: andy Date: Mon, 22 Mar 2021 17:51:55 +0000 Subject: [PATCH] inter/intra breakdown, better max carrier val --- 2D-Conductivity/conductivity_calc_surface.m | 53 +++++++++++++++++--- 2D-Conductivity/conductivity_calculations.m | 41 ++++++++++++--- 2D-Conductivity/fermi_from_carrier_density.m | 2 +- 2D-Conductivity/sheet_conductivity.m | 10 ++-- 4 files changed, 87 insertions(+), 19 deletions(-) diff --git a/2D-Conductivity/conductivity_calc_surface.m b/2D-Conductivity/conductivity_calc_surface.m index 0c7dc2d..c1cb3b6 100644 --- a/2D-Conductivity/conductivity_calc_surface.m +++ b/2D-Conductivity/conductivity_calc_surface.m @@ -4,42 +4,72 @@ close all; clear all; clc; +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% FLAGS & OPTIONS +%%%%%%%%%%%%%%%%%%%%%%%%%%% + DISPLAY_HZ = true; MIN_F = 0; MAX_F = 15; % Hz F_TOTAL = 50; -MAX_Y = 30; % carriers +MAX_Y = 17; % carriers (m-2) Y_TOTAL = 50; +%EXCITATION_TYPE = 'intra'; +EXCITATION_TYPE = 'inter'; +%EXCITATION_TYPE = 'all'; + t = 2.8; % eV +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% CALCULATE +%%%%%%%%%%%%%%%%%%%%%%%%%%% + f_vals = logspace(MIN_F, MAX_F, F_TOTAL); % hz f_vals = f_vals .* (2*pi); % rads-1 carrier_vals = logspace(0, MAX_Y, Y_TOTAL); % m-2 %carrier_vals = carrier_vals + 273.15; +% below turns turns carrier densities into Fermi energies fermi_vals = zeros(1, length(carrier_vals)); for carr=1:length(carrier_vals) fermi_vals(carr) = fermi_from_carrier_density(carrier_vals(carr), ev_to_j(t)); 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 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 +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% RENDER +%%%%%%%%%%%%%%%%%%%%%%%%%%% + if DISPLAY_HZ % divide radians back to hertz f_vals = f_vals ./ (2*pi); end 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; rotate3d on grid; @@ -47,7 +77,7 @@ colorbar; set(h, 'xscale', 'log') set(h, 'yscale', 'log') title('2D Sheet Real Conductivity'); -ylabel('Net Carrier Density'); +ylabel('Net Carrier Density (m-2)'); zlabel('Conductivity (S/m)'); if DISPLAY_HZ xlabel('Frequency (Hz)'); @@ -56,7 +86,14 @@ else end 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; rotate3d on grid; @@ -64,7 +101,7 @@ colorbar; set(h, 'xscale', 'log') set(h, 'yscale', 'log') title('2D Sheet Imaginary Conductivity'); -ylabel('Net Carrier Density'); +ylabel('Net Carrier Density (m-2)'); zlabel('Conductivity (S/m)'); if DISPLAY_HZ xlabel('Frequency (Hz)'); diff --git a/2D-Conductivity/conductivity_calculations.m b/2D-Conductivity/conductivity_calculations.m index b62b868..205002a 100644 --- a/2D-Conductivity/conductivity_calculations.m +++ b/2D-Conductivity/conductivity_calculations.m @@ -2,31 +2,58 @@ %% %% calculate and present 2D sheet conductivty for graphene -close all;clear all; clc; +close all; clear all; clc; + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% FLAGS & OPTIONS +%%%%%%%%%%%%%%%%%%%%%%%%%%% DISPLAY_HZ = true; MIN_F = 9; MAX_F = 15; 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 = x_vals .* (2*pi); % rads-1 -cond = []; -for x=x_vals - % omega (rads-1), fermi_level (J), temp (K), scatter_lifetime (s-1) - cond = [cond sheet_conductivity(x, fermi_from_carrier_density(7e7, ev_to_j(2.8)), 3000, 5e-12)]; +% 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(2.2e17, ev_to_j(2.8)), % fermi_level (J) + 300, % temp (K) + 0.135e-12); % scatter_lifetime (s-1) end if DISPLAY_HZ % divide radians back to hertz x_vals = x_vals ./ (2*pi); end +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% RENDER +%%%%%%%%%%%%%%%%%%%%%%%%%%% + figure(1); hold on; %plot(x_vals, real(cond)); -semilogx(x_vals, real(cond)); -semilogx(x_vals, imag(cond)); +if EXCITATION_TYPE == 'intra' + 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'); grid; diff --git a/2D-Conductivity/fermi_from_carrier_density.m b/2D-Conductivity/fermi_from_carrier_density.m index bdd0910..5ab5f16 100644 --- a/2D-Conductivity/fermi_from_carrier_density.m +++ b/2D-Conductivity/fermi_from_carrier_density.m @@ -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 sf = 1; diff --git a/2D-Conductivity/sheet_conductivity.m b/2D-Conductivity/sheet_conductivity.m index 3bc3301..581833f 100644 --- a/2D-Conductivity/sheet_conductivity.m +++ b/2D-Conductivity/sheet_conductivity.m @@ -6,7 +6,7 @@ e = 1.602e-19; % coulombs kb = 1.380e-23; % J/K hbar = 6.626e-34 / (2*pi); % Js -%% TERM 1 +%% TERM 1 - INTRABRAND term1_coeff = (2i*(e^2)*kb*temp) ... / ... (pi*hbar^2*(omega + (1i/scatter_lifetime))); @@ -14,7 +14,9 @@ term1 = log(2*cosh(fermi_level ... / ... (2*kb*temp))); -%% TERM 2 +intraband = term1_coeff*term1; + +%% TERM 2 - INTERBAND term2_coeff = (e^2) ... / ... (4*hbar); @@ -30,8 +32,10 @@ term_2_term_3 = (1i/2*pi) * ... / ... ((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 -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