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, symmetricMatrix3<> *data_RRT=0) 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, | ||
| symmetricMatrix3<> * | data_RRT = 0 | ||
| ) | 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). Optionally initialize lattice derivative if data_RRT is non-null