![]() |
QMCPACK
|
Public Member Functions | |
PWRealOrbitalSet (const std::string &my_name) | |
default constructor More... | |
std::string | getClassName () const override |
return class name More... | |
~PWRealOrbitalSet () override | |
delete BasisSet only it owns this 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 | resize (PWBasisPtr bset, int nbands, bool cleanup=false) |
resize the orbital base More... | |
void | addVector (const std::vector< RealType > &coefs, int jorb) |
add eigenstate for jorb-th orbital More... | |
void | addVector (const std::vector< ComplexType > &coefs, int jorb) |
add eigenstate for jorb-th orbital More... | |
void | setOrbitalSetSize (int norbs) override |
set the OrbitalSetSize More... | |
ValueType | evaluate (int ib, const PosType &pos) |
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 | 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 &grad_grad_logdet) override |
evaluate the values, gradients and hessians 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 | 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_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, 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 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 | |
bool | OwnBasisSet |
boolean More... | |
PosType | TwistAngle |
TwistAngle of this PWRealOrbitalSet. More... | |
PWBasisPtr | myBasisSet |
My basis set. More... | |
IndexType | BasisSetSize |
number of basis More... | |
Matrix< ComplexType > | CC |
Plane-wave coefficients of complex: (iband,g-vector) More... | |
Matrix< ComplexType > | Temp |
temporary array to perform gemm operation More... | |
Vector< ComplexType > | tempPsi |
temporary complex vector before assigning to a real psi More... | |
Additional Inherited Members | |
![]() | |
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... | |
Definition at line 31 of file PWRealOrbitalSet.h.
using BasisSet_t = PWBasis |
Definition at line 34 of file PWRealOrbitalSet.h.
using PWBasisPtr = PWBasis* |
Definition at line 35 of file PWRealOrbitalSet.h.
anonymous enum |
inherit the enum of BasisSet_t
Enumerator | |
---|---|
PW_VALUE | |
PW_LAP | |
PW_GRADX | |
PW_GRADY | |
PW_GRADZ | |
PW_MAXINDEX |
Definition at line 38 of file PWRealOrbitalSet.h.
|
inline |
default constructor
Definition at line 50 of file PWRealOrbitalSet.h.
|
override |
delete BasisSet only it owns this
Builder takes care of who owns what
Definition at line 28 of file PWRealOrbitalSet.cpp.
References PWRealOrbitalSet::myBasisSet, and PWRealOrbitalSet::OwnBasisSet.
void addVector | ( | const std::vector< RealType > & | coefs, |
int | jorb | ||
) |
add eigenstate for jorb-th orbital
coefs | real input data |
jorb | orbital index |
Definition at line 56 of file PWRealOrbitalSet.cpp.
References Communicate::abort(), qmcplusplus::app_error(), PWRealOrbitalSet::CC, OHMMS::Controller, PWBasis::inputmap, and PWRealOrbitalSet::myBasisSet.
void addVector | ( | const std::vector< ComplexType > & | coefs, |
int | jorb | ||
) |
add eigenstate for jorb-th orbital
coefs | complex input data |
jorb | orbital index |
Definition at line 73 of file PWRealOrbitalSet.cpp.
References Communicate::abort(), qmcplusplus::app_error(), PWRealOrbitalSet::CC, OHMMS::Controller, PWBasis::inputmap, and PWRealOrbitalSet::myBasisSet.
Definition at line 85 of file PWRealOrbitalSet.h.
References PWRealOrbitalSet::BasisSetSize, PWRealOrbitalSet::CC, Vector< T, Alloc >::data(), BLAS::dot(), PWBasis::evaluate(), PWRealOrbitalSet::myBasisSet, qmcplusplus::real(), and PWBasis::Zv.
|
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 123 of file PWRealOrbitalSet.cpp.
References PWRealOrbitalSet::CC, qmcplusplus::convertToReal(), Matrix< T, Alloc >::data(), PWBasis::evaluateAll(), PWRealOrbitalSet::myBasisSet, SPOSet::OrbitalSetSize, qmcplusplus::MatrixOperators::product(), PWRealOrbitalSet::PW_GRADX, PWRealOrbitalSet::PW_GRADY, PWRealOrbitalSet::PW_GRADZ, PWRealOrbitalSet::PW_LAP, PWRealOrbitalSet::PW_MAXINDEX, PWRealOrbitalSet::PW_VALUE, qmcplusplus::real(), PWRealOrbitalSet::Temp, and PWBasis::Z.
|
inlineoverridevirtual |
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 102 of file PWRealOrbitalSet.h.
References APP_ABORT.
|
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 90 of file PWRealOrbitalSet.cpp.
References ParticleSet::activeR(), PWRealOrbitalSet::CC, PWBasis::evaluate(), PWRealOrbitalSet::myBasisSet, SPOSet::OrbitalSetSize, qmcplusplus::MatrixOperators::product(), qmcplusplus::real(), PWRealOrbitalSet::tempPsi, and PWBasis::Zv.
|
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 98 of file PWRealOrbitalSet.cpp.
References PWRealOrbitalSet::CC, Matrix< T, Alloc >::data(), PWBasis::evaluateAll(), PWRealOrbitalSet::myBasisSet, SPOSet::OrbitalSetSize, qmcplusplus::MatrixOperators::product(), PWRealOrbitalSet::PW_GRADX, PWRealOrbitalSet::PW_GRADY, PWRealOrbitalSet::PW_GRADZ, PWRealOrbitalSet::PW_LAP, PWRealOrbitalSet::PW_MAXINDEX, PWRealOrbitalSet::PW_VALUE, qmcplusplus::real(), PWRealOrbitalSet::Temp, and PWBasis::Z.
|
inlineoverridevirtual |
|
overridevirtual |
make a clone of itself every derived class must implement this to have threading working correctly.
Reimplemented from SPOSet.
Definition at line 34 of file PWRealOrbitalSet.cpp.
References PWRealOrbitalSet::myBasisSet.
void resize | ( | PWBasisPtr | bset, |
int | nbands, | ||
bool | cleanup = false |
||
) |
resize the orbital base
Definition at line 43 of file PWRealOrbitalSet.cpp.
References qmcplusplus::app_log(), PWRealOrbitalSet::BasisSetSize, PWRealOrbitalSet::CC, PWRealOrbitalSet::myBasisSet, PWBasis::NumPlaneWaves, SPOSet::OrbitalSetSize, PWRealOrbitalSet::OwnBasisSet, PWRealOrbitalSet::PW_MAXINDEX, Matrix< T, Alloc >::resize(), Vector< T, Alloc >::resize(), PWRealOrbitalSet::Temp, and PWRealOrbitalSet::tempPsi.
|
overridevirtual |
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. |
Implements SPOSet.
Definition at line 41 of file PWRealOrbitalSet.cpp.
IndexType BasisSetSize |
number of basis
Definition at line 123 of file PWRealOrbitalSet.h.
Referenced by PWRealOrbitalSet::evaluate(), and PWRealOrbitalSet::resize().
Matrix<ComplexType> CC |
Plane-wave coefficients of complex: (iband,g-vector)
Definition at line 125 of file PWRealOrbitalSet.h.
Referenced by PWRealOrbitalSet::addVector(), PWRealOrbitalSet::evaluate(), PWRealOrbitalSet::evaluate_notranspose(), PWRealOrbitalSet::evaluateValue(), PWRealOrbitalSet::evaluateVGL(), and PWRealOrbitalSet::resize().
PWBasisPtr myBasisSet |
My basis set.
Definition at line 121 of file PWRealOrbitalSet.h.
Referenced by PWRealOrbitalSet::addVector(), PWRealOrbitalSet::evaluate(), PWRealOrbitalSet::evaluate_notranspose(), PWRealOrbitalSet::evaluateValue(), PWRealOrbitalSet::evaluateVGL(), PWRealOrbitalSet::makeClone(), PWRealOrbitalSet::resize(), and PWRealOrbitalSet::~PWRealOrbitalSet().
bool OwnBasisSet |
boolean
If true, this has to delete the BasisSet
Definition at line 117 of file PWRealOrbitalSet.h.
Referenced by PWRealOrbitalSet::resize(), and PWRealOrbitalSet::~PWRealOrbitalSet().
Matrix<ComplexType> Temp |
temporary array to perform gemm operation
Definition at line 127 of file PWRealOrbitalSet.h.
Referenced by PWRealOrbitalSet::evaluate_notranspose(), PWRealOrbitalSet::evaluateVGL(), and PWRealOrbitalSet::resize().
Vector<ComplexType> tempPsi |
temporary complex vector before assigning to a real psi
Definition at line 129 of file PWRealOrbitalSet.h.
Referenced by PWRealOrbitalSet::evaluateValue(), and PWRealOrbitalSet::resize().
PosType TwistAngle |
TwistAngle of this PWRealOrbitalSet.
Definition at line 119 of file PWRealOrbitalSet.h.