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).