Coulomb interaction for a 2D periodic system, truncated on the transverse Wigner-Seitz cell. More...
#include <CoulombSlab.h>
Public Member Functions | |
CoulombSlab (const GridInfo &gInfoOrig, const CoulombParams ¶ms) | |
Public Member Functions inherited from Coulomb | |
ScalarFieldTilde | operator() (ScalarFieldTilde &&, PointChargeMode pointChargeMode=PointChargeNone) const |
ScalarFieldTilde | operator() (const ScalarFieldTilde &, PointChargeMode pointChargeMode=PointChargeNone) const |
Apply Coulomb kernel (parameters same as destructible input version above) | |
double | energyAndGrad (std::vector< Atom > &atoms) const |
ScalarField | getEfieldPotential () const |
Generate the potential due to the Efield (if any) (Requires embedded truncation) | |
complexScalarFieldTilde | operator() (complexScalarFieldTilde &&, vector3<> kDiff, double omega) const |
complexScalarFieldTilde | operator() (const complexScalarFieldTilde &, vector3<> kDiff, double omega) const |
Protected Member Functions | |
ScalarFieldTilde | apply (ScalarFieldTilde &&) const |
std::shared_ptr< Ewald > | createEwald (matrix3<> R, size_t nAtoms) const |
Protected Member Functions inherited from Coulomb | |
Coulomb (const GridInfo &gInfoOrig, const CoulombParams ¶ms) | |
void | initExchangeEval () |
Additional Inherited Members | |
Public Types inherited from Coulomb | |
enum | PointChargeMode { PointChargeNone, PointChargeLeft, PointChargeRight } |
Special point-charge handling mode when using embedded truncation. More... | |
Protected Attributes inherited from Coulomb | |
const CoulombParams & | params |
const GridInfo & | gInfo |
embedding grid, which is 2x larger in truncated directions if params.embed == true | |
std::shared_ptr< Ewald > | ewald |
std::map< double, std::shared_ptr< struct ExchangeEval > > | exchangeEval |
Coulomb interaction for a 2D periodic system, truncated on the transverse Wigner-Seitz cell.
|
protectedvirtual |
|
protectedvirtual |
Each implementation must create and return the corresponding Ewald evaluator for the supplied lattice vectors R which may correspond to a supercell of gInfo.R along the periodic directions (the truncated directions will be identical) The number of atoms may be used for choosing the optimum gaussian width sigma
Implements Coulomb.