![]() |
QMCPACK
|
Public Member Functions | |
DummyDiracDetWithMW (const std::string &class_name, std::unique_ptr< SPOSet > &&spos, int first, int last) | |
void | mw_evalGrad (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, const int iat, std::vector< GradType > &grad_now) const override |
compute the current gradients for the iat-th particle of multiple walkers More... | |
void | mw_evalGradWithSpin (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, const int iat, std::vector< GradType > &grad_now, std::vector< ComplexType > &spingrad_now) const override |
compute the current gradients and spin gradients for the iat-th particle of multiple walkers More... | |
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 override |
compute the ratio of the new to old WaveFunctionComponent value and the new gradient of multiple walkers More... | |
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 override |
compute the ratio of the new to old WaveFunctionComponent value and the new gradient/spingradient of multiple walkers More... | |
![]() | |
DummyDiracDetWithoutMW (const std::string &class_name, std::unique_ptr< SPOSet > &&spos, int first, int last) | |
std::string | getClassName () const override |
return class name More... | |
LogValue | evaluateLog (const ParticleSet &P, ParticleSet::ParticleGradient &G, ParticleSet::ParticleLaplacian &L) override |
evaluate the value of the WaveFunctionComponent from scratch More... | |
void | acceptMove (ParticleSet &P, int iat, bool safe_to_delay=false) override |
a move for iat-th particle is accepted. More... | |
void | restore (int iat) override |
If a move for iat-th particle is rejected, restore to the content. More... | |
PsiValue | ratio (ParticleSet &P, int iat) override |
evaluate the ratio of the new to old WaveFunctionComponent value More... | |
GradType | evalGrad (ParticleSet &P, int iat) override |
return the current gradient for the iat-th particle 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... | |
PsiValue | ratioGrad (ParticleSet &P, int iat, GradType &grad_iat) override |
evaluate the ratio of the new to old WaveFunctionComponent value and the new gradient More... | |
PsiValue | ratioGradWithSpin (ParticleSet &P, int iat, GradType &grad_iat, ComplexType &spingrad_iat) 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... | |
void | registerData (ParticleSet &P, WFBufferType &buf) override |
For particle-by-particle move. More... | |
LogValue | updateBuffer (ParticleSet &P, WFBufferType &buf, bool fromscratch=false) override |
For particle-by-particle move. More... | |
void | copyFromBuffer (ParticleSet &P, WFBufferType &buf) override |
For particle-by-particle move. More... | |
void | evaluateDerivatives (ParticleSet &P, const opt_variables_type &optvars, Vector< ValueType > &dlogpsi, Vector< ValueType > &dhpsioverpsi) override |
Compute the derivatives of both the log of the wavefunction and kinetic energy with respect to optimizable parameters. More... | |
std::unique_ptr< DiracDeterminantBase > | makeCopy (std::unique_ptr< SPOSet > &&spo) const override |
cloning function More... | |
![]() | |
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... | |
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... | |
PsiValue | getValue () const |
assembles the full value More... | |
virtual bool | isMultiDet () const |
true, if this component is multi-determinant 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 |
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 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... | |
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_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 | 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 | 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 | 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... | |
Additional Inherited Members | |
![]() | |
enum | { ORB_PBYP_RATIO, ORB_PBYP_ALL, ORB_PBYP_PARTIAL, ORB_WALKER, ORB_ALLWALKER } |
enum for a update mode More... | |
using | Walker_t = ParticleSet::Walker_t |
using | WFBufferType = Walker_t::WFBuffer_t |
using | BufferType = Walker_t::Buffer_t |
using | RealMatrix_t = OrbitalSetTraits< RealType >::ValueMatrix |
using | ValueVector = OrbitalSetTraits< ValueType >::ValueVector |
using | ValueMatrix = OrbitalSetTraits< ValueType >::ValueMatrix |
using | GradMatrix = OrbitalSetTraits< ValueType >::GradMatrix |
using | HessType = OrbitalSetTraits< ValueType >::HessType |
using | HessVector = OrbitalSetTraits< ValueType >::HessVector |
using | LogValue = std::complex< QTFull::RealType > |
using | PsiValue = QTFull::ValueType |
![]() | |
enum | { DIM = OHMMS_DIM, DIM_VGL = OHMMS_DIM + 2 } |
using | QTBase = QMCTypes< OHMMS_PRECISION, DIM > |
using | QTFull = QMCTypes< OHMMS_PRECISION_FULL, DIM > |
using | RealType = QTBase::RealType |
using | ComplexType = QTBase::ComplexType |
using | ValueType = QTBase::ValueType |
using | PosType = QTBase::PosType |
using | GradType = QTBase::GradType |
using | TensorType = QTBase::TensorType |
using | IndexType = OHMMS_INDEXTYPE |
define other types More... | |
using | FullPrecRealType = QTFull::RealType |
using | FullPrecValueType = QTFull::ValueType |
using | PropertySetType = RecordNamedProperty< FullPrecRealType > |
define PropertyList_t More... | |
using | PtclGrpIndexes = std::vector< std::pair< int, int > > |
![]() | |
int | UpdateMode |
current update mode More... | |
opt_variables_type | myVars |
list of variables this WaveFunctionComponent handles More... | |
size_t | Bytes_in_WFBuffer |
Bytes in WFBuffer. More... | |
![]() | |
static bool | checkG (const GradType &g) |
![]() | |
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 88 of file test_SlaterDet.cpp.
|
inline |
Definition at line 91 of file test_SlaterDet.cpp.
|
inlineoverridevirtual |
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, ![]() |
Reimplemented from WaveFunctionComponent.
Definition at line 95 of file test_SlaterDet.cpp.
|
inlineoverridevirtual |
compute the current gradients and spin 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, ![]() |
spingrad_now | the list of spin gradients in a walker batch, ![]() |
Reimplemented from WaveFunctionComponent.
Definition at line 107 of file test_SlaterDet.cpp.
|
inlineoverridevirtual |
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, ![]() |
Reimplemented from WaveFunctionComponent.
Definition at line 122 of file test_SlaterDet.cpp.
|
inlineoverridevirtual |
compute the ratio of the new to old WaveFunctionComponent value and the new gradient/spingradient 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, ![]() |
Reimplemented from WaveFunctionComponent.
Definition at line 135 of file test_SlaterDet.cpp.