Ladies and gentlemen,
For a little pet project, I need to get the complete set of K points,
employed by BAND - that is, covering the full Brillouin zone. As far
as I can see, only the K-points within the irreducible wedge are
generated (and stored) usually.
To do this, I rip a bit of code out of kpnteq, and run all K points
in the wedge through the BZ symop table:
allk (:,1:kt) = xyzkpt(:,:)
nallk = kt
kor (1:kt) = kequiv(1:kt)
do k = 1, kt
if ( kequiv(k) /= k ) cycle ! Reducible point, ignore
!
! Generate all symmetry equivalent K points
!
ioper_: do ioper = noper, 1, -1
proj(1:ndim) = matmul(oper(:,:,ioper),xyzkpt(:,k))
!
! Check for duplicates in the expanded table, by comparing the
! new K point to all already recorded points, modulo the bz
cell
!
do k2 = 1, nallk
vec(1:ndim) = proj(1:ndim) - allk(:,k2)
call centrl (ndim, bvec, avec, 1, vec)
if (sum(abs(vec(1:ndim)))<=tol) cycle ioper_
end do
!
! This is a new K point. Make sure it's is inside the bz, and
! record it, along with all its images at the BZ boundary
!
nallk = nallk + 1
kor(nallk) = k
allk(:,nallk) = proj(1:ndim)
end do ioper_
end do
This seems to work well enough, provided that I augment the resulting
set of K-points with the BZ's of the neighboring K-space lattice
points. However, the K-space close to the (0.5,0.5,0.0) special point
of the BCC lattice looks a bit sparce - which makes me wonder whether
I am missing some of the K points.
Could anybody familiar with the K-point generation code in BAND comment
on this?
Serguei
--- Dr. Serguei Patchkovskii Tel: +1-(613)-990-0945 Fax: +1-(613)-947-2838 E-mail: Serguei.Patchkovskii_at_nrc.ca Coordinator of Modelling Software Theory and Computation Group Steacie Institute for Molecular Sciences National Research Council Canada Room 2011, 100 Sussex Drive Ottawa, Ontario K1A 0R6 CanadaReceived on 2003-06-11 10:31:27
This archive was generated by hypermail 2.2.0 : 2006-11-02 07:00:02 CET