[Pw_forum] About band structure.
Marcel Mohr
marcel at physik.tu-berlin.de
Thu Aug 7 11:02:37 CEST 2008
On Thu, 7 Aug 2008, Bipul Rakshit wrote:
> And what is /awk/java/whathever_you_are_familiar_with ?
I am afraid I can't help you there.
I do also not know what /awk/java/whatever_I_am_familar_with is,
but do know a little python,
In the attachment is a skript, that calculates the k-points along
several endpoints ("points"), with "fineness", the number of k-points in between.
Cheers Marcel
>
> thanks
>
>
> On Thu, Aug 7, 2008 at 9:45 AM, Stefano de Gironcoli <degironc at sissa.it> wrote:
> 1.) change the plotting range given in input to your plotting routine
> 2.) write a 5-10 line fortran_code/bash_script
> /awk/java/whathever_you_are_familiar_with that makes this trivial task
> for you and feed the resulting data to pw.x
> best regards,
> Stefano
>
>
> Bipul Rakshit wrote:
> > Hello PWscf users,
> > I have a question about the band structure.
> > 1. I have plotted the band structure of ScSb. There i found that in
> > that post script file it draw the band very near the fermi level
> > (-12.0:3.0) only. But if I want the bands range say -20:20, what and
> > where I have to change?
> >
> > 2. I have given the K-points as used in Si calculation in examples, in
> > my ScSb file. It works well. But I am also using SIESTA, where we
> > mention the k-points as below
> >
> > BandLinesScale pi/a
> > %block BandLines # These are comments
> > 1 0.000 0.000 0.000 \Gamma # Begin at Gamma
> > 25 2.000 0.000 0.000 X # 25 points from Gamma to X
> > 10 2.000 1.000 0.000 W # 10 points from X to W
> > 15 1.000 1.000 1.000 L # 15 points from W to L
> > 20 0.000 0.000 0.000 \Gamma # 20 points from L to Gamma
> > 25 1.500 1.500 1.500 K # 25 points from Gamma to K
> > %endblock BandLines
> >
> > the first column after* %block BandLines* shows the number of points
> > between the given k-points (like 25 points between Gamma and X). In
> > this way we dont have to mention all the k-points and we get a smooth
> > graph. But in pwscf I have to mention all the k-points in order to get
> > a smooth graph as in the example of Si.
> > So my question is, is there any way so that we have to mention only
> > the points at the zone boundary, and rest of the points it will take
> > automatically?
> >
> > --
> > Bipul Rakshit
> > PhD Student,
> > Barkatullah University,
> > Bhopal 462026,
> > MP, India
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Pw_forum mailing list
> > Pw_forum at pwscf.org
> > http://www.democritos.it/mailman/listinfo/pw_forum
> >
>
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://www.democritos.it/mailman/listinfo/pw_forum
>
>
>
>
> --
> Bipul Rakshit
> PhD Student,
> Barkatullah University,
> Bhopal 462026,
> MP, India
>
>
-------------- next part --------------
# This program produces a list of q-points needed for anadbb. The total amount of q-points is written.
# It connects the points <points> with <fineness> steps between. The first entry of fineness governs the steps between the 1st
# and 2nd entry of points.
from Numeric import array, Float
import sys
points=array([ [0,0,0] , [0.5,0.5,0.0] , [1 , 0 ,0]])
fineness=array([99,57])#,15,29,15,29,29,29])
counter=0
# check of fineness contains points-1 entries
if fineness.shape[0] != (points.shape[0]-1):
print ("Die Anzahl der Schritte und K-Punte stimmt nicht ueberein")
sys.exit()
#produce q-points
for i in range(points.shape[0]-1):
divisor=float(fineness[i])
for j in range(int(divisor)):
jfloat=float(j)
punkt=points[i]+jfloat/divisor*(points[i+1]-points[i])
print "\t %5.5f \t %5.5f \t %5.5f \t 1.0" % (punkt[0],punkt[1],punkt[2])
counter=counter+1
#last point
print "\t %5.5f \t %5.5f \t %5.5f \t 1.0" % (points[i+1][0],points[i+1][1],points[i+1][2])
#print number of qpoints
print counter+1
More information about the users
mailing list