[Pw_forum] About band structure.

Hande Ustunel hande at newton.physics.metu.edu.tr
Thu Aug 7 11:31:46 CEST 2008

> > And what is /awk/java/whathever_you_are_familiar_with ?

I believe what Stefano meant is just take any known computer language
(which fortran, awk, bash, java each are) or any other one you are already
using and write a simple code that generates a given number of points
between two arbitrary points in space. I would suggest octave or matlab if
you are unfamiliar with coding. Maybe something like this :

function ks=get_points(point1,point2,nks)
  kx = [linspace(point1(1),point2(1),nks)]';
  ky = [linspace(point1(2),point2(2),nks)]';
  kz = [linspace(point1(3),point2(3),nks)]';

  ks=[ kx ky kz ones(nks,1)];


Just copy this into a file called get_points.m, start octave (you should
already have this, assuming you are using linux), type something like
get_points([0 0 0], [1 0 0], 25) and copy and paste the result in your
input. You have to repeat this for each pair of points. Make sure you don't
repeat the same point (say K) twice because plotband really hates 
that. Also beware that I put in the weights in the above script assuming
that you are running an nscf or a bands calculation where it doesn't matter
what you have for weights. If you are running anything else it does.

Hope this helps.

Hande Toffoli
Department of Physics
Office 439
Middle East Technical University
Ankara 06531, Turkey
Tel : +90 312 210 3264

More information about the users mailing list