Hi(adsbygoogle = window.adsbygoogle || []).push({});

I have plot band structure zigzag graphene nanoribbons with Matlab.

I do not know if it is properly written program anyone can help Bug fixes.

Code (Matlab M):

NU=10; % Number of atoms

Nbnd=4*NU; % number of bands

aa=2.26;

a=sqrt(3)*aa;

Csoc=0.0;

X(1)=0;

Y(1)=0;

for ixy=2:NU

if mod(ixy,4)==2

X(ixy)=X(ixy-1)-aa*cosd(30);

Y(ixy)=Y(ixy-1)+aa*sind(30);

end

if mod(ixy,4)==3

X(ixy)=X(ixy-1);

Y(ixy)=Y(ixy-1)+aa;

end

if mod(ixy,4)==0

X(ixy)=X(ixy-1)+aa*cosd(30);

Y(ixy)=Y(ixy-1)+aa*sind(30);

end

if mod(ixy,4)==1

X(ixy)=X(ixy-1);

Y(ixy)=Y(ixy-1)+aa;

end

end

for iz=1:NU

if mod(iz,2)==1

Z(iz)=0.45;

else

Z(iz)=-0.45;

end

end

sho=0;

for is=[0,-1,1]

for ks=1:NU

sho=sho+1;

XT(sho)=X(ks)+is*a;

YT(sho)=Y(ks);

ZT(sho)=Z(ks);

Ax(sho)=is*a;

No(sho)=ks;

end

end

figure(1)

plot(XT,YT,'*')

Ax=Ax/a;

for ik=1:101

K(ik)=-pi+(ik-1)*((2*pi)/100);

H=H0(Nbnd);

for is=1:NU

for js=1:sho

dis=sqrt(((XT(is)-XT(js))^2)+((YT(is)-YT(js))^2));

if abs(dis-2.26)<0.1 & abs(No(is)-No(js))>0

l=(XT(is)-XT(js))/dis;

m=(YT(is)-YT(js))/dis;

n=(ZT(is)-ZT(js))/dis;

h=hamiltonian(l,m,n);

H((No(is)-1)*4+1:No(is)*4,(No(js)-1)*4+1:No(js)*4)=H((No(is)-1)*4+1:No(is)*4,(No(js)-1)*4+1:No(js)*4)+h*exp(i*K(ik)*Ax(js));

end

end

end

E(ik,1:Nbnd)=sort(real(eig(H)));

pl(ik)=(ik-1)/100;

end

figure(2)

plot(E)

The functions h and H0 attached.

function [h] = hamiltonian(l,m,n)

h=zeros(4,4);

tsss=-2.08;

tsps=2.48;

tpps=2.72;

tppp=-0.72;

% gharar dad ----->% S, Px, Py, Pz

% S, Px, Py, Pz

%1 2 3 4

h(1,1)=tsss;

h(1,2)=l*tsps;

h(1,3)=m*tsps;

h(1,4)=n*tsps;

h(2,1)=-(l*tsps)';

h(2,2)=l*l*tpps+(1-l*l)*tppp;

h(2,3)=l*m*tpps-l*m*tppp;

h(2,4)=l*n*tpps-l*n*tppp;

h(3,1)=-(m*tsps)';

h(3,2)=(l*m*tpps-l*m*tppp)';

h(3,3)=m*m*tpps+(1-m*m)*tppp;

h(3,4)=m*n*tpps-m*n*tppp;

h(4,1)=-(n*tsps)';

h(4,2)=(l*n*tpps-l*n*tppp)';

h(4,3)=(m*n*tpps-m*n*tppp)';

h(4,4)=n*n*tpps+(1-n*n)*tppp;

end

and

function [H0] = H0(Nbnd)

Es=-4.2;

Ep=1.715;

H0=zeros(Nbnd);

for ih0=1:Nbnd

if mod(ih0,4)==1

H0(ih0,ih0)=Es;

else

H0(ih0,ih0)=Ep;

end

end

**Physics Forums | Science Articles, Homework Help, Discussion**

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

# Graphene nanoribbons

Loading...

Similar Threads for Graphene nanoribbons |
---|

A Charge density of carbon nanotubes and graphene |

A 'Massless' Electrons in Graphene |

I How can I obtain the reciprocal lattice of graphene? |

**Physics Forums | Science Articles, Homework Help, Discussion**