![]() |
QMCPACK
|
Public Member Functions | |
ShortRangeCuspFunctor (const std::string &my_name) | |
default constructor More... | |
void | setCusp (real_type cusp) override |
sets the cusp condition and disables optimization of the cusp-determining parameter More... | |
OptimizableFunctorBase * | makeClone () const override |
clone the functor More... | |
void | reset () override |
Implement the reset function, which was pure virtual in OptimizableFunctorBase, even though we don't need it. More... | |
real_type | evaluate (real_type r) const |
compute U(r) at a particular value of r More... | |
real_type | evaluate (real_type r, real_type &dudr, real_type &d2udr2) const |
compute U(r), dU/dr, and d^2U/dr^2 at a particular value of r More... | |
real_type | evaluate (real_type r, real_type &dudr, real_type &d2udr2, real_type &d3udr3) const |
compute U(r), dU/dr, d^2U/dr^2, and d^3U/dr^3 More... | |
real_type | evaluateV (const int iat, const int iStart, const int iEnd, const T *restrict _distArray, T *restrict distArrayCompressed) const |
compute U(r) at multiple distances and sum the results More... | |
void | evaluateVGL (const int iat, const int iStart, const int iEnd, const T *distArray, T *restrict valArray, T *restrict gradArray, T *restrict laplArray, T *restrict distArrayCompressed, int *restrict distIndices) const |
compute U(r), dU/dr, and d^2U/dr^2 at multiple values of r More... | |
real_type | f (real_type r) override |
compute U(r) at a particular distance or return zero if beyond the cutoff More... | |
real_type | df (real_type r) override |
compute dU/dr at a particular distance or return zero if beyond the cutoff More... | |
bool | evaluateDerivatives (real_type r, std::vector< TinyVector< real_type, 3 >> &derivs) override |
compute derivatives of U(r), dU/dr, and d^2U/dr^2 with respect to the variational parameters More... | |
bool | evaluateDerivatives (real_type r, std::vector< real_type > &derivs) override |
compute derivatives of U(r) with respect to the variational parameters More... | |
template<class U > | |
void | set_variable_from_xml (ReportEngine &PRE, xmlNodePtr cur, U &variable_to_set, std::string &id_to_set, bool &opt_to_set) |
set up a variational parameter using the supplied xml node More... | |
bool | put (xmlNodePtr cur) override |
read in information about the functor from an xml node More... | |
void | checkInVariablesExclusive (opt_variables_type &active) override |
check in variational parameters to the global list of parameters used by the optimizer. More... | |
void | checkOutVariables (const opt_variables_type &active) override |
check out variational optimizable variables More... | |
void | resetParametersExclusive (const opt_variables_type &active) override |
reset the parameters during optimizations. More... | |
![]() | |
OptimizableFunctorBase (const std::string &name="") | |
default constructor More... | |
virtual | ~OptimizableFunctorBase ()=default |
virtual destrutor More... | |
void | getIndex (const opt_variables_type &active) |
virtual real_type | f (real_type r)=0 |
evaluate the value at r More... | |
virtual real_type | df (real_type r)=0 |
evaluate the first derivative More... | |
virtual void | setDensity (real_type n) |
empty virtual function to help builder classes More... | |
virtual void | setCusp (real_type cusp) |
empty virtual function to help builder classes More... | |
virtual void | setPeriodic (bool periodic) |
empty virtual function to help builder classes More... | |
virtual bool | evaluateDerivatives (real_type r, std::vector< qmcplusplus::TinyVector< real_type, 3 >> &derivs) |
virtual bool | evaluateDerivatives (real_type r, std::vector< real_type > &derivs) |
virtual void | setGridManager (bool willmanage) |
virtual void | checkInVariablesExclusive (opt_variables_type &active)=0 |
check in variational parameters to the global list of parameters used by the optimizer. More... | |
virtual void | resetParametersExclusive (const opt_variables_type &active)=0 |
reset the parameters during optimizations More... | |
![]() | |
OptimizableObject (const std::string &name) | |
const std::string & | getName () const |
bool | isOptimized () const |
virtual void | reportStatus (std::ostream &os) |
print the state, e.g., optimizables More... | |
void | setOptimization (bool state) |
virtual void | writeVariationalParameters (hdf_archive &hout) |
Write the variational parameters for this object to the VP HDF file. More... | |
virtual void | readVariationalParameters (hdf_archive &hin) |
Read the variational parameters for this object from the VP HDF file. More... | |
Static Public Member Functions | |
static void | mw_evaluateV (const int num_groups, const ShortRangeCuspFunctor *const functors[], const int n_src, const int *grp_ids, const int num_pairs, const int *ref_at, const T *mw_dist, const int dist_stride, T *mw_vals, Vector< char, OffloadPinnedAllocator< char >> &transfer_buffer) |
evaluate sum of the pair potentials FIXME More... | |
Public Attributes | |
bool | Opt_A |
true, if A is optimizable More... | |
bool | Opt_R0 |
true, if R0 is optimizable More... | |
bool | Opt_B |
true, if B variables are optimizable More... | |
real_type | A |
variable that controls the cusp More... | |
real_type | R0 |
the soft cutoff distance that controls how short ranged the functor is More... | |
std::vector< real_type > | B |
variables that add detail through an expansion in sigmoidal functions More... | |
std::string | ID_A |
id of A More... | |
std::string | ID_R0 |
id of R0 More... | |
std::string | ID_B |
id of B More... | |
![]() | |
real_type | cutoff_radius = 0.0 |
maximum cutoff More... | |
opt_variables_type | myVars |
set of variables to be optimized More... | |
Additional Inherited Members | |
![]() | |
using | real_type = optimize::VariableSet::real_type |
typedef for real values More... | |
using | opt_variables_type = optimize::VariableSet |
typedef for variableset: this is going to be replaced More... | |
Definition at line 57 of file ShortRangeCuspFunctor.h.
|
inline |
default constructor
Definition at line 87 of file ShortRangeCuspFunctor.h.
References OptimizableFunctorBase::cutoff_radius, and ShortRangeCuspFunctor< T >::reset().
Referenced by ShortRangeCuspFunctor< T >::makeClone().
|
inlineoverridevirtual |
check in variational parameters to the global list of parameters used by the optimizer.
active | a super set of optimizable variables |
The existing checkInVariables implementation in WFC/SPO/.. are inclusive and it calls checkInVariables of its members class A: public SPOSet {} class B: public WFC { A objA; checkInVariables() { objA.checkInVariables(); } };
With OptimizableObject, class A: public OptimizableObject {} class B: public OptimizableObject { A objA; checkInVariablesExclusive() { // should not call objA.checkInVariablesExclusive() if objA has been extracted; } }; A vector of OptimizableObject, will be created by calling extractOptimizableObjects(). All the checkInVariablesExclusive() will be called through this vector and thus checkInVariablesExclusive implementation should only handle non-OptimizableObject members.
Implements OptimizableObject.
Definition at line 636 of file ShortRangeCuspFunctor.h.
References VariableSet::insertFrom(), and OptimizableFunctorBase::myVars.
Referenced by qmcplusplus::TEST_CASE().
|
inlineoverridevirtual |
check out variational optimizable variables
active | a super set of optimizable variables |
Implements OptimizableFunctorBase.
Definition at line 641 of file ShortRangeCuspFunctor.h.
References VariableSet::getIndex(), and OptimizableFunctorBase::myVars.
compute dU/dr at a particular distance or return zero if beyond the cutoff
Definition at line 275 of file ShortRangeCuspFunctor.h.
References OptimizableFunctorBase::cutoff_radius, and ShortRangeCuspFunctor< T >::evaluate().
compute U(r) at a particular value of r
Definition at line 121 of file ShortRangeCuspFunctor.h.
References ShortRangeCuspFunctor< T >::A, ShortRangeCuspFunctor< T >::B, OptimizableFunctorBase::cutoff_radius, qmcplusplus::exp(), ShortRangeCuspFunctor< T >::R0, and qmcplusplus::Units::time::s.
Referenced by ShortRangeCuspFunctor< T >::df(), ShortRangeCuspFunctor< T >::evaluateV(), ShortRangeCuspFunctor< T >::evaluateVGL(), ShortRangeCuspFunctor< T >::f(), and qmcplusplus::TEST_CASE().
compute U(r), dU/dr, and d^2U/dr^2 at a particular value of r
Definition at line 144 of file ShortRangeCuspFunctor.h.
References ShortRangeCuspFunctor< T >::A, ShortRangeCuspFunctor< T >::B, OptimizableFunctorBase::cutoff_radius, qmcplusplus::exp(), qmcplusplus::n, ShortRangeCuspFunctor< T >::R0, and qmcplusplus::Units::time::s.
|
inline |
compute U(r), dU/dr, d^2U/dr^2, and d^3U/dr^3
Definition at line 198 of file ShortRangeCuspFunctor.h.
References ReportEngine::error().
|
inlineoverride |
compute derivatives of U(r), dU/dr, and d^2U/dr^2 with respect to the variational parameters
Definition at line 285 of file ShortRangeCuspFunctor.h.
References ShortRangeCuspFunctor< T >::A, ShortRangeCuspFunctor< T >::B, qmcplusplus::exp(), qmcplusplus::n, ShortRangeCuspFunctor< T >::Opt_A, ShortRangeCuspFunctor< T >::Opt_B, ShortRangeCuspFunctor< T >::Opt_R0, ShortRangeCuspFunctor< T >::R0, and qmcplusplus::Units::time::s.
Referenced by qmcplusplus::TEST_CASE().
compute derivatives of U(r) with respect to the variational parameters
Definition at line 391 of file ShortRangeCuspFunctor.h.
References ShortRangeCuspFunctor< T >::A, ShortRangeCuspFunctor< T >::B, qmcplusplus::exp(), qmcplusplus::n, ShortRangeCuspFunctor< T >::Opt_A, ShortRangeCuspFunctor< T >::Opt_B, ShortRangeCuspFunctor< T >::Opt_R0, ShortRangeCuspFunctor< T >::R0, and qmcplusplus::Units::time::s.
|
inline |
compute U(r) at multiple distances and sum the results
Definition at line 206 of file ShortRangeCuspFunctor.h.
References ShortRangeCuspFunctor< T >::evaluate().
|
inline |
compute U(r), dU/dr, and d^2U/dr^2 at multiple values of r
Definition at line 247 of file ShortRangeCuspFunctor.h.
References ShortRangeCuspFunctor< T >::evaluate().
compute U(r) at a particular distance or return zero if beyond the cutoff
Definition at line 267 of file ShortRangeCuspFunctor.h.
References OptimizableFunctorBase::cutoff_radius, and ShortRangeCuspFunctor< T >::evaluate().
|
inlineoverridevirtual |
clone the functor
Implements OptimizableFunctorBase.
Definition at line 112 of file ShortRangeCuspFunctor.h.
References ShortRangeCuspFunctor< T >::ShortRangeCuspFunctor().
|
inlinestatic |
evaluate sum of the pair potentials FIXME
Definition at line 222 of file ShortRangeCuspFunctor.h.
|
inlineoverridevirtual |
read in information about the functor from an xml node
Implements OptimizableFunctorBase.
Definition at line 500 of file ShortRangeCuspFunctor.h.
References ShortRangeCuspFunctor< T >::A, OhmmsAttributeSet::add(), qmcplusplus::app_summary(), ShortRangeCuspFunctor< T >::B, castXMLCharToChar(), OptimizableFunctorBase::cutoff_radius, ReportEngine::error(), ShortRangeCuspFunctor< T >::ID_A, ShortRangeCuspFunctor< T >::ID_B, ShortRangeCuspFunctor< T >::ID_R0, VariableSet::insert(), qmcplusplus::lowerCase(), OptimizableFunctorBase::myVars, ShortRangeCuspFunctor< T >::Opt_A, ShortRangeCuspFunctor< T >::Opt_B, ShortRangeCuspFunctor< T >::Opt_R0, optimize::OTHER_P, OhmmsAttributeSet::put(), putContent(), ShortRangeCuspFunctor< T >::R0, ShortRangeCuspFunctor< T >::reset(), ShortRangeCuspFunctor< T >::set_variable_from_xml(), and ShortRangeCuspFunctor< T >::setCusp().
Referenced by qmcplusplus::TEST_CASE().
|
inlineoverridevirtual |
Implement the reset function, which was pure virtual in OptimizableFunctorBase, even though we don't need it.
Implements OptimizableFunctorBase.
Definition at line 115 of file ShortRangeCuspFunctor.h.
Referenced by ShortRangeCuspFunctor< T >::put(), ShortRangeCuspFunctor< T >::resetParametersExclusive(), ShortRangeCuspFunctor< T >::setCusp(), and ShortRangeCuspFunctor< T >::ShortRangeCuspFunctor().
|
inlineoverridevirtual |
reset the parameters during optimizations.
Exclusive, see checkInVariablesExclusive
Implements OptimizableObject.
Definition at line 646 of file ShortRangeCuspFunctor.h.
References ShortRangeCuspFunctor< T >::A, ShortRangeCuspFunctor< T >::B, OptimizableFunctorBase::myVars, ShortRangeCuspFunctor< T >::Opt_A, ShortRangeCuspFunctor< T >::Opt_B, ShortRangeCuspFunctor< T >::Opt_R0, ShortRangeCuspFunctor< T >::R0, ShortRangeCuspFunctor< T >::reset(), VariableSet::size(), and VariableSet::where().
Referenced by qmcplusplus::TEST_CASE().
|
inline |
set up a variational parameter using the supplied xml node
Definition at line 457 of file ShortRangeCuspFunctor.h.
References OhmmsAttributeSet::add(), ReportEngine::error(), VariableSet::insert(), qmcplusplus::lowerCase(), OptimizableFunctorBase::myVars, optimize::OTHER_P, OhmmsAttributeSet::put(), and putContent().
Referenced by ShortRangeCuspFunctor< T >::put().
|
inlineoverride |
sets the cusp condition and disables optimization of the cusp-determining parameter
Definition at line 103 of file ShortRangeCuspFunctor.h.
References ShortRangeCuspFunctor< T >::A, ShortRangeCuspFunctor< T >::Opt_A, and ShortRangeCuspFunctor< T >::reset().
Referenced by ShortRangeCuspFunctor< T >::put().
variable that controls the cusp
Definition at line 70 of file ShortRangeCuspFunctor.h.
Referenced by ShortRangeCuspFunctor< T >::evaluate(), ShortRangeCuspFunctor< T >::evaluateDerivatives(), ShortRangeCuspFunctor< T >::put(), ShortRangeCuspFunctor< T >::resetParametersExclusive(), ShortRangeCuspFunctor< T >::setCusp(), and qmcplusplus::TEST_CASE().
std::vector<real_type> B |
variables that add detail through an expansion in sigmoidal functions
Definition at line 74 of file ShortRangeCuspFunctor.h.
Referenced by ShortRangeCuspFunctor< T >::evaluate(), ShortRangeCuspFunctor< T >::evaluateDerivatives(), ShortRangeCuspFunctor< T >::put(), ShortRangeCuspFunctor< T >::resetParametersExclusive(), and qmcplusplus::TEST_CASE().
std::string ID_A |
id of A
Definition at line 76 of file ShortRangeCuspFunctor.h.
Referenced by ShortRangeCuspFunctor< T >::put(), and qmcplusplus::TEST_CASE().
std::string ID_B |
id of B
Definition at line 80 of file ShortRangeCuspFunctor.h.
Referenced by ShortRangeCuspFunctor< T >::put(), and qmcplusplus::TEST_CASE().
std::string ID_R0 |
id of R0
Definition at line 78 of file ShortRangeCuspFunctor.h.
Referenced by ShortRangeCuspFunctor< T >::put(), and qmcplusplus::TEST_CASE().
bool Opt_A |
true, if A is optimizable
Definition at line 64 of file ShortRangeCuspFunctor.h.
Referenced by ShortRangeCuspFunctor< T >::evaluateDerivatives(), ShortRangeCuspFunctor< T >::put(), ShortRangeCuspFunctor< T >::resetParametersExclusive(), ShortRangeCuspFunctor< T >::setCusp(), and qmcplusplus::TEST_CASE().
bool Opt_B |
true, if B variables are optimizable
Definition at line 68 of file ShortRangeCuspFunctor.h.
Referenced by ShortRangeCuspFunctor< T >::evaluateDerivatives(), ShortRangeCuspFunctor< T >::put(), ShortRangeCuspFunctor< T >::resetParametersExclusive(), and qmcplusplus::TEST_CASE().
bool Opt_R0 |
true, if R0 is optimizable
Definition at line 66 of file ShortRangeCuspFunctor.h.
Referenced by ShortRangeCuspFunctor< T >::evaluateDerivatives(), ShortRangeCuspFunctor< T >::put(), ShortRangeCuspFunctor< T >::resetParametersExclusive(), and qmcplusplus::TEST_CASE().
real_type R0 |
the soft cutoff distance that controls how short ranged the functor is
Definition at line 72 of file ShortRangeCuspFunctor.h.
Referenced by ShortRangeCuspFunctor< T >::evaluate(), ShortRangeCuspFunctor< T >::evaluateDerivatives(), ShortRangeCuspFunctor< T >::put(), ShortRangeCuspFunctor< T >::resetParametersExclusive(), and qmcplusplus::TEST_CASE().