Band structure: normalizer and metainfo update
The band structure processing should be refactored. This would consist of the following steps:
-
Update band structure metainfo so that the duplicate normalized values are removed ( section_k_band
vssection_k_band_normalized
) and add new metainfo for the reciprocal cell and band gaps. The metainfo fork_band_path_normalized_is_standard
should be renamed and moved tosection_k_band
. Also, the name of the whole section could be renamed, assection_k_band
to me implies a single band, whereas in reality it contains all the bands. I would suggest "electronic_band_structure" (I think phonon band structure should be put under a "phonon_band_structure" instead of using a flag to separate between different kinds. -
The shape of the energy values is currently [number_of_spin_channels, number_of_k_points_per_segment, number_of_band_segment_eigenvalues]. This makes sense from a parser perspective, as the output is typically stratified over k-points. However, when the band should be analyzed or visualized it makes more sense to store it in shape [number_of_spin_channels, number_of_band_segment_eigenvalues, number_of_k_points_per_segment]. This way the bands would be stored as a contiguous block of memory and can be easily and effectively looped over for visualization or band gap analysis. On the parser side, this would only require swapping the axes 1 and 2 in the numpy array before storing the values. -
Create a BandStructureNormalizer that will: -
Calculate band gaps -
Add labels for high-symmetry points according to the Setyawan/Curtarolo standard. There is a partial implementation in the VASP parser. It, however, supports only a subset of Bravais lattices for some reason. -
Check if the path follows the Setyawan/Curtarolo standard.
-
Edited by Lauri Himanen