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 WignerSeitz cell as appropriate) If E_RRT is nonnull, accumulate contrbutions to the symmetric lattice derivative (stress * volume)