![]() |
QMCPACK
|
Public Member Functions | |
CompositeSPOSet (const std::string &my_name) | |
CompositeSPOSet (const CompositeSPOSet &other) | |
~CompositeSPOSet () override | |
std::string | getClassName () const override |
return class name More... | |
void | add (std::unique_ptr< SPOSet > component) |
add a sposet component to this composite sposet More... | |
void | report () |
print out component info More... | |
void | setOrbitalSetSize (int norbs) override |
size is determined by component sposets and nothing else More... | |
std::unique_ptr< SPOSet > | makeClone () const override |
make a clone of itself every derived class must implement this to have threading working correctly. More... | |
void | evaluateValue (const ParticleSet &P, int iat, ValueVector &psi) override |
evaluate the values of this single-particle orbital set More... | |
void | evaluateVGL (const ParticleSet &P, int iat, ValueVector &psi, GradVector &dpsi, ValueVector &d2psi) override |
evaluate the values, gradients and laplacians of this single-particle orbital set More... | |
void | evaluateVGL_spin (const ParticleSet &P, int iat, ValueVector &psi, GradVector &dpsi, ValueVector &d2psi, ValueVector &dspin_psi) override |
evaluate the values, gradients and laplacians and spin gradient of this single-particle orbital set More... | |
void | not_implemented (const std::string &method) |
unimplemented functions call this to abort More... | |
void | evaluate_notranspose (const ParticleSet &P, int first, int last, ValueMatrix &logdet, GradMatrix &dlogdet, ValueMatrix &d2logdet) override |
evaluate the values, gradients and laplacians of this single-particle orbital for [first,last) particles More... | |
void | evaluate_notranspose (const ParticleSet &P, int first, int last, ValueMatrix &logdet, GradMatrix &dlogdet, HessMatrix &ddlogdet) override |
evaluate the values, gradients and hessians of this single-particle orbital for [first,last) particles More... | |
void | evaluate_notranspose (const ParticleSet &P, int first, int last, ValueMatrix &logdet, GradMatrix &dlogdet, HessMatrix &ddlogdet, GGGMatrix &dddlogdet) override |
evaluate the values, gradients, hessians and third derivatives of this single-particle orbital for [first,last) particles More... | |
![]() | |
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 | 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 | 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_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 | 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 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... | |
Public Attributes | |
std::vector< std::unique_ptr< SPOSet > > | components |
component SPOSets More... | |
std::vector< ValueVector > | component_values |
temporary storage for values More... | |
std::vector< GradVector > | component_gradients |
temporary storage for gradients More... | |
std::vector< ValueVector > | component_laplacians |
temporary storage for laplacians More... | |
std::vector< ValueVector > | component_spin_gradients |
temporary storage for spin gradients More... | |
std::vector< int > | component_offsets |
store the precomputed offsets More... | |
Definition at line 25 of file CompositeSPOSet.h.
CompositeSPOSet | ( | const std::string & | my_name | ) |
Definition at line 42 of file CompositeSPOSet.cpp.
References CompositeSPOSet::component_offsets, and SPOSet::OrbitalSetSize.
CompositeSPOSet | ( | const CompositeSPOSet & | other | ) |
Definition at line 48 of file CompositeSPOSet.cpp.
References CompositeSPOSet::add(), and CompositeSPOSet::components.
|
overridedefault |
void add | ( | std::unique_ptr< SPOSet > | component | ) |
add a sposet component to this composite sposet
Definition at line 58 of file CompositeSPOSet.cpp.
References CompositeSPOSet::component_gradients, CompositeSPOSet::component_laplacians, CompositeSPOSet::component_offsets, CompositeSPOSet::component_spin_gradients, CompositeSPOSet::component_values, CompositeSPOSet::components, and SPOSet::OrbitalSetSize.
Referenced by CompositeSPOSet::CompositeSPOSet(), OneBodyDensityMatrices::OneBodyDensityMatrices(), DensityMatrices1B::set_state(), and qmcplusplus::TEST_CASE().
|
overridevirtual |
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 |
Implements SPOSet.
Definition at line 142 of file CompositeSPOSet.cpp.
References CompositeSPOSet::component_offsets, CompositeSPOSet::components, qmcplusplus::MatrixOperators::insert_columns(), and qmcplusplus::n.
Referenced by qmcplusplus::TEST_CASE().
|
overridevirtual |
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 from SPOSet.
Definition at line 164 of file CompositeSPOSet.cpp.
References CompositeSPOSet::component_offsets, CompositeSPOSet::components, qmcplusplus::MatrixOperators::insert_columns(), and qmcplusplus::n.
|
overridevirtual |
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 from SPOSet.
Definition at line 186 of file CompositeSPOSet.cpp.
References CompositeSPOSet::not_implemented().
|
overridevirtual |
evaluate the values of this single-particle orbital set
P | current ParticleSet |
iat | active particle |
psi | values of the SPO |
Implements SPOSet.
Definition at line 88 of file CompositeSPOSet.cpp.
References CompositeSPOSet::component_values, CompositeSPOSet::components, copy(), SPOSet::evaluateValue(), qmcplusplus::n, and SPOSet::size().
Referenced by DensityMatrices1B::update_basis(), OneBodyDensityMatrices::updateBasis(), and OneBodyDensityMatrices::updateBasisWithSpin().
|
overridevirtual |
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 |
Implements SPOSet.
Definition at line 101 of file CompositeSPOSet.cpp.
References CompositeSPOSet::component_gradients, CompositeSPOSet::component_laplacians, CompositeSPOSet::component_values, CompositeSPOSet::components, copy(), SPOSet::evaluateVGL(), qmcplusplus::n, and SPOSet::size().
Referenced by DensityMatrices1B::update_basis_d012(), and OneBodyDensityMatrices::updateBasisD012().
|
overridevirtual |
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 from SPOSet.
Definition at line 118 of file CompositeSPOSet.cpp.
References CompositeSPOSet::component_gradients, CompositeSPOSet::component_laplacians, CompositeSPOSet::component_spin_gradients, CompositeSPOSet::component_values, CompositeSPOSet::components, copy(), SPOSet::evaluateVGL_spin(), qmcplusplus::n, and SPOSet::size().
Referenced by OneBodyDensityMatrices::updateBasisD012WithSpin().
|
inlineoverridevirtual |
|
overridevirtual |
make a clone of itself every derived class must implement this to have threading working correctly.
Reimplemented from SPOSet.
Definition at line 86 of file CompositeSPOSet.cpp.
|
inline |
unimplemented functions call this to abort
Definition at line 71 of file CompositeSPOSet.h.
References APP_ABORT.
Referenced by CompositeSPOSet::evaluate_notranspose().
void report | ( | ) |
print out component info
Definition at line 74 of file CompositeSPOSet.cpp.
References qmcplusplus::app_log(), and CompositeSPOSet::components.
|
inlineoverridevirtual |
size is determined by component sposets and nothing else
Implements SPOSet.
Definition at line 55 of file CompositeSPOSet.h.
std::vector<GradVector> component_gradients |
temporary storage for gradients
Definition at line 33 of file CompositeSPOSet.h.
Referenced by CompositeSPOSet::add(), CompositeSPOSet::evaluateVGL(), and CompositeSPOSet::evaluateVGL_spin().
std::vector<ValueVector> component_laplacians |
temporary storage for laplacians
Definition at line 35 of file CompositeSPOSet.h.
Referenced by CompositeSPOSet::add(), CompositeSPOSet::evaluateVGL(), and CompositeSPOSet::evaluateVGL_spin().
std::vector<int> component_offsets |
store the precomputed offsets
Definition at line 39 of file CompositeSPOSet.h.
Referenced by CompositeSPOSet::add(), CompositeSPOSet::CompositeSPOSet(), and CompositeSPOSet::evaluate_notranspose().
std::vector<ValueVector> component_spin_gradients |
temporary storage for spin gradients
Definition at line 37 of file CompositeSPOSet.h.
Referenced by CompositeSPOSet::add(), and CompositeSPOSet::evaluateVGL_spin().
std::vector<ValueVector> component_values |
temporary storage for values
Definition at line 31 of file CompositeSPOSet.h.
Referenced by CompositeSPOSet::add(), CompositeSPOSet::evaluateValue(), CompositeSPOSet::evaluateVGL(), and CompositeSPOSet::evaluateVGL_spin().
std::vector<std::unique_ptr<SPOSet> > components |
component SPOSets
Definition at line 29 of file CompositeSPOSet.h.
Referenced by CompositeSPOSet::add(), CompositeSPOSet::CompositeSPOSet(), CompositeSPOSet::evaluate_notranspose(), CompositeSPOSet::evaluateValue(), CompositeSPOSet::evaluateVGL(), CompositeSPOSet::evaluateVGL_spin(), and CompositeSPOSet::report().