BAND_STRUCTURE k-point unit conversion bug leads to bogus band structures (CP2K 4.1)
Eric Hermes
erich... at gmail.com
Tue Nov 1 20:35:46 UTC 2016
Hello,
I am working with ASE to develop routines for the various DFT calculators
we support for simple, automatic generation of band structures. I have run
into a bug in CP2K's SPECIAL_POINT specification, wherein the specified
k-points appear to undergo a redundant B_VECTOR -> CART_BOHR unit
conversion. What I mean by that is if I pass the k-points as multiples of
the reciprocal unit vectors (i.e. UNIT B_VECTOR, SPECIAL_POINT 0.5 0.25
0.75 for the W point of the diamond lattice), this is multiplied by the
reciprocal unit cell vector *twice*. If I pass the points in units of
2pi/Bohr (i.e. UNIT CART_BOHR, SPECIAL_POINT 0.049 0.098 0.000 for a
primitive Si diamond lattice with lattice constant a=5.4 angstrom), the
k-points are multiplied by the reciprocal unit cell vector *anyway*, giving
the same results as before. I can "trick" the system into providing the
correct result by saying that I am passing the k-points in 2pi/Bohr, but
actually passing the k-points in multiples of the reciprocal unit cell
vectors (i.e. UNIT CART_BOHR, SPECIAL_POINT 0.5 0.25 0.75). This results in
both the output file and the band structure file printing the exact
k-points that I specified (i.e. the k-points in multiples of the reciprocal
unit vectors), and the resulting band structure matches that of other DFT
codes.
Here is an example of the input file I am using that expresses the bug:
https://gist.github.com/ehermes/7ef3d7249b99eeafb34bb14e6c51fd48
This input file was generated by (a modified version of) ASE, and it
produces the incorrect band structure. If line 31 is changed to read "UNITS
CART_BOHR", the resulting band structure is correct and matches the band
structure produced by other codes (GPAW, VASP, etc).
I have taken a look at the qs_band_structure.F source file, but the origin
of the bug is not obvious to me. I suspect it might be related to line 197,
which multiplies each kpoint by the transpose of the unit cell vector, but
I am not certain.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cp2k.org/archives/cp2k-user/attachments/20161101/db60a754/attachment.htm>
More information about the CP2K-user
mailing list