38 lines
1001 B
Matlab
38 lines
1001 B
Matlab
function conductivity = sheet_conductivity(omega, fermi_level, temp, scatter_lifetime)
|
|
%SHEET_CONDUCTIVITY Calculate 2D sheet conductivity
|
|
|
|
%% CONSTANTS
|
|
e = 1.602e-19; % coulombs
|
|
kb = physconst('Boltzmann'); % J/K
|
|
hbar = 6.626e-34 / (2*pi); % Js
|
|
|
|
%% TERM 1
|
|
term1_coeff = (2i*(e^2)*kb*temp) ...
|
|
/ ...
|
|
(pi*hbar^2*(omega + (1i/scatter_lifetime)));
|
|
term1 = log(2*cosh(fermi_level ...
|
|
/ ...
|
|
(2*kb*temp)));
|
|
|
|
%% TERM 2
|
|
term2_coeff = (e^2) ...
|
|
/ ...
|
|
(4*hbar);
|
|
|
|
term_2_term_1 = 1/2;
|
|
term_2_term_2 = (1/pi) * ...
|
|
atan((hbar*omega - 2*fermi_level) ...
|
|
/ ...
|
|
(2*kb*temp));
|
|
|
|
term_2_term_3 = (1i/2*pi) * ...
|
|
log((hbar*omega + 2*fermi_level)^2 ...
|
|
/ ...
|
|
((hbar*omega - 2*fermi_level)^2 + 4*((kb*temp)^2)));
|
|
|
|
%% OUTPUT
|
|
conductivity = term1_coeff*term1 + term2_coeff*(term_2_term_1 + term_2_term_2 - term_2_term_3);
|
|
|
|
end
|
|
|