![]() |
QMCPACK
|
Public Member Functions | |
DiracDeterminantBase (const std::string &class_name, std::unique_ptr< SPOSet > &&spos, int first, int last) | |
constructor More... | |
~DiracDeterminantBase () override | |
default destructor More... | |
DiracDeterminantBase (const DiracDeterminantBase &s)=delete | |
DiracDeterminantBase & | operator= (const DiracDeterminantBase &s)=delete |
SPOSetPtr | getPhi () const |
int | getFirstIndex () const |
int | getLastIndex () const |
virtual ValueMatrix & | getPsiMinv () |
bool | isFermionic () const final |
true, if this component is fermionic More... | |
bool | isOptimizable () const final |
if true, this contains optimizable components More... | |
void | extractOptimizableObjectRefs (UniqueOptObjRefs &opt_obj_refs) final |
extract underlying OptimizableObject references More... | |
void | checkOutVariables (const opt_variables_type &active) final |
check out variational optimizable variables More... | |
virtual void | registerTWFFastDerivWrapper (const ParticleSet &P, TWFFastDerivWrapper &twf) const override |
Register the component with the TWFFastDerivWrapper wrapper. More... | |
virtual void | evaluateDerivativesWF (ParticleSet &P, const opt_variables_type &optvars, Vector< ValueType > &dlogpsi) override |
Compute the derivatives of the log of the wavefunction with respect to optimizable parameters. More... | |
virtual void | evaluateDerivatives (ParticleSet &P, const opt_variables_type &active, int offset, Matrix< RealType > &dlogpsi, Array< GradType, 3 > &dG, Matrix< RealType > &dL) |
std::unique_ptr< WaveFunctionComponent > | makeClone (ParticleSet &tqp) const final |
make clone More... | |
PsiValue | ratioGradWithSpin (ParticleSet &P, int iat, GradType &grad_iat, ComplexType &spingrad) override |
evaluate the ratio of the new to old WaveFunctionComponent value and the new spin gradient Default implementation assumes that WaveFunctionComponent does not explicitly depend on Spin. More... | |
GradType | evalGradWithSpin (ParticleSet &P, int iat, ComplexType &spingrad) override |
return the current spin gradient for the iat-th particle Default implementation assumes that WaveFunctionComponent does not explicitly depend on Spin. More... | |
virtual std::unique_ptr< DiracDeterminantBase > | makeCopy (std::unique_ptr< SPOSet > &&spo) const =0 |
cloning function More... | |
virtual void | evaluateDerivatives (ParticleSet &P, const opt_variables_type &optvars, Vector< ValueType > &dlogpsi, Vector< ValueType > &dhpsioverpsi)=0 |
Compute the derivatives of both the log of the wavefunction and kinetic energy with respect to optimizable parameters. More... | |
virtual LogValue | evaluateGL (const ParticleSet &P, ParticleSet::ParticleGradient &G, ParticleSet::ParticleLaplacian &L, bool fromscratch) |
compute gradients and laplacian of the TWF with respect to each particle. More... | |
virtual LogValue | evaluateLog (const ParticleSet &P, ParticleSet::ParticleGradient &G, ParticleSet::ParticleLaplacian &L)=0 |
evaluate the value of the WaveFunctionComponent from scratch More... | |
virtual void | mw_evaluateGL (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, const RefVector< ParticleSet::ParticleGradient > &G_list, const RefVector< ParticleSet::ParticleLaplacian > &L_list, bool fromscratch) const |
evaluate gradients and laplacian of the same type WaveFunctionComponent of multiple walkers More... | |
virtual void | mw_evaluateLog (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, const RefVector< ParticleSet::ParticleGradient > &G_list, const RefVector< ParticleSet::ParticleLaplacian > &L_list) const |
evaluate from scratch the same type WaveFunctionComponent of multiple walkers More... | |
virtual void | recompute (const ParticleSet &P) |
recompute the value of the WaveFunctionComponents which require critical accuracy. More... | |
virtual void | copyFromBuffer (ParticleSet &P, WFBufferType &buf)=0 |
For particle-by-particle move. More... | |
virtual void | registerData (ParticleSet &P, WFBufferType &buf)=0 |
For particle-by-particle move. More... | |
virtual LogValue | updateBuffer (ParticleSet &P, WFBufferType &buf, bool fromscratch=false)=0 |
For particle-by-particle move. More... | |
virtual void | acquireResource (ResourceCollection &collection, const RefVectorWithLeader< WaveFunctionComponent > &wfc_list) const |
acquire a shared resource from a collection More... | |
virtual void | createResource (ResourceCollection &collection) const |
initialize a shared resource and hand it to a collection More... | |
virtual void | releaseResource (ResourceCollection &collection, const RefVectorWithLeader< WaveFunctionComponent > &wfc_list) const |
return a shared resource to a collection More... | |
virtual void | acceptMove (ParticleSet &P, int iat, bool safe_to_delay=false)=0 |
a move for iat-th particle is accepted. More... | |
virtual void | completeUpdates () |
complete all the delayed or asynchronous operations before leaving the p-by-p move region. More... | |
virtual GradType | evalGrad (ParticleSet &P, int iat) |
return the current gradient for the iat-th particle More... | |
virtual void | mw_accept_rejectMove (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, const std::vector< bool > &isAccepted, bool safe_to_delay=false) const |
moves of the iat-th particle on some walkers in a batch is accepted. More... | |
virtual void | mw_calcRatio (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< PsiValue > &ratios) const |
compute the ratio of the new to old WaveFunctionComponent value of multiple walkers More... | |
virtual void | mw_completeUpdates (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list) const |
complete all the delayed or asynchronous operations for all the walkers in a batch before leaving the p-by-p move region. More... | |
template<CoordsType CT> | |
void | mw_evalGrad (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, const int iat, TWFGrads< CT > &grads_now) const |
compute the current gradients for the iat-th particle of multiple walkers More... | |
virtual void | mw_evalGrad (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< GradType > &grad_now) const |
compute the current gradients for the iat-th particle of multiple walkers More... | |
template<CoordsType CT> | |
void | mw_ratioGrad (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< PsiValue > &ratios, TWFGrads< CT > &grad_new) const |
virtual void | mw_ratioGrad (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< PsiValue > &ratios, std::vector< GradType > &grad_new) const |
compute the ratio of the new to old WaveFunctionComponent value and the new gradient of multiple walkers More... | |
virtual PsiValue | ratio (ParticleSet &P, int iat)=0 |
evaluate the ratio of the new to old WaveFunctionComponent value More... | |
virtual PsiValue | ratioGrad (ParticleSet &P, int iat, GradType &grad_iat) |
evaluate the ratio of the new to old WaveFunctionComponent value and the new gradient More... | |
virtual void | restore (int iat)=0 |
If a move for iat-th particle is rejected, restore to the content. More... | |
virtual GradType | evalGradSource (ParticleSet &P, ParticleSet &source, int iat) |
return the logarithmic gradient for the iat-th particle of the source particleset More... | |
virtual GradType | evalGradSource (ParticleSet &P, ParticleSet &source, int iat, TinyVector< ParticleSet::ParticleGradient, OHMMS_DIM > &grad_grad, TinyVector< ParticleSet::ParticleLaplacian, OHMMS_DIM > &lapl_grad) |
Adds the gradient w.r.t. More... | |
virtual void | evaluateHessian (ParticleSet &P, HessVector &grad_grad_psi_all) |
virtual void | evaluateRatios (const VirtualParticleSet &VP, std::vector< ValueType > &ratios) |
evaluate ratios to evaluate the non-local PP More... | |
virtual void | evaluateRatiosAlltoOne (ParticleSet &P, std::vector< ValueType > &ratios) |
evaluate the ratios of one virtual move with respect to all the particles More... | |
virtual void | evaluateSpinorRatios (const VirtualParticleSet &VP, const std::pair< ValueVector, ValueVector > &spinor_multiplier, std::vector< ValueType > &ratios) |
Used by SOECPComponent for faster SOC evaluation. More... | |
virtual void | mw_evaluateRatios (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< const VirtualParticleSet > &vp_list, std::vector< std::vector< ValueType >> &ratios) const |
evaluate ratios to evaluate the non-local PP multiple walkers More... | |
![]() | |
const LogValue & | get_log_value () const |
WaveFunctionComponent (const std::string &obj_name="") | |
default constructor More... | |
virtual | ~WaveFunctionComponent () |
default destructor More... | |
virtual void | checkSanity () const |
Validate the internal consistency of the object. More... | |
const std::string & | getName () const |
return object name More... | |
virtual std::string | getClassName () const =0 |
return class name More... | |
PsiValue | getValue () const |
assembles the full value More... | |
virtual bool | isMultiDet () const |
true, if this component is multi-determinant More... | |
virtual LogValue | evaluateLog (const ParticleSet &P, ParticleSet::ParticleGradient &G, ParticleSet::ParticleLaplacian &L)=0 |
evaluate the value of the WaveFunctionComponent from scratch More... | |
virtual void | mw_evaluateLog (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, const RefVector< ParticleSet::ParticleGradient > &G_list, const RefVector< ParticleSet::ParticleLaplacian > &L_list) const |
evaluate from scratch the same type WaveFunctionComponent of multiple walkers More... | |
virtual void | recompute (const ParticleSet &P) |
recompute the value of the WaveFunctionComponents which require critical accuracy. More... | |
virtual void | mw_recompute (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, const std::vector< bool > &recompute) const |
virtual void | evaluateHessian (ParticleSet &P, HessVector &grad_grad_psi_all) |
virtual void | prepareGroup (ParticleSet &P, int ig) |
Prepare internal data for updating WFC correspond to a particle group It should be called before moving particles of a given group. More... | |
virtual void | mw_prepareGroup (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int ig) const |
virtual GradType | evalGrad (ParticleSet &P, int iat) |
return the current gradient for the iat-th particle More... | |
template<CoordsType CT> | |
void | mw_evalGrad (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, const int iat, TWFGrads< CT > &grads_now) const |
compute the current gradients for the iat-th particle of multiple walkers More... | |
virtual void | mw_evalGrad (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< GradType > &grad_now) const |
compute the current gradients for the iat-th particle of multiple walkers More... | |
virtual GradType | evalGradSource (ParticleSet &P, ParticleSet &source, int iat) |
return the logarithmic gradient for the iat-th particle of the source particleset More... | |
virtual GradType | evalGradSource (ParticleSet &P, ParticleSet &source, int iat, TinyVector< ParticleSet::ParticleGradient, OHMMS_DIM > &grad_grad, TinyVector< ParticleSet::ParticleLaplacian, OHMMS_DIM > &lapl_grad) |
Adds the gradient w.r.t. More... | |
virtual PsiValue | ratioGrad (ParticleSet &P, int iat, GradType &grad_iat) |
evaluate the ratio of the new to old WaveFunctionComponent value and the new gradient More... | |
template<CoordsType CT> | |
void | mw_ratioGrad (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< PsiValue > &ratios, TWFGrads< CT > &grad_new) const |
virtual void | mw_ratioGrad (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< PsiValue > &ratios, std::vector< GradType > &grad_new) const |
compute the ratio of the new to old WaveFunctionComponent value and the new gradient of multiple walkers More... | |
virtual void | acceptMove (ParticleSet &P, int iat, bool safe_to_delay=false)=0 |
a move for iat-th particle is accepted. More... | |
virtual void | mw_accept_rejectMove (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, const std::vector< bool > &isAccepted, bool safe_to_delay=false) const |
moves of the iat-th particle on some walkers in a batch is accepted. More... | |
virtual void | completeUpdates () |
complete all the delayed or asynchronous operations before leaving the p-by-p move region. More... | |
virtual void | mw_completeUpdates (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list) const |
complete all the delayed or asynchronous operations for all the walkers in a batch before leaving the p-by-p move region. More... | |
virtual void | restore (int iat)=0 |
If a move for iat-th particle is rejected, restore to the content. More... | |
virtual PsiValue | ratio (ParticleSet &P, int iat)=0 |
evaluate the ratio of the new to old WaveFunctionComponent value More... | |
virtual void | mw_calcRatio (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< PsiValue > &ratios) const |
compute the ratio of the new to old WaveFunctionComponent value of multiple walkers More... | |
virtual LogValue | evaluateGL (const ParticleSet &P, ParticleSet::ParticleGradient &G, ParticleSet::ParticleLaplacian &L, bool fromscratch) |
compute gradients and laplacian of the TWF with respect to each particle. More... | |
virtual void | mw_evaluateGL (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, const RefVector< ParticleSet::ParticleGradient > &G_list, const RefVector< ParticleSet::ParticleLaplacian > &L_list, bool fromscratch) const |
evaluate gradients and laplacian of the same type WaveFunctionComponent of multiple walkers More... | |
virtual void | registerData (ParticleSet &P, WFBufferType &buf)=0 |
For particle-by-particle move. More... | |
virtual LogValue | updateBuffer (ParticleSet &P, WFBufferType &buf, bool fromscratch=false)=0 |
For particle-by-particle move. More... | |
virtual void | copyFromBuffer (ParticleSet &P, WFBufferType &buf)=0 |
For particle-by-particle move. More... | |
virtual void | createResource (ResourceCollection &collection) const |
initialize a shared resource and hand it to a collection More... | |
virtual void | acquireResource (ResourceCollection &collection, const RefVectorWithLeader< WaveFunctionComponent > &wfc_list) const |
acquire a shared resource from a collection More... | |
virtual void | releaseResource (ResourceCollection &collection, const RefVectorWithLeader< WaveFunctionComponent > &wfc_list) const |
return a shared resource to a collection More... | |
virtual RealType | KECorrection () |
Return the Chiesa kinetic energy correction. More... | |
virtual void | evaluateDerivatives (ParticleSet &P, const opt_variables_type &optvars, Vector< ValueType > &dlogpsi, Vector< ValueType > &dhpsioverpsi)=0 |
Compute the derivatives of both the log of the wavefunction and kinetic energy with respect to optimizable parameters. More... | |
virtual void | evaluateGradDerivatives (const ParticleSet::ParticleGradient &G_in, std::vector< ValueType > &dgradlogpsi) |
Calculates the derivatives of ![]() | |
virtual void | finalizeOptimization () |
virtual void | evaluateRatiosAlltoOne (ParticleSet &P, std::vector< ValueType > &ratios) |
evaluate the ratios of one virtual move with respect to all the particles More... | |
virtual void | evaluateRatios (const VirtualParticleSet &VP, std::vector< ValueType > &ratios) |
evaluate ratios to evaluate the non-local PP More... | |
virtual void | evaluateSpinorRatios (const VirtualParticleSet &VP, const std::pair< ValueVector, ValueVector > &spinor_multiplier, std::vector< ValueType > &ratios) |
Used by SOECPComponent for faster SOC evaluation. More... | |
virtual void | mw_evaluateRatios (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< const VirtualParticleSet > &vp_list, std::vector< std::vector< ValueType >> &ratios) const |
evaluate ratios to evaluate the non-local PP multiple walkers More... | |
virtual void | evaluateDerivRatios (const VirtualParticleSet &VP, const opt_variables_type &optvars, std::vector< ValueType > &ratios, Matrix< ValueType > &dratios) |
evaluate ratios to evaluate the non-local PP More... | |
virtual void | mw_evalGradWithSpin (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< GradType > &grad_now, std::vector< ComplexType > &spingrad_now) const |
compute the current gradients and spin gradients for the iat-th particle of multiple walkers More... | |
virtual void | mw_ratioGradWithSpin (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< PsiValue > &ratios, std::vector< GradType > &grad_new, std::vector< ComplexType > &spingrad_new) const |
compute the ratio of the new to old WaveFunctionComponent value and the new gradient/spingradient of multiple walkers More... | |
Static Protected Member Functions | |
static bool | checkG (const GradType &g) |
Protected Attributes | |
NewTimer & | UpdateTimer |
Timers. More... | |
NewTimer & | RatioTimer |
NewTimer & | InverseTimer |
NewTimer & | BufferTimer |
NewTimer & | SPOVTimer |
NewTimer & | SPOVGLTimer |
const std::unique_ptr< SPOSet > | Phi |
a set of single-particle orbitals used to fill in the values of the matrix More... | |
const int | FirstIndex |
index of the first particle with respect to the particle set More... | |
const int | LastIndex |
index of the last particle with respect to the particle set More... | |
const int | NumOrbitals |
number of single-particle orbitals which belong to this Dirac determinant More... | |
const int | NumPtcls |
number of particles which belong to this Dirac determinant More... | |
ValueMatrix | dummy_vmt |
![]() | |
const std::string | my_name_ |
Name of the object It is required to be different for objects of the same derived type like multiple J1. More... | |
LogValue | log_value_ |
Current ![]() | |
Definition at line 33 of file DiracDeterminantBase.h.
|
inline |
constructor
spos | the single-particle orbital set. |
first | index of the first particle |
last | index of last particle |
Definition at line 41 of file DiracDeterminantBase.h.
|
inlineoverride |
|
delete |
virtual void acceptMove |
a move for iat-th particle is accepted.
Update the current content.
P | target ParticleSet |
iat | index of the particle whose new position was proposed |
safe_to_delay | if true, delayed accept is safe. |
|
inline |
acquire a shared resource from a collection
Definition at line 430 of file WaveFunctionComponent.h.
|
inlinestaticprotected |
Definition at line 192 of file DiracDeterminantBase.h.
References qmcplusplus::abs(), qmcplusplus::dot(), qmcplusplus::isinf(), and qmcplusplus::isnan().
|
inlinefinalvirtual |
check out variational optimizable variables
active | a super set of optimizable variables |
Reimplemented from WaveFunctionComponent.
Definition at line 81 of file DiracDeterminantBase.h.
References DiracDeterminantBase::Phi.
|
inline |
complete all the delayed or asynchronous operations before leaving the p-by-p move region.
Must be called at the end of each substep if p-by-p move is used. This function was initially introduced for determinant delayed updates to complete all the delayed operations. It has been extended to handle asynchronous operations on accellerators before leaving the p-by-p move region.
Definition at line 338 of file WaveFunctionComponent.h.
virtual void copyFromBuffer |
For particle-by-particle move.
Copy data or attach memory from a walker buffer to the objects of this class. The log value, P.G and P.L contribution from the objects of this class are also added.
P | particle set |
buf | Anonymous storage |
|
inline |
initialize a shared resource and hand it to a collection
Definition at line 426 of file WaveFunctionComponent.h.
|
inline |
return the current gradient for the iat-th particle
P | quantum particle set |
iat | particle index |
Definition at line 206 of file WaveFunctionComponent.h.
|
inline |
return the logarithmic gradient for the iat-th particle of the source particleset
Pquantum | particle set |
iat | particle index |
Definition at line 247 of file WaveFunctionComponent.h.
|
inline |
Adds the gradient w.r.t.
the iat-th particle of the source particleset (ions) of the logarithmic gradient and laplacian w.r.t. the target paritlceset (electrons).
P | quantum particle set (electrons) |
source | classical particle set (ions) |
iat | particle index of source (ion) |
the | ion gradient of the elctron gradient |
the | ion gradient of the elctron laplacian. |
Definition at line 264 of file WaveFunctionComponent.h.
|
inlineoverridevirtual |
return the current spin gradient for the iat-th particle Default implementation assumes that WaveFunctionComponent does not explicitly depend on Spin.
P | quantum particle set |
iat | particle index |
Reimplemented from WaveFunctionComponent.
Reimplemented in DiracDeterminantBatched< PL, VT, FPVT >, and DummyDiracDetWithoutMW.
Definition at line 157 of file DiracDeterminantBase.h.
References APP_ABORT.
virtual void evaluateDerivatives |
Compute the derivatives of both the log of the wavefunction and kinetic energy with respect to optimizable parameters.
P | particle set |
optvars | optimizable parameters |
dlogpsi | array of derivatives of the log of the wavefunction. Add the contribution from this component. |
dhpsioverpsi | array of Hamiltonian derivatives. Add the kinetic energy derivatives contribution from this component. ![]() ![]() ![]() ![]() |
|
inlinevirtual |
Definition at line 135 of file DiracDeterminantBase.h.
References APP_ABORT.
|
inlineoverridevirtual |
Compute the derivatives of the log of the wavefunction with respect to optimizable parameters.
parameters
P | particle set |
optvars | optimizable parameters |
dlogpsi | array of derivatives of the log of the wavefunction. Note: this function differs from the evaluateDerivatives function in the way that it only computes the derivative of the log of the wavefunction. |
Reimplemented from WaveFunctionComponent.
Reimplemented in DiracDeterminantBatched< PL, VT, FPVT >, and DiracDeterminant< DU_TYPE >.
Definition at line 92 of file DiracDeterminantBase.h.
WaveFunctionComponent::LogValue evaluateGL |
compute gradients and laplacian of the TWF with respect to each particle.
P | particle set |
G | Gradients, ![]() |
L | Laplacians, ![]() |
fromscratch | if true and this WFC is sensitive to numeical error accumulation, all the internal data are recomputed from scratch. |
Definition at line 178 of file WaveFunctionComponent.cpp.
|
inline |
Definition at line 182 of file WaveFunctionComponent.h.
virtual LogValue evaluateLog |
evaluate the value of the WaveFunctionComponent from scratch
[in] | P | active ParticleSet |
[out] | G | Gradients, ![]() |
[out] | L | Laplacians, ![]() |
Mainly for walker-by-walker move. The initial stage of particle-by-particle move also uses this. causes complete state update in WFC's
void evaluateRatios |
evaluate ratios to evaluate the non-local PP
VP | VirtualParticleSet |
ratios | ratios with new positions VP.R[k] the VP.refPtcl |
Definition at line 238 of file WaveFunctionComponent.cpp.
void evaluateRatiosAlltoOne |
evaluate the ratios of one virtual move with respect to all the particles
P | reference particleset |
ratios | ![]() |
Definition at line 231 of file WaveFunctionComponent.cpp.
void evaluateSpinorRatios |
Used by SOECPComponent for faster SOC evaluation.
Definition at line 245 of file WaveFunctionComponent.cpp.
|
inlinefinalvirtual |
extract underlying OptimizableObject references
opt_obj_refs | aggregated list of optimizable object references |
Reimplemented from WaveFunctionComponent.
Definition at line 76 of file DiracDeterminantBase.h.
References DiracDeterminantBase::Phi.
|
inline |
Definition at line 66 of file DiracDeterminantBase.h.
References DiracDeterminantBase::FirstIndex.
|
inline |
Definition at line 67 of file DiracDeterminantBase.h.
References DiracDeterminantBase::LastIndex.
|
inline |
Definition at line 63 of file DiracDeterminantBase.h.
References DiracDeterminantBase::Phi.
|
inlinevirtual |
Reimplemented in DiracDeterminant< DU_TYPE >.
Definition at line 70 of file DiracDeterminantBase.h.
References DiracDeterminantBase::dummy_vmt.
|
inlinefinalvirtual |
true, if this component is fermionic
Reimplemented from WaveFunctionComponent.
Definition at line 73 of file DiracDeterminantBase.h.
|
inlinefinalvirtual |
if true, this contains optimizable components
Reimplemented from WaveFunctionComponent.
Definition at line 74 of file DiracDeterminantBase.h.
References DiracDeterminantBase::Phi.
|
inlinefinalvirtual |
make clone
tqp | target Quantum ParticleSet |
deepcopy | if true, make a decopy |
If not true, return a proxy class
Reimplemented from WaveFunctionComponent.
Definition at line 146 of file DiracDeterminantBase.h.
References APP_ABORT.
|
pure virtual |
cloning function
tqp | target particleset |
spo | spo set |
This interface is exposed only to SlaterDet and its derived classes can overwrite to clone itself correctly.
Implemented in DiracDeterminantBatched< PL, VT, FPVT >, DiracDeterminant< DU_TYPE >, DiracDeterminantWithBackflow, and DummyDiracDetWithoutMW.
void mw_accept_rejectMove |
moves of the iat-th particle on some walkers in a batch is accepted.
Update the current content. Note that all the lists only include accepted walkers.
wfc_list | the list of WaveFunctionComponent pointers of the same component in a walker batch |
p_list | the list of ParticleSet pointers in a walker batch |
iat | particle index |
safe_to_delay | if true, delayed accept is safe. |
Definition at line 157 of file WaveFunctionComponent.cpp.
void mw_calcRatio |
compute the ratio of the new to old WaveFunctionComponent value of multiple walkers
wfc_list | the list of WaveFunctionComponent pointers of the same component in a walker batch |
p_list | the list of ParticleSet pointers in a walker batch |
iat | particle index |
ratios | the list of WF ratios of a walker batch, ![]() |
Definition at line 104 of file WaveFunctionComponent.cpp.
void mw_completeUpdates |
complete all the delayed or asynchronous operations for all the walkers in a batch before leaving the p-by-p move region.
Definition at line 171 of file WaveFunctionComponent.cpp.
void mw_evalGrad |
compute the current gradients for the iat-th particle of multiple walkers
wfc_list | the list of WaveFunctionComponent pointers of the same component in a walker batch |
p_list | the list of ParticleSet pointers in a walker batch |
iat | particle index |
grad_now | the list of gradients in a walker batch, ![]() |
Definition at line 80 of file WaveFunctionComponent.cpp.
void mw_evalGrad | ( | CoordsType | CT | ) |
compute the current gradients for the iat-th particle of multiple walkers
[out] | grad_now | the list of gradients in a walker batch, ![]() |
Definition at line 69 of file WaveFunctionComponent.cpp.
void mw_evaluateGL |
evaluate gradients and laplacian of the same type WaveFunctionComponent of multiple walkers
wfc_list | the list of WaveFunctionComponent pointers of the same component in a walker batch |
p_list | the list of ParticleSet pointers in a walker batch |
G_list | the list of Gradients pointers in a walker batch, ![]() |
L_list | the list of Laplacians pointers in a walker batch, ![]() |
fromscratch | if true and this WFC is sensitive to numerical error accumulation, all the internal data are recomputed from scratch. |
Definition at line 186 of file WaveFunctionComponent.cpp.
void mw_evaluateLog |
evaluate from scratch the same type WaveFunctionComponent of multiple walkers
wfc_list | the list of WaveFunctionComponent pointers of the same component in a walker batch |
p_list | the list of ParticleSet pointers in a walker batch |
G_list | the list of Gradients pointers in a walker batch, ![]() |
L_list | the list of Laplacians pointers in a walker batch, ![]() |
values | the log WF values of walkers in a batch |
Definition at line 31 of file WaveFunctionComponent.cpp.
void mw_evaluateRatios |
evaluate ratios to evaluate the non-local PP multiple walkers
wfc_list | the list of WaveFunctionComponent references of the same component in a walker batch |
vp_list | the list of VirtualParticleSet references in a walker batch |
ratios | of all the virtual moves of all the walkers |
Definition at line 250 of file WaveFunctionComponent.cpp.
void mw_ratioGrad | ( | CoordsType | CT | ) |
Definition at line 122 of file WaveFunctionComponent.cpp.
void mw_ratioGrad |
compute the ratio of the new to old WaveFunctionComponent value and the new gradient of multiple walkers
wfc_list | the list of WaveFunctionComponent pointers of the same component in a walker batch |
p_list | the list of ParticleSet pointers in a walker batch |
iat | particle index |
ratios | the list of WF ratios of a walker batch, ![]() |
grad_now | the list of new gradients in a walker batch, ![]() |
Definition at line 134 of file WaveFunctionComponent.cpp.
|
delete |
virtual PsiValue ratio |
evaluate the ratio of the new to old WaveFunctionComponent value
P | the active ParticleSet |
iat | the index of a particle |
Specialized for particle-by-particle move
PsiValue ratioGrad |
evaluate the ratio of the new to old WaveFunctionComponent value and the new gradient
P | the active ParticleSet |
iat | the index of a particle |
grad_iat | Gradient for the active particle |
Definition at line 115 of file WaveFunctionComponent.cpp.
|
inlineoverridevirtual |
evaluate the ratio of the new to old WaveFunctionComponent value and the new spin gradient Default implementation assumes that WaveFunctionComponent does not explicitly depend on Spin.
P | the active ParticleSet |
iat | the index of a particle |
grad_iat | realspace gradient for the active particle |
spingrad_iat | spin gradient for the active particle |
Reimplemented from WaveFunctionComponent.
Reimplemented in DummyDiracDetWithoutMW.
Definition at line 152 of file DiracDeterminantBase.h.
References APP_ABORT.
void recompute |
recompute the value of the WaveFunctionComponents which require critical accuracy.
needed for Slater Determinants but not needed for most types of WaveFunctionComponents
Definition at line 41 of file WaveFunctionComponent.cpp.
virtual void registerData |
For particle-by-particle move.
Requests space in the buffer based on the data type sizes of the objects in this class.
P | particle set |
buf | Anonymous storage |
|
inlineoverridevirtual |
Register the component with the TWFFastDerivWrapper wrapper.
Reimplemented from WaveFunctionComponent.
Reimplemented in DiracDeterminantBatched< PL, VT, FPVT >, and DiracDeterminant< DU_TYPE >.
Definition at line 87 of file DiracDeterminantBase.h.
|
inline |
return a shared resource to a collection
Definition at line 436 of file WaveFunctionComponent.h.
virtual void restore |
If a move for iat-th particle is rejected, restore to the content.
iat | index of the particle whose new position was proposed |
Ye: hopefully we can gradually move away from restore
virtual LogValue updateBuffer |
For particle-by-particle move.
Put the objects of this class in the walker buffer or forward the memory cursor.
P | particle set |
buf | Anonymous storage |
fromscratch | request recomputing the precision critical pieces of wavefunction from scratch |
|
protected |
Definition at line 173 of file DiracDeterminantBase.h.
|
protected |
Definition at line 189 of file DiracDeterminantBase.h.
Referenced by DiracDeterminantBase::getPsiMinv().
|
protected |
index of the first particle with respect to the particle set
Definition at line 177 of file DiracDeterminantBase.h.
Referenced by DiracDeterminantWithBackflow::dummyEvalLi(), DiracDeterminantWithBackflow::evalGrad(), DiracDeterminantWithBackflow::evaluate_SPO(), DiracDeterminantWithBackflow::evaluateDerivatives(), DiracDeterminantWithBackflow::evaluateLog(), DiracDeterminantBase::getFirstIndex(), DummyDiracDetWithoutMW::makeCopy(), DiracDeterminantWithBackflow::makeCopyWithBF(), DiracDeterminantWithBackflow::ratio(), DiracDeterminantWithBackflow::ratioGrad(), DiracDeterminantWithBackflow::testDerivFjj(), DiracDeterminantWithBackflow::testGG(), and DiracDeterminantWithBackflow::testL().
|
protected |
Definition at line 173 of file DiracDeterminantBase.h.
Referenced by DiracDeterminantWithBackflow::dummyEvalLi(), DiracDeterminantWithBackflow::evaluateDerivatives(), DiracDeterminantWithBackflow::evaluateLog(), DiracDeterminantWithBackflow::ratio(), DiracDeterminantWithBackflow::ratioGrad(), DiracDeterminantWithBackflow::testDerivFjj(), and DiracDeterminantWithBackflow::testL().
|
protected |
index of the last particle with respect to the particle set
Definition at line 179 of file DiracDeterminantBase.h.
Referenced by DiracDeterminantWithBackflow::evaluate_SPO(), DiracDeterminantBase::getLastIndex(), DummyDiracDetWithoutMW::makeCopy(), DiracDeterminantWithBackflow::makeCopyWithBF(), DiracDeterminantWithBackflow::ratio(), DiracDeterminantWithBackflow::ratioGrad(), and DiracDeterminantWithBackflow::testGG().
|
protected |
number of single-particle orbitals which belong to this Dirac determinant
Definition at line 181 of file DiracDeterminantBase.h.
Referenced by DiracDeterminantWithBackflow::dummyEvalLi(), DiracDeterminantWithBackflow::evaluate_SPO(), DiracDeterminantWithBackflow::evaluateDerivatives(), DiracDeterminantWithBackflow::evaluateLog(), DiracDeterminantWithBackflow::ratio(), DiracDeterminantWithBackflow::ratioGrad(), DiracDeterminantWithBackflow::registerData(), DiracDeterminantWithBackflow::testDerivFjj(), DiracDeterminantWithBackflow::testGG(), DiracDeterminantWithBackflow::testGGG(), and DiracDeterminantWithBackflow::testL().
|
protected |
number of particles which belong to this Dirac determinant
Definition at line 183 of file DiracDeterminantBase.h.
Referenced by DiracDeterminant< DU_TYPE >::DiracDeterminant(), DiracDeterminantBatched< PL, VT, FPVT >::DiracDeterminantBatched(), DiracDeterminantWithBackflow::DiracDeterminantWithBackflow(), DiracDeterminantWithBackflow::dummyEvalLi(), DiracDeterminantWithBackflow::evalGrad(), DiracDeterminantWithBackflow::evaluateDerivatives(), DiracDeterminantWithBackflow::evaluateLog(), DiracDeterminantWithBackflow::ratio(), DiracDeterminantWithBackflow::ratioGrad(), DiracDeterminantWithBackflow::registerData(), DiracDeterminantWithBackflow::resize(), DiracDeterminantWithBackflow::testDerivFjj(), DiracDeterminantWithBackflow::testGG(), DiracDeterminantWithBackflow::testGGG(), and DiracDeterminantWithBackflow::testL().
|
protected |
a set of single-particle orbitals used to fill in the values of the matrix
Definition at line 175 of file DiracDeterminantBase.h.
Referenced by DiracDeterminant< DU_TYPE >::acquireResource(), DiracDeterminantBase::checkOutVariables(), DiracDeterminant< DU_TYPE >::DiracDeterminant(), DiracDeterminantBatched< PL, VT, FPVT >::DiracDeterminantBatched(), DiracDeterminantWithBackflow::evaluate_SPO(), DiracDeterminantBase::extractOptimizableObjectRefs(), DiracDeterminantBase::getPhi(), DiracDeterminantBase::isOptimizable(), DiracDeterminantWithBackflow::ratio(), DiracDeterminantWithBackflow::ratioGrad(), DiracDeterminant< DU_TYPE >::releaseResource(), and DiracDeterminantWithBackflow::testGG().
|
protected |
Definition at line 173 of file DiracDeterminantBase.h.
|
protected |
Definition at line 173 of file DiracDeterminantBase.h.
|
protected |
Definition at line 173 of file DiracDeterminantBase.h.
|
protected |
Timers.
Definition at line 173 of file DiracDeterminantBase.h.
Referenced by DiracDeterminantWithBackflow::acceptMove(), and DiracDeterminantWithBackflow::updateBuffer().