Make the ForceConstants object more flexible
Background
When reading this phono3py issue I thought this is exactly what you can do with the hiphive ASE calculator, however the ForceConstantCalculator
needs to be initialized with a ForceConstants
object which can not directly be set up with phonopy force constants.
I principle I think the ForceConstants
object should simply be a container with helper functions for easily accessing the data. But currently it forces your force-constant to obey the index-permutation symmetry
\Phi_{ij}^{\alpha\beta} = \Phi_{ji}^{\beta\alpha}
which ofcourse should be fulfilled but may not be (same way crystal symmetries or sum rules may not be enforced)
Description
Is it possible to make the current ForceConstants
object more flexible and for example allow for storing phonopy force-constants and pass the force-constants to ForceConstantCalculator
.
While its probably possible in some way, is it worth it? How highly do we value this functionality?
Comment
Since there are a few different force-constant codes out there I think we should atleast aim to provide read/write for the most used formats and transforming fcs between different formats and reading them into a ForceConstants
object which would allow to do some fancy analysis on the force-constants.