<div dir="ltr">Hello,<div><br></div><div>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.</div><div><br></div><div>Here is an example of the input file I am using that expresses the bug: https://gist.github.com/ehermes/7ef3d7249b99eeafb34bb14e6c51fd48</div><div>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).</div><div><br></div><div>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.</div></div>