This PR splits Ewald summation from the BKS pair interaction. It makes Ewald inherit from PairPotential so the short-range Coulomb can use the pair code, and adds the kspace contributions.
Arbitrary pair interactions can now be used with the Ewald summation thanks to ASE's SumCalculator. Getting properties like the hessian cannot be done with get_hessian if SumCalculator is used, but instead with the get_property method that subclasses of ase.Calculator should implement. For example, getting the hessian can now be done with atoms.calc.get_property('hessian').
This PR splits Ewald summation from the BKS pair interaction. It makes Ewald inherit from PairPotential so the short-range Coulomb can use the pair code, and adds the kspace contributions.
Arbitrary pair interactions can now be used with the Ewald summation thanks to ASE's
SumCalculator
. Getting properties like the hessian cannot be done withget_hessian
if SumCalculator is used, but instead with theget_property
method that subclasses ofase.Calculator
should implement. For example, getting the hessian can now be done withatoms.calc.get_property('hessian')
.