Missing bravais lattice symmetries and tolerance factor problem
This is a two sided problem of the high-symmetry points method for the band structure and the Brillouin zone. As an example of what I mean, please check out the following picture:
This is done for Si2. As you can see, the high-symmetry points cannot be recognize.
After digging up a bit, I saw a couple of problems in the
band_structure.py normalizer. Please, feel free to correct me if I am wrong or I overlooked something:
- Some symmetries are not addressed in
BandStructureNormalizer:get_special_pointsmethod: there should be 14 Bravais lattices (see e.g. Wikipedia or the paper by Setyawana and Curtarolo) and there are only 6 defined for the high-symmetry points. As said in the method: "This is copied from the VASP parser", so it essentially fails for all the other electronic codes I checked.
- I think the tolerance factor should be relaxed to 0.01 or 0.001 Å (right now it is 0.0001 Å, which might be a bit restrictive when capturing the correct symmetry).
The point 2. is easy to implement. The point 1. is much more involved. @mscheidg @lucamghi @ndaelman : wouldn't be better to simply comment out these assertions and come up with a more generalized check later on? As I see it, having the high-symmetry points well captured is more important right now that sanity checks on the fine details of the structure.
Let me know what you think, please.
In the example above for Si2, the bravais_lattice is 'cF' which is addressed by the normalizer, but the assertions are failing because the three cubic directions difer by 4 ⋅ 10-4 (which is more than 0.0001, of course).