set pm3d depth lighting primary 0.7
set object rect from sc 0,0 to sc 1,1 behind fc "#114400"
set palette defined (0 "#6666ff", 1 "#ff6666")
set samples 64
set isosamples 64
unset border
unset tics
unset colorbox
unset key
set xyplane 0
set view 70,130, 1.4
set term pngcairo font "Times-Italic, " size 360,360
set out "band.png"
set parametric
c = 0.7
set urange [-pi/256:pi]
set vrange [-3*pi/2:0]
set xrange [-c:c]
set yrange [-c:c]
set zrange [-c:c]
set arrow from 0,0,-1 to 0,0,1 head front lc "#ffffff"
set arrow from -1,0,0 to 1,0,0 head front lc "#ffffff"
set arrow from 0,-1,0 to 0,1,0 head front lc "#ffffff"
set label "k_x" at 1.1,0.0 tc "#ffffff" front
set label "k_y" at 0,1.02,0 tc "#ffffff" front
set label "k_z" at 0,0,1.06 tc "#ffffff" front

# energy band structure in k-space for Si 
A=4.1
B=1.4
C=3.7
e = 1
rp(u,v) = sqrt(e / (A + sqrt(B**2 + C**2\
          * (cos(v)**2*sin(v)**2*sin(u)**2 + cos(u)**2)*sin(u)**2)))
rm(u,v) = sqrt(e / (A - sqrt(B**2 + C**2\
          * (cos(v)**2*sin(v)**2*sin(u)**2 + cos(u)**2)*sin(u)**2)))

OFF = 0
xp(u,v) = rp(u,v)*sin(u)*cos(v) + OFF
yp(u,v) = rp(u,v)*sin(u)*sin(v) + OFF
zp(u,v) = rp(u,v)*cos(u)
xm(u,v) = rm(u,v)*sin(u)*cos(v) - OFF 
ym(u,v) = rm(u,v)*sin(u)*sin(v) - OFF 
zm(u,v) = rm(u,v)*cos(u)

splot \
'++' using (xp($1,$2)):(yp($1,$2)):(zp($1,$2)):(0) w pm3d,\
'++'  using (xm($1,$2)):(ym($1,$2)):(zm($1,$2)):(1) w pm3d

!display band.png