![]() |
QMCPACK
|
Public Member Functions | |
EwaldHandler3D (ParticleSet &ref, mRealType kc_in=-1.0) | |
Constructor. More... | |
EwaldHandler3D (const EwaldHandler3D &aLR, ParticleSet &ref) | |
"copy" constructor More... | |
LRHandlerBase * | makeClone (ParticleSet &ref) const override |
make clone More... | |
void | initBreakup (ParticleSet &ref) override |
void | Breakup (ParticleSet &ref, mRealType rs_in) override |
void | resetTargetParticleSet (ParticleSet &ref) override |
mRealType | evaluate (mRealType r, mRealType rinv) const override |
mRealType | evaluateLR (mRealType r) const override |
evaluate the contribution from the long-range part for for spline More... | |
mRealType | evaluateSR_k0 () const override |
evaluate ![]() | |
mRealType | evaluate_vlr_k (mRealType k) const override |
mRealType | evaluateLR_r0 () const override |
evaluate ![]() | |
mRealType | srDf (mRealType r, mRealType rinv) const override |
evaluate the first derivative of the short range part at r More... | |
mRealType | lrDf (mRealType r) const override |
evaluate the first derivative of the long range part (in real space) at r More... | |
void | fillFk (const KContainer &KList) |
void | fillYkgstrain (const KContainer &KList) |
void | filldFk_dk (const KContainer &KList) |
SymTensor< mRealType, OHMMS_DIM > | evaluateLR_dstrain (TinyVector< pRealType, OHMMS_DIM > k, pRealType kmag) const override |
SymTensor< mRealType, OHMMS_DIM > | evaluateSR_dstrain (TinyVector< pRealType, OHMMS_DIM > r, pRealType rmag) const override |
SymTensor< mRealType, OHMMS_DIM > | evaluateSR_k0_dstrain () const override |
mRealType | evaluateLR_r0_dstrain (int i, int j) const |
SymTensor< mRealType, OHMMS_DIM > | evaluateLR_r0_dstrain () const override |
These functions return the strain derivatives of all corresponding quantities in total energy. More... | |
![]() | |
LRHandlerBase (mRealType kc) | |
virtual | ~LRHandlerBase ()=default |
mRealType | get_rc () const |
mRealType | get_kc () const |
mRealType | evaluate_w_sk (const std::vector< int > &kshell, const pRealType *restrict sk) const |
mRealType | evaluate (const std::vector< int > &kshell, const pRealType *restrict rk1_r, const pRealType *restrict rk1_i, const pRealType *restrict rk2_r, const pRealType *restrict rk2_i) const |
evaluate ![]() | |
virtual mRealType | evaluate_slab (pRealType z, const std::vector< int > &kshell, const pRealType *restrict rk1_r, const pRealType *restrict rk1_i, const pRealType *restrict rk2_r, const pRealType *restrict rk2_i) const |
Evaluate the long-range potential with the open BC for the D-1 direction. More... | |
void | evaluateGrad (const ParticleSet &A, const ParticleSet &B, int specB, std::vector< pRealType > &Zat, std::vector< TinyVector< pRealType, OHMMS_DIM >> &grad1) const |
evaluate ![]() ![]() | |
SymTensor< pRealType, OHMMS_DIM > | evaluateStress (const std::vector< int > &kshell, const pRealType *rhokA_r, const pRealType *rhokA_i, const pRealType *rhokB_r, const pRealType *rhokB_i) const |
FIX_PRECISION. More... | |
Public Attributes | |
int | SuperCellEnum |
type of supercell More... | |
mRealType | Sigma |
Related to the Gaussian width: ![]() | |
mRealType | Volume |
Volume of the supercell. More... | |
mRealType | Area |
Area of the supercell: always z is the slab direction. More... | |
TinyVector< mRealType, 4 > | PreFactors |
std::vector< mRealType > | kMag |
store |k| More... | |
![]() | |
DECLARE_COULOMB_TYPES int | MaxKshell |
Maxkimum Kshell for the given Kc. More... | |
mRealType | LR_kc |
Maximum k cutoff. More... | |
mRealType | LR_rc |
Maximum r cutoff. More... | |
Vector< mRealType > | Fk |
Fourier component for all the k-point. More... | |
Vector< mRealType > | Fkg |
Fourier component of the LR part, fit to optimize the gradients. More... | |
std::vector< SymTensor< mRealType, OHMMS_DIM > > | dFk_dstrain |
Fourier component of the LR part of strain tensor, by optimized breakup. More... | |
Vector< mRealType > | Fkgstrain |
Vector of df_k/dk, fit as to optimize strains. More... | |
Vector< mRealType > | Fk_symm |
Fourier component for each k-shell. More... | |
std::vector< mRealType > | coefs |
Fourier component for each k-shell Coefficient. More... | |
std::vector< mRealType > | gcoefs |
Coefficient for gradient fit. More... | |
std::vector< mRealType > | gstraincoefs |
Coefficient for strain fit. More... | |
Private Member Functions | |
mRealType | evalYkgstrain (mRealType k) const |
mRealType | evaldYkgstrain (mRealType k) const |
Additional Inherited Members | |
![]() | |
std::string | ClassName |
Definition at line 27 of file EwaldHandler3D.h.
|
inline |
Constructor.
Definition at line 43 of file EwaldHandler3D.h.
References LRHandlerBase::ClassName, ParticleSet::getLattice(), LRHandlerBase::LR_kc, and EwaldHandler3D::Sigma.
Referenced by EwaldHandler3D::makeClone().
EwaldHandler3D | ( | const EwaldHandler3D & | aLR, |
ParticleSet & | ref | ||
) |
"copy" constructor
aLR | LRHandlerTemp |
ref | Particleset |
Copy the content of aLR References to ParticleSet or ParticleLayoutout_t are not copied.
Definition at line 48 of file EwaldHandler3D.cpp.
References EwaldHandler3D::SuperCellEnum.
|
inlineoverridevirtual |
Implements LRHandlerBase.
Definition at line 62 of file EwaldHandler3D.h.
References EwaldHandler3D::initBreakup().
Definition at line 193 of file EwaldHandler3D.h.
References qmcplusplus::exp(), norm(), EwaldHandler3D::Sigma, and EwaldHandler3D::Volume.
Referenced by EwaldHandler3D::evaluateLR_dstrain().
Implements LRHandlerBase.
Definition at line 66 of file EwaldHandler3D.h.
References EwaldHandler3D::Sigma.
Referenced by qmcplusplus::TEST_CASE().
|
overridevirtual |
Implements LRHandlerBase.
Definition at line 82 of file EwaldHandler3D.cpp.
References qmcplusplus::exp(), EwaldHandler3D::Sigma, and EwaldHandler3D::Volume.
evaluate the contribution from the long-range part for for spline
Implements LRHandlerBase.
Definition at line 70 of file EwaldHandler3D.h.
References EwaldHandler3D::Sigma.
Referenced by qmcplusplus::TEST_CASE().
|
inlineoverridevirtual |
Reimplemented from LRHandlerBase.
Definition at line 128 of file EwaldHandler3D.h.
References EwaldHandler3D::evaldYkgstrain(), EwaldHandler3D::evalYkgstrain(), and OHMMS_DIM.
Referenced by EwaldHandler3D::filldFk_dk().
|
inlineoverridevirtual |
evaluate for the self-interaction term
Reimplemented from LRHandlerBase.
Definition at line 80 of file EwaldHandler3D.h.
References EwaldHandler3D::Sigma, and qmcplusplus::sqrt().
|
inline |
Definition at line 176 of file EwaldHandler3D.h.
These functions return the strain derivatives of all corresponding quantities in total energy.
See documentation (forthcoming).
Reimplemented from LRHandlerBase.
Definition at line 178 of file EwaldHandler3D.h.
|
inlineoverridevirtual |
Reimplemented from LRHandlerBase.
Definition at line 148 of file EwaldHandler3D.h.
References OHMMS_DIM, and EwaldHandler3D::srDf().
|
inlineoverridevirtual |
evaluate
Reimplemented from LRHandlerBase.
Definition at line 72 of file EwaldHandler3D.h.
References EwaldHandler3D::Sigma, and EwaldHandler3D::Volume.
Reimplemented from LRHandlerBase.
Definition at line 166 of file EwaldHandler3D.h.
References OHMMS_DIM, EwaldHandler3D::Sigma, and EwaldHandler3D::Volume.
Definition at line 185 of file EwaldHandler3D.h.
References qmcplusplus::exp(), norm(), EwaldHandler3D::Sigma, and EwaldHandler3D::Volume.
Referenced by EwaldHandler3D::evaluateLR_dstrain(), and EwaldHandler3D::fillYkgstrain().
|
inline |
Definition at line 117 of file EwaldHandler3D.h.
References LRHandlerBase::dFk_dstrain, EwaldHandler3D::evaluateLR_dstrain(), KContainer::kpts_cart, KContainer::ksq, and qmcplusplus::sqrt().
Referenced by EwaldHandler3D::initBreakup().
void fillFk | ( | const KContainer & | KList | ) |
Definition at line 54 of file EwaldHandler3D.cpp.
References qmcplusplus::app_log(), qmcplusplus::exp(), LRHandlerBase::Fk, LRHandlerBase::Fk_symm, LRHandlerBase::Fkg, EwaldHandler3D::kMag, KContainer::kpts_cart, KContainer::kshell, KContainer::ksq, LRHandlerBase::MaxKshell, EwaldHandler3D::PreFactors, Vector< T, Alloc >::resize(), EwaldHandler3D::Sigma, Vector< T, Alloc >::size(), and EwaldHandler3D::Volume.
Referenced by EwaldHandler3D::initBreakup().
|
inline |
Definition at line 104 of file EwaldHandler3D.h.
References EwaldHandler3D::evalYkgstrain(), LRHandlerBase::Fkgstrain, KContainer::kpts_cart, KContainer::kshell, KContainer::ksq, LRHandlerBase::MaxKshell, Vector< T, Alloc >::resize(), Vector< T, Alloc >::size(), and qmcplusplus::sqrt().
Referenced by EwaldHandler3D::initBreakup().
|
overridevirtual |
Implements LRHandlerBase.
Definition at line 17 of file EwaldHandler3D.cpp.
References qmcplusplus::app_log(), EwaldHandler3D::filldFk_dk(), EwaldHandler3D::fillFk(), EwaldHandler3D::fillYkgstrain(), ParticleSet::getLattice(), ParticleSet::getSimulationCell(), LRHandlerBase::LR_kc, LRHandlerBase::LR_rc, EwaldHandler3D::PreFactors, EwaldHandler3D::Sigma, qmcplusplus::sqrt(), EwaldHandler3D::SuperCellEnum, and EwaldHandler3D::Volume.
Referenced by EwaldHandler3D::Breakup(), and qmcplusplus::TEST_CASE().
evaluate the first derivative of the long range part (in real space) at r
r | radius |
Reimplemented from LRHandlerBase.
Definition at line 96 of file EwaldHandler3D.h.
References qmcplusplus::exp(), EwaldHandler3D::Sigma, and qmcplusplus::sqrt().
Referenced by qmcplusplus::TEST_CASE().
|
inlineoverridevirtual |
make clone
Implements LRHandlerBase.
Definition at line 58 of file EwaldHandler3D.h.
References EwaldHandler3D::EwaldHandler3D().
|
inlineoverridevirtual |
evaluate the first derivative of the short range part at r
r | radius |
rinv | 1/r |
Implements LRHandlerBase.
Definition at line 87 of file EwaldHandler3D.h.
References qmcplusplus::exp(), EwaldHandler3D::Sigma, and qmcplusplus::sqrt().
Referenced by EwaldHandler3D::evaluateSR_dstrain(), and qmcplusplus::TEST_CASE().
mRealType Area |
Area of the supercell: always z is the slab direction.
Definition at line 37 of file EwaldHandler3D.h.
std::vector<mRealType> kMag |
TinyVector<mRealType, 4> PreFactors |
Definition at line 39 of file EwaldHandler3D.h.
Referenced by EwaldHandler3D::fillFk(), and EwaldHandler3D::initBreakup().
mRealType Sigma |
Related to the Gaussian width: .
Definition at line 33 of file EwaldHandler3D.h.
Referenced by EwaldHandler3D::evaldYkgstrain(), EwaldHandler3D::evaluate(), EwaldHandler3D::evaluate_vlr_k(), EwaldHandler3D::evaluateLR(), EwaldHandler3D::evaluateLR_r0(), EwaldHandler3D::evaluateSR_k0(), EwaldHandler3D::evaluateSR_k0_dstrain(), EwaldHandler3D::evalYkgstrain(), EwaldHandler3D::EwaldHandler3D(), EwaldHandler3D::fillFk(), EwaldHandler3D::initBreakup(), EwaldHandler3D::lrDf(), EwaldHandler3D::srDf(), and qmcplusplus::TEST_CASE().
int SuperCellEnum |
type of supercell
Definition at line 31 of file EwaldHandler3D.h.
Referenced by EwaldHandler3D::EwaldHandler3D(), and EwaldHandler3D::initBreakup().
mRealType Volume |
Volume of the supercell.
Definition at line 35 of file EwaldHandler3D.h.
Referenced by EwaldHandler3D::evaldYkgstrain(), EwaldHandler3D::evaluate_vlr_k(), EwaldHandler3D::evaluateSR_k0(), EwaldHandler3D::evaluateSR_k0_dstrain(), EwaldHandler3D::evalYkgstrain(), EwaldHandler3D::fillFk(), and EwaldHandler3D::initBreakup().