%FigC_3b.m
%Essential Electron Transport for Device Physics
%Graphene band structure
%

clear all
clf;		
%plotting parameters + fontsizes
FS      = 12;	%label fontsize
FSN     = 12;	%number fontsize
LW      = 1;	%linewidth

% Change default axes fonts.
set(0,'DefaultAxesFontName', 'Times');
set(0,'DefaultAxesFontSize', FSN);

% Change default text fonts.
set(0,'DefaultTextFontname', 'Times');
set(0,'DefaultTextFontSize', FSN);
%hbarChar=['\fontname{MT Extra}h\fontname{Times}'];

hbar=1.0545715e-34;		%Planck's constant (Js)
echarge=1.6021764e-19;	%electron charge (C)
m0=9.109382e-31;		%bare electron mass (kg)

npoints=100;

t=2.55;                 %hopping integral [eV]
L=1;                    %normalized lattice constant
%setup kx and ky for Gamma - M - K - Gamma path
kx=horzcat(linspace(0,2*pi/3,npoints),linspace(2*pi/3,2*pi/3,npoints),...
    linspace(2*pi/3,0,npoints));
ky=horzcat(linspace(0,0,npoints),linspace(0,2*pi/(3*sqrt(3)),npoints),...
    linspace(2*pi/(3*sqrt(3)),0,npoints));
%electron dispersion along stmmetry directions Gamma - M - K - Gamma
Eplus=t*sqrt(1+(4*cos(3*kx*L/2)).*(cos(sqrt(3)*ky*L/2))+...
    4*(cos(sqrt(3)*ky*L/2)).*(cos(sqrt(3)*ky*L/2)));
Eminus=-t*sqrt(1+(4*cos(3*kx*L/2)).*(cos(sqrt(3)*ky*L/2))+...
    4*(cos(sqrt(3)*ky*L/2)).*(cos(sqrt(3)*ky*L/2)));

%plot electron dispersion
kplot=horzcat(kx(1:npoints),(2*pi/3)+ky(npoints+1:2*npoints),...
    (2*pi/3)+ky(2*npoints)+...
    linspace(0,sqrt((2*pi/3)^2+(2*pi/(3*sqrt(3)))^2),npoints));
ttl=['\rmFigC.3b, Graphene band structure, \itt\rm_{hop,1} = ',...
    num2str(t,'%3.2f'),' eV'];

figure(1)
plot(kplot,Eplus,'-r','LineWidth',LW)
hold on
plot(kplot,Eminus,'-b','LineWidth',LW)
hold off
ylabel('Energy, \itE_k\rm (eV)');
xlabel('Path \itk\rm');

title (ttl);
grid on
text(-0.05,-10,'\Gamma');
text(2*pi/3-0.05,-10,'M');
text((2*pi/3)+ky(2*npoints)-0.05,-10,'K');
text(kplot(300)-0.05,-10,'\Gamma');
axis([0,max(kplot),1.1*min(Eminus),1.1*max(Eplus)]);

