JDFTx  1.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Long-range interactions

Files

file  Coulomb.h
 Coulomb interactions in various geometries.
 
file  Coulomb_internal.h
 Shared inline functions / internal declarations for Coulomb framework.
 
file  CoulombIsolated.h
 
file  CoulombKernel.h
 
file  CoulombPeriodic.h
 
file  CoulombSlab.h
 
file  CoulombWire.h
 

Classes

struct  CoulombParams
 Parameters controlling Coulomb interactions. More...
 
struct  Atom
 Information required for pair-potential evaluations. More...
 
class  Ewald
 Abstract base class for Ewald summation in arbitrary dimension. More...
 
class  Coulomb
 Abstract base class for the (optionally truncated) Coulomb interaction. More...
 
struct  ExchangeEval
 Helper class for evaluating regularized Coulomb kernel for exchange. More...
 
struct  CoulombPeriodic_calc
 Periodic coulomb interaction (4 pi/G^2) More...
 
struct  CoulombSlab_calc
 Slab-truncated coulomb interaction. More...
 
struct  CoulombSpherical_calc
 Sphere-truncated coulomb interaction. More...
 
struct  Cbar
 Compute Cbar_k^sigma - the gaussian convolved cylindrical coulomb kernel - by numerical quadrature. More...
 
struct  Cbar_k_sigma
 Look-up table for Cbar_k^sigma(rho) for specific values of k and sigma. More...
 
struct  ExchangePeriodic_calc
 Periodic exchange. More...
 
struct  ExchangePeriodicScreened_calc
 Erfc-screened Periodic exchange. More...
 
struct  ExchangeSpherical_calc
 Spherical-truncated exchange. More...
 
struct  ExchangeSphericalScreened_calc
 Erfc-screened Spherical-truncated exchange. More...
 
struct  ExchangeSlab_calc
 Slab-truncated exchange. More...
 
class  CoulombIsolated
 Coulomb interaction for an isolated system (no periodicity), truncated on the Wigner-Seitz cell. More...
 
class  CoulombSpherical
 Coulomb interaction for an isolated system (no periodicity), truncated on a sphere. More...
 
struct  CoulombKernel
 Wigner-Seitz truncated coulomb kernel generator. More...
 
class  CoulombPeriodic
 Untruncated Coulomb interaction. More...
 
class  CoulombSlab
 Coulomb interaction for a 2D periodic system, truncated on the transverse Wigner-Seitz cell. More...
 
class  CoulombWire
 Coulomb interaction for a 1D periodic system, truncated on the transverse Wigner-Seitz cell. More...
 
class  CoulombCylindrical
 Coulomb interaction for a 1D periodic system, truncated on a cylinder. More...
 
class  VanDerWaals
 DFT-D2 pair potential dispersion correction [10]. More...
 

Macros

#define wsTruncationPaper   "R. Sundararaman and T.A. Arias, Phys. Rev. B 87, 165122 (2013)"
 
#define ionMarginMessage   "Expand unit cell, or if absolutely sure, reduce coulomb-truncation-ion-margin.\n"
 

Functions

void coulombAnalytic_gpu (vector3< int > S, const matrix3<> &GGT, const CoulombPeriodic_calc &calc, complex *data)
 
void coulombAnalytic_gpu (vector3< int > S, const matrix3<> &GGT, const CoulombSlab_calc &calc, complex *data)
 
void coulombAnalytic_gpu (vector3< int > S, const matrix3<> &GGT, const CoulombSpherical_calc &calc, complex *data)
 
void coulombAnalytic (vector3< int > S, const matrix3<> &GGT, const CoulombPeriodic_calc &calc, complex *data)
 
void coulombAnalytic (vector3< int > S, const matrix3<> &GGT, const CoulombSlab_calc &calc, complex *data)
 
void coulombAnalytic (vector3< int > S, const matrix3<> &GGT, const CoulombSpherical_calc &calc, complex *data)
 
__hostanddev__ double erf_by_x (double x)
 Compute erf(x)/x (with x~0 handled properly)
 
__hostanddev__ double erfcTilde (double Gsq, double omegaSq)
 Radial fourier transform of erfc(omega r)/r (not valid at G=0)
 
void exchangeAnalytic (vector3< int > S, const matrix3<> &GGT, const ExchangePeriodic_calc &calc, complex *data, const vector3<> &kDiff, double Vzero, double thresholdSq)
 
void exchangeAnalytic (vector3< int > S, const matrix3<> &GGT, const ExchangePeriodicScreened_calc &calc, complex *data, const vector3<> &kDiff, double Vzero, double thresholdSq)
 
void exchangeAnalytic (vector3< int > S, const matrix3<> &GGT, const ExchangeSpherical_calc &calc, complex *data, const vector3<> &kDiff, double Vzero, double thresholdSq)
 
void exchangeAnalytic (vector3< int > S, const matrix3<> &GGT, const ExchangeSphericalScreened_calc &calc, complex *data, const vector3<> &kDiff, double Vzero, double thresholdSq)
 
void exchangeAnalytic (vector3< int > S, const matrix3<> &GGT, const ExchangeSlab_calc &calc, complex *data, const vector3<> &kDiff, double Vzero, double thresholdSq)
 
void exchangeAnalytic_gpu (vector3< int > S, const matrix3<> &GGT, const ExchangePeriodic_calc &calc, complex *data, const vector3<> &kDiff, double Vzero, double thresholdSq)
 
void exchangeAnalytic_gpu (vector3< int > S, const matrix3<> &GGT, const ExchangePeriodicScreened_calc &calc, complex *data, const vector3<> &kDiff, double Vzero, double thresholdSq)
 
void exchangeAnalytic_gpu (vector3< int > S, const matrix3<> &GGT, const ExchangeSpherical_calc &calc, complex *data, const vector3<> &kDiff, double Vzero, double thresholdSq)
 
void exchangeAnalytic_gpu (vector3< int > S, const matrix3<> &GGT, const ExchangeSphericalScreened_calc &calc, complex *data, const vector3<> &kDiff, double Vzero, double thresholdSq)
 
void exchangeAnalytic_gpu (vector3< int > S, const matrix3<> &GGT, const ExchangeSlab_calc &calc, complex *data, const vector3<> &kDiff, double Vzero, double thresholdSq)
 
__hostanddev__ void multRealKernel_calc (size_t i, const vector3< int > &iG, const vector3< int > &S, const double *kernel, complex *data)
 Multiply a complexScalarFieldTilde's data by a RealKernel (real-symmetry reduced)
 
void multRealKernel (vector3< int > S, const double *kernel, complex *data)
 
void multRealKernel_gpu (vector3< int > S, const double *kernel, complex *data)
 
__hostanddev__ void multTransformedKernel_calc (size_t i, const vector3< int > &iG, const vector3< int > &S, const double *kernel, complex *data, const vector3< int > &offset)
 Multiply a complexScalarFieldTilde's data by a kernel sampled with offset and rotation by rot.
 
void multTransformedKernel (vector3< int > S, const double *kernel, complex *data, const vector3< int > &offset)
 
void multTransformedKernel_gpu (vector3< int > S, const double *kernel, complex *data, const vector3< int > &offset)
 

Detailed Description