Bands in the fcc
> restart;
> with(linalg):
Warning, new definition for norm
Warning, new definition for trace
> a1:=vector([1/2,1/2,0]);
> a2:=vector([0,1/2,1/2]);
> a3:=vector([1/2,0,1/2]);
> cellvolume:=dotprod(a1,crossprod(a2,a3));
Reciprocal lattice vectors, without the factor
. Use
evalm
to get a pretty output
> b1:=evalm(crossprod(a2,a3)/cellvolume);
> b2:=evalm(crossprod(a3,a1)/cellvolume);
> b3:=evalm(crossprod(a1,a2)/cellvolume);
First shell:
>
G[1]:=b1; G[2]:=b2; G[3]:= b3; G[4]:=vector([1,1,1]);
for i from 1 to 4 do G[i+4]:=-G[i] od;
Second shell
>
G[9]:=vector([2,0,0]); G[10]:=vector([0,2,0]); G[11]:=vector([0,0,2]);
G[12]:=-G[9]; G[13]:=-G[10]; G[14]:=-G[11];
> assume(x,real): assume(y,real): assume(z,real):
Empty lattice bands in the x direction
> y:=0; z:=0;
> E[0]:=x^2+y^2+z^2;
> for i from 1 to 14 do E[i]:=dotprod((vector([x,y,z])-G[i]),(vector([x,y,z])-G[i])) od;
> EmptyBands:=[E[n] $n=0..14];
To avoid possible printer problems, select Options, Plot Display, Window
> plot(EmptyBands,x=-1..1,color=[black,red,red]);