Wigner-Seitz truncated coulomb kernel generator. More...
#include <CoulombKernel.h>
Public Member Functions | |
CoulombKernel (const matrix3<> R, const vector3< int > S, const vector3< bool > isTruncated, double omega=0.) | |
void | compute (double *data, const WignerSeitz &ws) const |
Public Attributes | |
const matrix3 | R |
lattice vectors | |
const vector3< int > | S |
sample count | |
const vector3< bool > | isTruncated |
whether corresponding lattice direction is truncated | |
double | omega |
erf-screening parameter (used for screened exchange kernels) | |
Static Public Attributes | |
static const double | nSigmasPerWidth |
number of sigmas at which gaussian is negligible at working precision | |
Wigner-Seitz truncated coulomb kernel generator.
void CoulombKernel::compute | ( | double * | data, |
const WignerSeitz & | ws | ||
) | const |
Initialize the truncated kernel in data data must be allocated for S[0]*S[1]*(1+S[2]/2) entries (fftw c2r order). ws is the Wigner-Seitz cell corresponding to lattice vectors R. Supported modes include fully truncated (Isolated or Wigner-Seitz truncated exchange kernel) and one direction periodic (Wire geometry).