Parameters controlling Coulomb interactions. More...
#include <Coulomb.h>
Public Types | |
enum | Geometry { Periodic, Slab, Wire, Cylindrical, Isolated, Spherical } |
Truncation geometry. More... | |
enum | ExchangeRegularization { None, AuxiliaryFunction, ProbeChargeEwald, SphericalTruncated, WignerSeitzTruncated } |
Regularization method for G=0 singularities in exchange. More... | |
Public Member Functions | |
std::shared_ptr< class Coulomb > | createCoulomb (const GridInfo &gInfo) const |
Create a Coulomb object corresponding to the parameters of this class. | |
vector3< bool > | isTruncated () const |
Get a list of which directions are truncated: | |
void | splitEfield (const matrix3<> &R, vector3<> &RT_Efield_ramp, vector3<> &RT_Efield_wave) const |
Public Attributes | |
Geometry | geometry |
Truncation geometry. | |
int | iDir |
Truncated lattice direction for Slab or periodic direction for Wire. | |
double | Rc |
Truncation radius for cylindrical / spherical modes (0 => in-radius of Wigner-Seitz cell) | |
double | ionMargin |
margin around ions when checking localization constraints | |
bool | embed |
whether to embed in double-sized box (along truncated directions) to compute Coulomb interactions | |
vector3 | embedCenter |
'center' of the system, when it is embedded into the larger box (in lattice coordinates) | |
bool | embedFluidMode |
if true, don't truncate, just evaluate coulomb interactions in the larger box (fluid screening does the image separation instead) | |
vector3 | Efield |
electric field (in Cartesian coordinates, atomic units [Eh/e/a0]) | |
ExchangeRegularization | exchangeRegularization |
exchange regularization method | |
std::set< double > | omegaSet |
set of exchange erf-screening parameters | |
std::shared_ptr< struct Supercell > | supercell |
Description of k-point supercell for exchange. | |
Parameters controlling Coulomb interactions.
Regularization method for G=0 singularities in exchange.
Enumerator | |
---|---|
None |
No regularization (3D periodic or non-periodic systems only) |
AuxiliaryFunction |
Auxiliary function method (3D periodic systems only) [4]. |
ProbeChargeEwald |
Ewald sum on a probe charge per unit cell (3D/2D/1D periodic systems) |
SphericalTruncated |
Wigner-Seitz volume spherical truncation [26]. |
WignerSeitzTruncated |
Wigner-Seitz cell truncation [27]. |
Truncation geometry.
void CoulombParams::splitEfield | ( | const matrix3<> & | R, |
vector3<> & | RT_Efield_ramp, | ||
vector3<> & | RT_Efield_wave | ||
) | const |
Get electric field in contravariant lattice coordinates, split into ramp (truncated directions) and wave (periodic directions) components