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) | |
| matrix3 | latticeGradient (const ScalarFieldTilde &X, const ScalarFieldTilde &Y, PointChargeMode pointChargeMode=PointChargeNone) const |
| Return the lattice gradient of dot(X, O(coulomb(Y)) | |
| double | energyAndGrad (std::vector< Atom > &atoms, matrix3<> *E_RRT=0) 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 |
| matrix3 | latticeGradient (const complexScalarFieldTilde &X, vector3<> kDiff, double omega) const |
| Return the lattice gradient of exchange integral dot(X, O(coulomb(X)) for given k-point difference and screening parameter. | |
Protected Member Functions | |
| ScalarFieldTilde | apply (ScalarFieldTilde &&) const |
| std::shared_ptr< Ewald > | createEwald (matrix3<> R, size_t nAtoms) const |
| matrix3 | getLatticeGradient (const ScalarFieldTilde &X, const ScalarFieldTilde &Y) const |
| Return the lattice gradient of dot(X, O(coulomb(Y)) | |
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.