Abstract base class for Ewald summation in arbitrary dimension. More...
#include <Coulomb.h>
Public Member Functions | |
virtual double | energyAndGrad (std::vector< Atom > &atoms, matrix3<> *E_RRT=0) const =0 |
Abstract base class for Ewald summation in arbitrary dimension.
|
pure virtual |
Get the energy of a point charge configurtaion, and accumulate corresponding forces The implementation will shift each Atom::pos by lattice vectors to bring it to the fundamental zone (or Wigner-Seitz cell as appropriate) If E_RRT is non-null, accumulate contrbutions to the symmetric lattice derivative (stress * volume)