![]() |
QMCPACK
|
base class for Single-particle orbital sets More...
Public Member Functions | |
SPOSet (const std::string &my_name) | |
constructor More... | |
virtual | ~SPOSet ()=default |
destructor More... | |
int | size () const |
return the size of the orbital set Ye: this needs to be replaced by getOrbitalSetSize(); More... | |
void | basic_report (const std::string &pad="") const |
print basic SPOSet information More... | |
virtual void | report (const std::string &pad="") const |
print SPOSet information More... | |
int | getOrbitalSetSize () const |
return the size of the orbitals More... | |
virtual bool | isOptimizable () const |
Query if this SPOSet is optimizable. More... | |
virtual void | extractOptimizableObjectRefs (UniqueOptObjRefs &opt_obj_refs) |
extract underlying OptimizableObject references More... | |
virtual void | checkOutVariables (const opt_variables_type &active) |
check out variational optimizable variables More... | |
virtual bool | isOMPoffload () const |
Query if this SPOSet uses OpenMP offload. More... | |
virtual bool | hasIonDerivs () const |
Query if this SPOSet has an explicit ion dependence. More... | |
virtual void | checkObject () const |
check a few key parameters before putting the SPO into a determinant More... | |
virtual bool | isRotationSupported () const |
return true if this SPOSet can be wrappered by RotatedSPO More... | |
virtual void | storeParamsBeforeRotation () |
store parameters before getting destroyed by rotation. More... | |
virtual void | applyRotation (const ValueMatrix &rot_mat, bool use_stored_copy=false) |
apply rotation to all the orbitals More... | |
virtual void | evaluateDerivatives (ParticleSet &P, const opt_variables_type &optvars, Vector< ValueType > &dlogpsi, Vector< ValueType > &dhpsioverpsi, const int &FirstIndex, const int &LastIndex) |
Parameter derivatives of the wavefunction and the Laplacian of the wavefunction. More... | |
virtual void | evaluateDerivativesWF (ParticleSet &P, const opt_variables_type &optvars, Vector< ValueType > &dlogpsi, int FirstIndex, int LastIndex) |
Parameter derivatives of the wavefunction. More... | |
virtual void | evaluateDerivatives (ParticleSet &P, const opt_variables_type &optvars, Vector< ValueType > &dlogpsi, Vector< ValueType > &dhpsioverpsi, const ValueType &psiCurrent, const std::vector< ValueType > &Coeff, const std::vector< size_t > &C2node_up, const std::vector< size_t > &C2node_dn, const ValueVector &detValues_up, const ValueVector &detValues_dn, const GradMatrix &grads_up, const GradMatrix &grads_dn, const ValueMatrix &lapls_up, const ValueMatrix &lapls_dn, const ValueMatrix &M_up, const ValueMatrix &M_dn, const ValueMatrix &Minv_up, const ValueMatrix &Minv_dn, const GradMatrix &B_grad, const ValueMatrix &B_lapl, const std::vector< int > &detData_up, const size_t N1, const size_t N2, const size_t NP1, const size_t NP2, const std::vector< std::vector< int >> &lookup_tbl) |
Evaluate the derivative of the optimized orbitals with respect to the parameters this is used only for MSD, to be refined for better serving both single and multi SD. More... | |
virtual void | evaluateDerivativesWF (ParticleSet &P, const opt_variables_type &optvars, Vector< ValueType > &dlogpsi, const QTFull::ValueType &psiCurrent, const std::vector< ValueType > &Coeff, const std::vector< size_t > &C2node_up, const std::vector< size_t > &C2node_dn, const ValueVector &detValues_up, const ValueVector &detValues_dn, const ValueMatrix &M_up, const ValueMatrix &M_dn, const ValueMatrix &Minv_up, const ValueMatrix &Minv_dn, const std::vector< int > &detData_up, const std::vector< std::vector< int >> &lookup_tbl) |
Evaluate the derivative of the optimized orbitals with respect to the parameters this is used only for MSD, to be refined for better serving both single and multi SD. More... | |
virtual void | setOrbitalSetSize (int norbs)=0 |
set the OrbitalSetSize More... | |
virtual void | evaluateValue (const ParticleSet &P, int iat, ValueVector &psi)=0 |
evaluate the values of this single-particle orbital set More... | |
virtual void | evaluateDetRatios (const VirtualParticleSet &VP, ValueVector &psi, const ValueVector &psiinv, std::vector< ValueType > &ratios) |
evaluate determinant ratios for virtual moves, e.g., sphere move for nonlocalPP More... | |
virtual void | evaluateDetSpinorRatios (const VirtualParticleSet &VP, ValueVector &psi, const std::pair< ValueVector, ValueVector > &spinor_multiplier, const ValueVector &invrow, std::vector< ValueType > &ratios) |
evaluate determinant ratios for virtual moves, specifically for Spinor SPOSets More... | |
virtual void | evaluateDerivRatios (const VirtualParticleSet &VP, const opt_variables_type &optvars, ValueVector &psi, const ValueVector &psiinv, std::vector< ValueType > &ratios, Matrix< ValueType > &dratios, int FirstIndex, int LastIndex) |
Determinant ratios and parameter derivatives of the wavefunction for virtual moves. More... | |
virtual void | mw_evaluateDetRatios (const RefVectorWithLeader< SPOSet > &spo_list, const RefVectorWithLeader< const VirtualParticleSet > &vp_list, const RefVector< ValueVector > &psi_list, const std::vector< const ValueType *> &invRow_ptr_list, std::vector< std::vector< ValueType >> &ratios_list) const |
evaluate determinant ratios for virtual moves, e.g., sphere move for nonlocalPP, of multiple walkers More... | |
virtual void | evaluateVGL (const ParticleSet &P, int iat, ValueVector &psi, GradVector &dpsi, ValueVector &d2psi)=0 |
evaluate the values, gradients and laplacians of this single-particle orbital set More... | |
virtual void | evaluateVGL_spin (const ParticleSet &P, int iat, ValueVector &psi, GradVector &dpsi, ValueVector &d2psi, ValueVector &dspin) |
evaluate the values, gradients and laplacians and spin gradient of this single-particle orbital set More... | |
virtual void | mw_evaluateValue (const RefVectorWithLeader< SPOSet > &spo_list, const RefVectorWithLeader< ParticleSet > &P_list, int iat, const RefVector< ValueVector > &psi_v_list) const |
evaluate the values this single-particle orbital sets of multiple walkers More... | |
virtual void | mw_evaluateVGL (const RefVectorWithLeader< SPOSet > &spo_list, const RefVectorWithLeader< ParticleSet > &P_list, int iat, const RefVector< ValueVector > &psi_v_list, const RefVector< GradVector > &dpsi_v_list, const RefVector< ValueVector > &d2psi_v_list) const |
evaluate the values, gradients and laplacians of this single-particle orbital sets of multiple walkers More... | |
virtual void | mw_evaluateVGLWithSpin (const RefVectorWithLeader< SPOSet > &spo_list, const RefVectorWithLeader< ParticleSet > &P_list, int iat, const RefVector< ValueVector > &psi_v_list, const RefVector< GradVector > &dpsi_v_list, const RefVector< ValueVector > &d2psi_v_list, OffloadMatrix< ComplexType > &mw_dspin) const |
evaluate the values, gradients and laplacians and spin gradient of this single-particle orbital sets of multiple walkers More... | |
virtual void | mw_evaluateVGLandDetRatioGrads (const RefVectorWithLeader< SPOSet > &spo_list, const RefVectorWithLeader< ParticleSet > &P_list, int iat, const std::vector< const ValueType *> &invRow_ptr_list, OffloadMWVGLArray &phi_vgl_v, std::vector< ValueType > &ratios, std::vector< GradType > &grads) const |
evaluate the values, gradients and laplacians of this single-particle orbital sets and determinant ratio and grads of multiple walkers. More... | |
virtual void | mw_evaluateVGLandDetRatioGradsWithSpin (const RefVectorWithLeader< SPOSet > &spo_list, const RefVectorWithLeader< ParticleSet > &P_list, int iat, const std::vector< const ValueType *> &invRow_ptr_list, OffloadMWVGLArray &phi_vgl_v, std::vector< ValueType > &ratios, std::vector< GradType > &grads, std::vector< ValueType > &spingrads) const |
evaluate the values, gradients and laplacians of this single-particle orbital sets and determinant ratio and grads of multiple walkers. More... | |
virtual void | evaluateVGH (const ParticleSet &P, int iat, ValueVector &psi, GradVector &dpsi, HessVector &grad_grad_psi) |
evaluate the values, gradients and hessians of this single-particle orbital set More... | |
virtual void | evaluateVGHGH (const ParticleSet &P, int iat, ValueVector &psi, GradVector &dpsi, HessVector &grad_grad_psi, GGGVector &grad_grad_grad_psi) |
evaluate the values, gradients, hessians, and grad hessians of this single-particle orbital set More... | |
virtual void | evaluate_spin (const ParticleSet &P, int iat, ValueVector &psi, ValueVector &dpsi) |
evaluate the values of this single-particle orbital set More... | |
virtual void | evaluateThirdDeriv (const ParticleSet &P, int first, int last, GGGMatrix &grad_grad_grad_logdet) |
evaluate the third derivatives of this single-particle orbital set More... | |
virtual void | evaluate_notranspose (const ParticleSet &P, int first, int last, ValueMatrix &logdet, GradMatrix &dlogdet, ValueMatrix &d2logdet)=0 |
evaluate the values, gradients and laplacians of this single-particle orbital for [first,last) particles More... | |
virtual void | evaluate_notranspose_spin (const ParticleSet &P, int first, int last, ValueMatrix &logdet, GradMatrix &dlogdet, ValueMatrix &d2logdet, ValueMatrix &dspinlogdet) |
evaluate the values, gradients and laplacians of this single-particle orbital for [first,last) particles, including the spin gradient More... | |
virtual void | mw_evaluate_notranspose (const RefVectorWithLeader< SPOSet > &spo_list, const RefVectorWithLeader< ParticleSet > &P_list, int first, int last, const RefVector< ValueMatrix > &logdet_list, const RefVector< GradMatrix > &dlogdet_list, const RefVector< ValueMatrix > &d2logdet_list) const |
virtual void | evaluate_notranspose (const ParticleSet &P, int first, int last, ValueMatrix &logdet, GradMatrix &dlogdet, HessMatrix &grad_grad_logdet) |
evaluate the values, gradients and hessians of this single-particle orbital for [first,last) particles More... | |
virtual void | evaluate_notranspose (const ParticleSet &P, int first, int last, ValueMatrix &logdet, GradMatrix &dlogdet, HessMatrix &grad_grad_logdet, GGGMatrix &grad_grad_grad_logdet) |
evaluate the values, gradients, hessians and third derivatives of this single-particle orbital for [first,last) particles More... | |
virtual void | evaluateGradSource (const ParticleSet &P, int first, int last, const ParticleSet &source, int iat_src, GradMatrix &gradphi) |
evaluate the gradients of this single-particle orbital for [first,last) target particles with respect to the given source particle More... | |
virtual void | evaluateGradSource (const ParticleSet &P, int first, int last, const ParticleSet &source, int iat_src, GradMatrix &grad_phi, HessMatrix &grad_grad_phi, GradMatrix &grad_lapl_phi) |
evaluate the gradients of values, gradients, laplacians of this single-particle orbital for [first,last) target particles with respect to the given source particle More... | |
virtual void | evaluateGradSourceRow (const ParticleSet &P, int iel, const ParticleSet &source, int iat_src, GradVector &gradphi) |
Returns a row of d/dR_iat phi_j(r) evaluated at position r. More... | |
virtual PosType | get_k (int orb) |
access the k point related to the given orbital More... | |
virtual void | createResource (ResourceCollection &collection) const |
initialize a shared resource and hand it to collection More... | |
virtual void | acquireResource (ResourceCollection &collection, const RefVectorWithLeader< SPOSet > &spo_list) const |
acquire a shared resource from collection More... | |
virtual void | releaseResource (ResourceCollection &collection, const RefVectorWithLeader< SPOSet > &spo_list) const |
return a shared resource to collection More... | |
virtual std::unique_ptr< SPOSet > | makeClone () const |
make a clone of itself every derived class must implement this to have threading working correctly. More... | |
virtual bool | transformSPOSet () |
Used only by cusp correction in AOS LCAO. More... | |
virtual void | finalizeConstruction () |
finalize the construction of SPOSet More... | |
const std::string & | getName () const |
return object name More... | |
virtual std::string | getClassName () const =0 |
return class name More... | |
Protected Attributes | |
const std::string | my_name_ |
name of the object, unique identifier More... | |
IndexType | OrbitalSetSize |
number of Single-particle orbitals More... | |
opt_variables_type | myVars |
Optimizable variables. More... | |
Friends | |
opt_variables_type & | testing::getMyVars (SPOSet &spo) |
base class for Single-particle orbital sets
SPOSet stands for S(ingle)P(article)O(rbital)Set which contains a number of single-particle orbitals with capabilities of evaluating
using GGGMatrix = OrbitalSetTraits<ValueType>::GradHessMatrix |
using GGGVector = OrbitalSetTraits<ValueType>::GradHessVector |
using GradMatrix = OrbitalSetTraits<ValueType>::GradMatrix |
using GradVector = OrbitalSetTraits<ValueType>::GradVector |
using HessMatrix = OrbitalSetTraits<ValueType>::HessMatrix |
using HessVector = OrbitalSetTraits<ValueType>::HessVector |
using OffloadMatrix = Matrix<DT, OffloadPinnedAllocator<DT> > |
using OffloadMWVArray = Array<ValueType, 2, OffloadPinnedAllocator<ValueType> > |
using OffloadMWVGLArray = Array<ValueType, 3, OffloadPinnedAllocator<ValueType> > |
using ValueMatrix = OrbitalSetTraits<ValueType>::ValueMatrix |
using ValueVector = OrbitalSetTraits<ValueType>::ValueVector |
SPOSet | ( | const std::string & | my_name | ) |
constructor
Definition at line 29 of file SPOSet.cpp.
|
virtualdefault |
destructor
Derived class destructor needs to pay extra attention to freeing memory shared among clones of SPOSet.
|
inlinevirtual |
acquire a shared resource from collection
Reimplemented in RotatedSPOs, LCAOrbitalSet, SpinorSet, SplineC2ROMPTarget< ST >, and SplineC2COMPTarget< ST >.
|
virtual |
apply rotation to all the orbitals
Reimplemented in SplineC2C< ST >, SplineR2R< ST >, LCAOrbitalSet, and SpinorSet.
Definition at line 255 of file SPOSet.cpp.
References SPOSet::getClassName(), and SPOSet::isRotationSupported().
void basic_report | ( | const std::string & | pad = "" | ) | const |
print basic SPOSet information
Definition at line 230 of file SPOSet.cpp.
References qmcplusplus::app_log(), and SPOSet::size().
Referenced by SPOSet::report().
|
inlinevirtual |
check a few key parameters before putting the SPO into a determinant
Reimplemented in RotatedSPOs, and LCAOrbitalSet.
|
virtual |
check out variational optimizable variables
active | a super set of optimizable variables |
Reimplemented in RotatedSPOs, and ConstantSPOSet.
Definition at line 39 of file SPOSet.cpp.
References SPOSet::getClassName(), and SPOSet::isOptimizable().
|
inlinevirtual |
initialize a shared resource and hand it to collection
Reimplemented in RotatedSPOs, LCAOrbitalSet, SpinorSet, SplineC2ROMPTarget< ST >, and SplineC2COMPTarget< ST >.
|
pure virtual |
evaluate the values, gradients and laplacians of this single-particle orbital for [first,last) particles
[in] | P | current ParticleSet |
[in] | first | starting index of the particles |
[in] | last | ending index of the particles |
[out] | logdet | determinant matrix to be inverted |
[out] | dlogdet | gradients |
[out] | d2logdet | laplacians |
Implemented in DummySPOSetWithoutMW, RotatedSPOs, SplineC2ROMPTarget< ST >, SplineC2COMPTarget< ST >, LCAOrbitalSet, SpinorSet, BsplineSet, PWRealOrbitalSet, PWOrbitalSet, SHOSet, CompositeSPOSet, ConstantSPOSet, LCAOrbitalSetWithCorrection, FakeSPO, and FreeOrbital.
Referenced by SPOSet::mw_evaluate_notranspose().
|
virtual |
evaluate the values, gradients and hessians of this single-particle orbital for [first,last) particles
P | current ParticleSet |
first | starting index of the particles |
last | ending index of the particles |
logdet | determinant matrix to be inverted |
dlogdet | gradients |
grad_grad_logdet | hessians |
Reimplemented in RotatedSPOs, BsplineSet, LCAOrbitalSet, SHOSet, PWRealOrbitalSet, CompositeSPOSet, and FreeOrbital.
Definition at line 203 of file SPOSet.cpp.
|
virtual |
evaluate the values, gradients, hessians and third derivatives of this single-particle orbital for [first,last) particles
P | current ParticleSet |
first | starting index of the particles |
last | ending index of the particles |
logdet | determinant matrix to be inverted |
dlogdet | gradients |
grad_grad_logdet | hessians |
grad_grad_grad_logdet | third derivatives |
Reimplemented in RotatedSPOs, BsplineSet, LCAOrbitalSet, SHOSet, CompositeSPOSet, and FreeOrbital.
Definition at line 213 of file SPOSet.cpp.
|
virtual |
evaluate the values, gradients and laplacians of this single-particle orbital for [first,last) particles, including the spin gradient
P | current ParticleSet |
first | starting index of the particles |
last | ending index of the particles |
logdet | determinant matrix to be inverted |
dlogdet | gradients |
d2logdet | laplacians |
dspinlogdet,spin | gradients |
default implementation will abort for all SPOSets except SpinorSet
Reimplemented in SpinorSet.
Definition at line 178 of file SPOSet.cpp.
References SPOSet::getClassName().
|
virtual |
evaluate the values of this single-particle orbital set
P | current ParticleSet |
iat | active particle |
psi | values of the SPO |
Reimplemented in RotatedSPOs, and SpinorSet.
Definition at line 409 of file SPOSet.cpp.
References SPOSet::getClassName().
|
virtual |
Parameter derivatives of the wavefunction and the Laplacian of the wavefunction.
Reimplemented in RotatedSPOs.
Definition at line 263 of file SPOSet.cpp.
References SPOSet::getClassName(), and SPOSet::isOptimizable().
|
virtual |
Evaluate the derivative of the optimized orbitals with respect to the parameters this is used only for MSD, to be refined for better serving both single and multi SD.
Reimplemented in RotatedSPOs.
Definition at line 310 of file SPOSet.cpp.
References SPOSet::getClassName(), and SPOSet::isOptimizable().
|
virtual |
Parameter derivatives of the wavefunction.
Reimplemented in RotatedSPOs.
Definition at line 276 of file SPOSet.cpp.
References SPOSet::getClassName(), and SPOSet::isOptimizable().
|
virtual |
Evaluate the derivative of the optimized orbitals with respect to the parameters this is used only for MSD, to be refined for better serving both single and multi SD.
Reimplemented in RotatedSPOs.
Definition at line 346 of file SPOSet.cpp.
References SPOSet::getClassName(), and SPOSet::isOptimizable().
|
virtual |
Determinant ratios and parameter derivatives of the wavefunction for virtual moves.
Reimplemented in RotatedSPOs.
Definition at line 288 of file SPOSet.cpp.
References SPOSet::evaluateDetRatios(), SPOSet::getClassName(), and SPOSet::isOptimizable().
|
virtual |
evaluate determinant ratios for virtual moves, e.g., sphere move for nonlocalPP
VP | virtual particle set |
psi | values of the SPO, used as a scratch space if needed |
psiinv | the row of inverse slater matrix corresponding to the particle moved virtually |
ratios | return determinant ratios |
Reimplemented in RotatedSPOs, SplineC2ROMPTarget< ST >, SplineC2COMPTarget< ST >, SplineC2C< ST >, and LCAOrbitalSet.
Definition at line 47 of file SPOSet.cpp.
References qmcplusplus::simd::dot(), SPOSet::evaluateValue(), and VirtualParticleSet::getTotalNum().
Referenced by SPOSet::evaluateDerivRatios().
|
virtual |
evaluate determinant ratios for virtual moves, specifically for Spinor SPOSets
VP | virtual particle set |
psi | values of the SPO, used as a scratch space if needed |
spinor_multiplier | factor to apply to the up and down components independently |
invrow | the row of inverse slater matrix corresponding to the particle moved virtually |
ratios | return determinant ratios |
Reimplemented in SpinorSet.
Definition at line 60 of file SPOSet.cpp.
References SPOSet::getClassName().
|
virtual |
evaluate the gradients of this single-particle orbital for [first,last) target particles with respect to the given source particle
P | current ParticleSet |
first | starting index of the particles |
last | ending index of the particles |
iat_src | source particle index |
gradphi | gradients |
Reimplemented in RotatedSPOs, BsplineSet, LCAOrbitalSet, SpinorSet, and SHOSet.
Definition at line 369 of file SPOSet.cpp.
References SPOSet::getClassName(), and SPOSet::hasIonDerivs().
|
virtual |
evaluate the gradients of values, gradients, laplacians of this single-particle orbital for [first,last) target particles with respect to the given source particle
P | current ParticleSet |
first | starting index of the particles |
last | ending index of the particles |
iat_src | source particle index |
gradphi | gradients of values |
grad_grad_phi | gradients of gradients |
grad_lapl_phi | gradients of laplacians |
Reimplemented in RotatedSPOs, BsplineSet, LCAOrbitalSet, and SHOSet.
Definition at line 382 of file SPOSet.cpp.
References SPOSet::getClassName(), and SPOSet::hasIonDerivs().
|
virtual |
Returns a row of d/dR_iat phi_j(r) evaluated at position r.
[in] | P | particle set. |
[in] | iel | The electron at which to evaluate phi(r_iel) |
[in] | source | ion particle set. |
[in] | iat_src | ion ID w.r.t. which to take derivative. |
[in,out] | gradphi | Vector of d/dR_iat phi_j(r). |
Reimplemented in LCAOrbitalSet.
Definition at line 397 of file SPOSet.cpp.
References SPOSet::getClassName(), and SPOSet::hasIonDerivs().
|
virtual |
evaluate the third derivatives of this single-particle orbital set
P | current ParticleSet |
first | first particle |
last | last particle |
grad_grad_grad_logdet | third derivatives of the SPO |
Reimplemented in SHOSet.
Definition at line 173 of file SPOSet.cpp.
|
pure virtual |
evaluate the values of this single-particle orbital set
P | current ParticleSet |
iat | active particle |
psi | values of the SPO |
Implemented in DummySPOSetWithoutMW, RotatedSPOs, SplineC2ROMPTarget< ST >, SplineC2COMPTarget< ST >, SplineR2R< ST >, SplineC2C< ST >, SplineC2R< ST >, LCAOrbitalSet, PWRealOrbitalSet, PWOrbitalSet, SHOSet, ConstantSPOSet, CompositeSPOSet, LCAOrbitalSetWithCorrection, SpinorSet, FreeOrbital, and FakeSPO.
Referenced by OrbitalImages::evaluate(), SPOSet::evaluateDetRatios(), CompositeSPOSet::evaluateValue(), SPOSet::mw_evaluateValue(), and OneMolecularOrbital::phi().
|
virtual |
evaluate the values, gradients and hessians of this single-particle orbital set
P | current ParticleSet |
iat | active particle |
psi | values of the SPO |
dpsi | gradients of the SPO |
grad_grad_psi | hessians of the SPO |
Reimplemented in RotatedSPOs, SplineC2ROMPTarget< ST >, SplineC2COMPTarget< ST >, SplineC2C< ST >, SplineR2R< ST >, SplineC2R< ST >, and LCAOrbitalSet.
Definition at line 238 of file SPOSet.cpp.
References SPOSet::getClassName().
Referenced by BsplineSet::evaluate_notranspose().
|
virtual |
evaluate the values, gradients, hessians, and grad hessians of this single-particle orbital set
P | current ParticleSet |
iat | active particle |
psi | values of the SPO |
dpsi | gradients of the SPO |
grad_grad_psi | hessians of the SPO |
grad_grad_grad_psi | grad hessians of the SPO |
Reimplemented in RotatedSPOs, SplineC2ROMPTarget< ST >, SplineC2COMPTarget< ST >, SplineC2C< ST >, SplineR2R< ST >, SplineC2R< ST >, and LCAOrbitalSet.
Definition at line 244 of file SPOSet.cpp.
References SPOSet::getClassName().
Referenced by BsplineSet::evaluate_notranspose().
|
pure virtual |
evaluate the values, gradients and laplacians of this single-particle orbital set
P | current ParticleSet |
iat | active particle |
psi | values of the SPO |
dpsi | gradients of the SPO |
d2psi | laplacians of the SPO |
Implemented in DummySPOSetWithoutMW, RotatedSPOs, SplineC2ROMPTarget< ST >, SplineC2COMPTarget< ST >, SplineC2C< ST >, SplineR2R< ST >, SplineC2R< ST >, LCAOrbitalSet, PWRealOrbitalSet, PWOrbitalSet, SHOSet, SpinorSet, ConstantSPOSet, CompositeSPOSet, LCAOrbitalSetWithCorrection, FreeOrbital, and FakeSPO.
Referenced by OrbitalImages::evaluate(), BsplineSet::evaluate_notranspose(), CompositeSPOSet::evaluateVGL(), SPOSet::mw_evaluateVGL(), OneMolecularOrbital::phi_vgl(), and SPOSetScanner::scan_path().
|
virtual |
evaluate the values, gradients and laplacians and spin gradient of this single-particle orbital set
P | current ParticleSet |
iat | active particle |
psi | values of the SPO |
dpsi | gradients of the SPO |
d2psi | laplacians of the SPO |
dspin | spin gradients of the SPO |
Reimplemented in RotatedSPOs, SpinorSet, and CompositeSPOSet.
Definition at line 83 of file SPOSet.cpp.
Referenced by CompositeSPOSet::evaluateVGL_spin().
|
virtual |
extract underlying OptimizableObject references
opt_obj_refs | aggregated list of optimizable object references |
Reimplemented in RotatedSPOs.
Definition at line 31 of file SPOSet.cpp.
References SPOSet::getClassName(), and SPOSet::isOptimizable().
|
inlinevirtual |
finalize the construction of SPOSet
for example, classes serving accelerators may need to transfer data from host to device after the host side objects are built.
Reimplemented in SplineC2ROMPTarget< ST >, SplineC2COMPTarget< ST >, LCAOrbitalSet, and LCAOrbitalSetWithCorrection.
|
inlinevirtual |
|
pure virtual |
return class name
Implemented in DummySPOSetWithoutMW, SplineC2ROMPTarget< ST >, SplineC2COMPTarget< ST >, SplineC2R< ST >, SplineC2C< ST >, SplineR2R< ST >, SHOSet, LCAOrbitalSet, PWRealOrbitalSet, PWOrbitalSet, LCAOrbitalSetWithCorrection, CompositeSPOSet, ConstantSPOSet, RotatedSPOs, FakeSPO, SpinorSet, and FreeOrbital.
Referenced by SPOSet::applyRotation(), SPOSet::checkOutVariables(), SPOSet::evaluate_notranspose_spin(), SPOSet::evaluate_spin(), SPOSet::evaluateDerivatives(), SPOSet::evaluateDerivativesWF(), SPOSet::evaluateDerivRatios(), SPOSet::evaluateDetSpinorRatios(), SPOSet::evaluateGradSource(), SPOSet::evaluateGradSourceRow(), SPOSet::evaluateVGH(), SPOSet::evaluateVGHGH(), SPOSet::extractOptimizableObjectRefs(), SPOSet::makeClone(), SPOSet::mw_evaluateVGLandDetRatioGradsWithSpin(), and SPOSet::mw_evaluateVGLWithSpin().
|
inline |
return object name
Definition at line 557 of file SPOSet.h.
References SPOSet::my_name_.
Referenced by RotatedSPOs::readVariationalParameters(), and RotatedSPOs::writeVariationalParameters().
|
inline |
return the size of the orbitals
Definition at line 88 of file SPOSet.h.
References SPOSet::OrbitalSetSize.
Referenced by qmcplusplus::applyCuspCorrection(), LCAOrbitalBuilder::createSPOSetFromXML(), qmcplusplus::generateCuspInfo(), OneMolecularOrbital::OneMolecularOrbital(), LCAOSpinorBuilder::putFromH5(), LCAOrbitalBuilder::putFromH5(), LCAOrbitalBuilder::putFromXML(), LCAOrbitalBuilder::putOccupation(), LCAOrbitalBuilder::putPBCFromH5(), qmcplusplus::removeSTypeOrbitals(), qmcplusplus::splitPhiEta(), and qmcplusplus::TEST_CASE().
|
inlinevirtual |
Query if this SPOSet has an explicit ion dependence.
returns true if it does.
Reimplemented in LCAOrbitalSet, RotatedSPOs, and SpinorSet.
Definition at line 108 of file SPOSet.h.
Referenced by SPOSet::evaluateGradSource(), and SPOSet::evaluateGradSourceRow().
|
inlinevirtual |
Query if this SPOSet uses OpenMP offload.
Reimplemented in SplineC2ROMPTarget< ST >, SplineC2COMPTarget< ST >, LCAOrbitalSet, RotatedSPOs, and SpinorSet.
|
inlinevirtual |
Query if this SPOSet is optimizable.
Reimplemented in RotatedSPOs, and SpinorSet.
Definition at line 91 of file SPOSet.h.
Referenced by SPOSet::checkOutVariables(), SPOSet::evaluateDerivatives(), SPOSet::evaluateDerivativesWF(), SPOSet::evaluateDerivRatios(), and SPOSet::extractOptimizableObjectRefs().
|
inlinevirtual |
return true if this SPOSet can be wrappered by RotatedSPO
Reimplemented in SplineC2C< ST >, SplineR2R< ST >, LCAOrbitalSet, and SpinorSet.
Definition at line 114 of file SPOSet.h.
Referenced by SPOSet::applyRotation().
|
virtual |
make a clone of itself every derived class must implement this to have threading working correctly.
Reimplemented in SpinorSet, SplineC2ROMPTarget< ST >, SplineC2COMPTarget< ST >, RotatedSPOs, BsplineSet, SplineC2R< ST >, SplineC2C< ST >, SplineR2R< ST >, SHOSet, LCAOrbitalSet, FreeOrbital, PWRealOrbitalSet, PWOrbitalSet, CompositeSPOSet, LCAOrbitalSetWithCorrection, FakeSPO, and ConstantSPOSet.
Definition at line 225 of file SPOSet.cpp.
References SPOSet::getClassName().
Referenced by SlaterDetBuilder::buildComponent(), CompositeSPOSetBuilder::createSPOSetFromXML(), and SlaterDetBuilder::putDeterminant().
|
virtual |
Reimplemented in RotatedSPOs, SpinorSet, and BsplineSet.
Definition at line 190 of file SPOSet.cpp.
References SPOSet::evaluate_notranspose(), and RefVectorWithLeader< T >::getLeader().
|
virtual |
evaluate determinant ratios for virtual moves, e.g., sphere move for nonlocalPP, of multiple walkers
spo_list | the list of SPOSet pointers in a walker batch |
vp_list | a list of virtual particle sets in a walker batch |
psi_list | a list of values of the SPO, used as a scratch space if needed |
invRow_ptr_list | a list of pointers to the rows of inverse slater matrix corresponding to the particles moved virtually |
ratios_list | a list of returning determinant ratios |
Reimplemented in RotatedSPOs, SplineC2ROMPTarget< ST >, SplineC2COMPTarget< ST >, and LCAOrbitalSet.
Definition at line 69 of file SPOSet.cpp.
References RefVectorWithLeader< T >::getLeader(), and SPOSet::size().
Referenced by LCAOrbitalSet::mw_evaluateDetRatios(), HybridRepCplx< SPLINEBASE >::mw_evaluateDetRatios(), and HybridRepReal< SPLINEBASE >::mw_evaluateDetRatios().
|
virtual |
evaluate the values this single-particle orbital sets of multiple walkers
spo_list | the list of SPOSet pointers in a walker batch |
P_list | the list of ParticleSet pointers in a walker batch |
iat | active particle |
psi_v_list | the list of value vector pointers in a walker batch |
Reimplemented in DummySPOSetWithMW, RotatedSPOs, and LCAOrbitalSet.
Definition at line 105 of file SPOSet.cpp.
References SPOSet::evaluateValue(), and RefVectorWithLeader< T >::getLeader().
Referenced by LCAOrbitalSet::mw_evaluateValue().
|
virtual |
evaluate the values, gradients and laplacians of this single-particle orbital sets of multiple walkers
spo_list | the list of SPOSet pointers in a walker batch |
P_list | the list of ParticleSet pointers in a walker batch |
iat | active particle |
psi_v_list | the list of value vector pointers in a walker batch |
dpsi_v_list | the list of gradient vector pointers in a walker batch |
d2psi_v_list | the list of laplacian vector pointers in a walker batch |
Reimplemented in RotatedSPOs, SplineC2ROMPTarget< ST >, SplineC2COMPTarget< ST >, and LCAOrbitalSet.
Definition at line 93 of file SPOSet.cpp.
References SPOSet::evaluateVGL(), and RefVectorWithLeader< T >::getLeader().
Referenced by BsplineSet::mw_evaluate_notranspose(), LCAOrbitalSet::mw_evaluateVGL(), HybridRepCplx< SPLINEBASE >::mw_evaluateVGL(), and HybridRepReal< SPLINEBASE >::mw_evaluateVGL().
|
virtual |
evaluate the values, gradients and laplacians of this single-particle orbital sets and determinant ratio and grads of multiple walkers.
Device data of phi_vgl_v must be up-to-date upon return
spo_list | the list of SPOSet pointers in a walker batch |
P_list | the list of ParticleSet pointers in a walker batch |
iat | active particle |
phi_vgl_v | orbital values, gradients and laplacians of all the walkers |
psi_ratio_grads_v | determinant ratio and grads of all the walkers |
Reimplemented in RotatedSPOs, SplineC2ROMPTarget< ST >, SplineC2COMPTarget< ST >, and LCAOrbitalSet.
Definition at line 126 of file SPOSet.cpp.
References Array< T, D, ALLOC >::data_at(), QMCTraits::DIM, QMCTraits::DIM_VGL, qmcplusplus::simd::dot(), RefVectorWithLeader< T >::getLeader(), Array< T, D, ALLOC >::size(), and Array< T, D, ALLOC >::updateTo().
Referenced by LCAOrbitalSet::mw_evaluateVGLandDetRatioGrads(), HybridRepCplx< SPLINEBASE >::mw_evaluateVGLandDetRatioGrads(), and HybridRepReal< SPLINEBASE >::mw_evaluateVGLandDetRatioGrads().
|
virtual |
evaluate the values, gradients and laplacians of this single-particle orbital sets and determinant ratio and grads of multiple walkers.
Device data of phi_vgl_v must be up-to-date upon return. Includes spin gradients
spo_list | the list of SPOSet pointers in a walker batch |
P_list | the list of ParticleSet pointers in a walker batch |
iat | active particle |
phi_vgl_v | orbital values, gradients and laplacians of all the walkers |
ratios,ratios | of all walkers |
grads,spatial | gradients of all walkers |
spingrads,spin | gradients of all walkers |
Reimplemented in RotatedSPOs, and SpinorSet.
Definition at line 160 of file SPOSet.cpp.
References SPOSet::getClassName().
|
virtual |
evaluate the values, gradients and laplacians and spin gradient of this single-particle orbital sets of multiple walkers
spo_list | the list of SPOSet pointers in a walker batch |
P_list | the list of ParticleSet pointers in a walker batch |
iat | active particle |
psi_v_list | the list of value vector pointers in a walker batch |
dpsi_v_list | the list of gradient vector pointers in a walker batch |
d2psi_v_list | the list of laplacian vector pointers in a walker batch |
mw_dspin | is a dual matrix of spin gradients [nw][norb] Note that the device side of mw_dspin is up to date |
Reimplemented in RotatedSPOs, and SpinorSet.
Definition at line 115 of file SPOSet.cpp.
References SPOSet::getClassName().
Referenced by DiracDeterminantBatched< PL, VT, FPVT >::mw_evalGradWithSpin().
|
inlinevirtual |
return a shared resource to collection
Reimplemented in RotatedSPOs, LCAOrbitalSet, SpinorSet, SplineC2ROMPTarget< ST >, and SplineC2COMPTarget< ST >.
|
inlinevirtual |
print SPOSet information
Reimplemented in SHOSet, and FreeOrbital.
Definition at line 83 of file SPOSet.h.
References SPOSet::basic_report().
|
pure virtual |
set the OrbitalSetSize
norbs | number of single-particle orbitals Ye: I prefer to remove this interface in the future. SPOSet builders need to handle the size correctly. It doesn't make sense allowing to set the value at any place in the code. |
Implemented in DummySPOSetWithoutMW, RotatedSPOs, BsplineSet, SHOSet, PWRealOrbitalSet, LCAOrbitalSet, PWOrbitalSet, FreeOrbital, CompositeSPOSet, LCAOrbitalSetWithCorrection, SpinorSet, ConstantSPOSet, and FakeSPO.
|
inline |
return the size of the orbital set Ye: this needs to be replaced by getOrbitalSetSize();
Definition at line 75 of file SPOSet.h.
References SPOSet::OrbitalSetSize.
Referenced by SPOSet::basic_report(), WaveFunctionTester::checkGradientAtConfiguration(), OrbitalImages::evaluate(), SHOSet::evaluate_notranspose(), CompositeSPOSet::evaluateValue(), SHOSet::evaluateValue(), CompositeSPOSet::evaluateVGL(), SHOSet::evaluateVGL(), CompositeSPOSet::evaluateVGL_spin(), SPOSet::mw_evaluateDetRatios(), LCAOrbitalSet::mw_evaluateValue(), LCAOrbitalSet::mw_evaluateVGL(), SpinorSet::mw_evaluateVGLWithSpin(), OneBodyDensityMatrices::OneBodyDensityMatrices(), OrbitalImages::report(), SPOSetScanner::scan_path(), DensityMatrices1B::set_state(), qmcplusplus::TEST_CASE(), SHOSet::test_derivatives(), and SHOSet::test_overlap().
|
inlinevirtual |
store parameters before getting destroyed by rotation.
Reimplemented in SplineC2C< ST >, SplineR2R< ST >, LCAOrbitalSet, and SpinorSet.
|
inlinevirtual |
|
friend |
|
protected |
name of the object, unique identifier
Definition at line 564 of file SPOSet.h.
Referenced by RotatedSPOs::buildOptVariables(), DummySPOSetWithoutMW::getClassName(), SPOSet::getName(), ConstantSPOSet::makeClone(), RotatedSPOs::makeClone(), and SpinorSet::makeClone().
|
protected |
Optimizable variables.
Definition at line 568 of file SPOSet.h.
Referenced by RotatedSPOs::buildOptVariables(), RotatedSPOs::checkInVariablesExclusive(), RotatedSPOs::checkOutVariables(), RotatedSPOs::evaluateDerivatives(), RotatedSPOs::evaluateDerivativesWF(), RotatedSPOs::evaluateDerivRatios(), qmcplusplus::testing::getMyVars(), RotatedSPOs::makeClone(), RotatedSPOs::readVariationalParameters(), RotatedSPOs::resetParametersExclusive(), RotatedSPOs::table_method_eval(), RotatedSPOs::table_method_evalWF(), and RotatedSPOs::writeVariationalParameters().
|
protected |
number of Single-particle orbitals
Definition at line 566 of file SPOSet.h.
Referenced by CompositeSPOSet::add(), LCAOrbitalSet::applyRotation(), LCAOrbitalSet::checkObject(), CompositeSPOSet::CompositeSPOSet(), ConstantSPOSet::ConstantSPOSet(), FreeOrbital::evaluate_notranspose(), FakeSPO::evaluate_notranspose(), PWOrbitalSet::evaluate_notranspose(), PWRealOrbitalSet::evaluate_notranspose(), LCAOrbitalSet::evaluate_notranspose(), FakeSPO::evaluateValue(), ConstantSPOSet::evaluateValue(), LCAOrbitalSet::evaluateValue(), PWRealOrbitalSet::evaluateValue(), RotatedSPOs::evaluateValue(), LCAOrbitalSet::evaluateVGH(), RotatedSPOs::evaluateVGH(), LCAOrbitalSet::evaluateVGHGH(), FakeSPO::evaluateVGL(), ConstantSPOSet::evaluateVGL(), PWOrbitalSet::evaluateVGL(), LCAOrbitalSet::evaluateVGL(), PWRealOrbitalSet::evaluateVGL(), RotatedSPOs::evaluateVGL(), RotatedSPOs::evaluateVGL_spin(), FreeOrbital::FreeOrbital(), SPOSet::getOrbitalSetSize(), SHOSet::initialize(), LCAOrbitalSet::LCAOrbitalSet(), LCAOrbitalSetWithCorrection::LCAOrbitalSetWithCorrection(), ConstantSPOSet::makeClone(), LCAOrbitalSet::mw_evaluateValue(), LCAOrbitalSet::mw_evaluateValueImplGEMM(), LCAOrbitalSet::mw_evaluateValueVPsImplGEMM(), LCAOrbitalSet::mw_evaluateVGL(), LCAOrbitalSet::mw_evaluateVGLImplGEMM(), PWOrbitalSet::resize(), PWRealOrbitalSet::resize(), RotatedSPOs::RotatedSPOs(), FakeSPO::setOrbitalSetSize(), SpinorSet::setOrbitalSetSize(), BsplineSet::setOrbitalSetSize(), ConstantSPOSet::setRefEGrads(), ConstantSPOSet::setRefELapls(), ConstantSPOSet::setRefVals(), and SPOSet::size().