![]() |
QMCPACK
|
Public Types | |
using | value_type = real_type |
![]() | |
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... | |
Public Member Functions | |
PolynomialFunctor3D (const std::string &my_name, real_type ee_cusp=0.0, real_type eI_cusp=0.0) | |
constructor More... | |
OptimizableFunctorBase * | makeClone () const override |
create a clone of this object More... | |
void | resize (int neI, int nee) |
void | reset () override |
reset function More... | |
void | reset_gamma () |
real_type | evaluate (real_type r_12, real_type r_1I, real_type r_2I) const |
real_type | evaluateV (int Nptcl, const real_type *restrict r_12_array, const real_type *restrict r_1I_array, const real_type *restrict r_2I_array) const |
real_type | evaluate (real_type r_12, real_type r_1I, real_type r_2I, TinyVector< real_type, 3 > &grad, Tensor< real_type, 3 > &hess) const |
void | evaluateVGL (int Nptcl, const real_type *restrict r_12_array, const real_type *restrict r_1I_array, const real_type *restrict r_2I_array, real_type *restrict val_array, real_type *restrict grad0_array, real_type *restrict grad1_array, real_type *restrict grad2_array, real_type *restrict hess00_array, real_type *restrict hess11_array, real_type *restrict hess22_array, real_type *restrict hess01_array, real_type *restrict hess02_array) const |
real_type | evaluate (const real_type r_12, const real_type r_1I, const real_type r_2I, TinyVector< real_type, 3 > &grad, Tensor< real_type, 3 > &hess, TinyVector< Tensor< real_type, 3 >, 3 > &d3) |
real_type | evaluate (const real_type r, const real_type rinv) |
bool | evaluateDerivativesFD (const real_type r_12, const real_type r_1I, const real_type r_2I, std::vector< double > &d_vals, std::vector< TinyVector< real_type, 3 >> &d_grads, std::vector< Tensor< real_type, 3 >> &d_hess) |
bool | evaluateDerivatives (const real_type r_12, const real_type r_1I, const real_type r_2I, std::vector< real_type > &d_vals) |
calculate derivatives with respect to polynomial parameters More... | |
bool | evaluateDerivatives (const real_type r_12, const real_type r_1I, const real_type r_2I, std::vector< real_type > &d_vals, std::vector< TinyVector< real_type, 3 >> &d_grads, std::vector< Tensor< real_type, 3 >> &d_hess) |
real_type | f (real_type r) override |
real_type | df (real_type r) override |
bool | put (xmlNodePtr cur) override |
process xmlnode and registers variables to optimize More... | |
void | resetParametersExclusive (const opt_variables_type &active) override |
reset the parameters during optimizations. 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 | print (std::ostream &os) |
int | getNumParameters () |
![]() | |
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... | |
Public Attributes | |
int | N_eI |
int | N_ee |
Array< real_type, 3 > | gamma |
std::vector< int > | GammaPerm |
Array< int, 3 > | index |
std::vector< bool > | IndepVar |
std::vector< real_type > | GammaVec |
std::vector< real_type > | dval_Vec |
std::vector< TinyVector< real_type, 3 > > | dgrad_Vec |
std::vector< Tensor< real_type, 3 > > | dhess_Vec |
int | NumConstraints |
int | NumGamma |
Matrix< real_type > | ConstraintMatrix |
std::vector< real_type > | Parameters |
std::vector< real_type > | d_valsFD |
std::vector< TinyVector< real_type, 3 > > | d_gradsFD |
std::vector< Tensor< real_type, 3 > > | d_hessFD |
std::vector< std::string > | ParameterNames |
std::string | iSpecies |
std::string | eSpecies1 |
std::string | eSpecies2 |
int | ResetCount |
const int | C |
real_type | scale |
bool | notOpt |
![]() | |
real_type | cutoff_radius = 0.0 |
maximum cutoff More... | |
opt_variables_type | myVars |
set of variables to be optimized More... | |
Definition at line 30 of file PolynomialFunctor3D.h.
using value_type = real_type |
Definition at line 32 of file PolynomialFunctor3D.h.
|
inline |
constructor
Definition at line 58 of file PolynomialFunctor3D.h.
References qmcplusplus::abs(), qmcplusplus::app_error(), and OptimizableFunctorBase::cutoff_radius.
Referenced by PolynomialFunctor3D::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 1073 of file PolynomialFunctor3D.h.
References VariableSet::insertFrom(), OptimizableFunctorBase::myVars, PolynomialFunctor3D::notOpt, and VariableSet::setIndexDefault().
|
inlineoverridevirtual |
check out variational optimizable variables
active | a super set of optimizable variables |
Implements OptimizableFunctorBase.
Definition at line 1082 of file PolynomialFunctor3D.h.
References VariableSet::getIndex(), OptimizableFunctorBase::myVars, and PolynomialFunctor3D::notOpt.
Definition at line 969 of file PolynomialFunctor3D.h.
Definition at line 320 of file PolynomialFunctor3D.h.
References PolynomialFunctor3D::C, BLAS::cone, OptimizableFunctorBase::cutoff_radius, BLAS::czero, PolynomialFunctor3D::gamma, qmcplusplus::Units::distance::m, qmcplusplus::n, PolynomialFunctor3D::N_ee, and PolynomialFunctor3D::N_eI.
Referenced by PolynomialFunctor3D::evaluateDerivativesFD(), and qmcplusplus::TEST_CASE().
|
inline |
Definition at line 396 of file PolynomialFunctor3D.h.
References PolynomialFunctor3D::C, BLAS::cone, OptimizableFunctorBase::cutoff_radius, BLAS::czero, PolynomialFunctor3D::gamma, qmcplusplus::Units::distance::m, qmcplusplus::n, PolynomialFunctor3D::N_ee, and PolynomialFunctor3D::N_eI.
|
inline |
Definition at line 589 of file PolynomialFunctor3D.h.
References PolynomialFunctor3D::C, OptimizableFunctorBase::cutoff_radius, PolynomialFunctor3D::gamma, qmcplusplus::Units::distance::m, qmcplusplus::n, PolynomialFunctor3D::N_ee, and PolynomialFunctor3D::N_eI.
Definition at line 700 of file PolynomialFunctor3D.h.
|
inline |
calculate derivatives with respect to polynomial parameters
Definition at line 737 of file PolynomialFunctor3D.h.
References qmcplusplus::abs(), PolynomialFunctor3D::C, BLAS::cone, PolynomialFunctor3D::ConstraintMatrix, OptimizableFunctorBase::cutoff_radius, BLAS::czero, PolynomialFunctor3D::dval_Vec, qmcplusplus::Units::charge::e, PolynomialFunctor3D::IndepVar, qmcplusplus::Units::distance::m, qmcplusplus::n, PolynomialFunctor3D::N_ee, PolynomialFunctor3D::N_eI, PolynomialFunctor3D::NumGamma, and PolynomialFunctor3D::scale.
|
inline |
Definition at line 817 of file PolynomialFunctor3D.h.
References qmcplusplus::abs(), PolynomialFunctor3D::C, BLAS::cone, PolynomialFunctor3D::ConstraintMatrix, OptimizableFunctorBase::cutoff_radius, BLAS::czero, PolynomialFunctor3D::d_gradsFD, PolynomialFunctor3D::d_hessFD, PolynomialFunctor3D::d_valsFD, PolynomialFunctor3D::dgrad_Vec, PolynomialFunctor3D::dhess_Vec, PolynomialFunctor3D::dval_Vec, qmcplusplus::Units::charge::e, PolynomialFunctor3D::evaluateDerivativesFD(), PolynomialFunctor3D::IndepVar, qmcplusplus::Units::distance::m, qmcplusplus::n, PolynomialFunctor3D::N_ee, PolynomialFunctor3D::N_eI, PolynomialFunctor3D::NumGamma, PolynomialFunctor3D::Parameters, and PolynomialFunctor3D::scale.
|
inline |
Definition at line 703 of file PolynomialFunctor3D.h.
References PolynomialFunctor3D::evaluate(), PolynomialFunctor3D::Parameters, and PolynomialFunctor3D::reset_gamma().
Referenced by PolynomialFunctor3D::evaluateDerivatives().
|
inline |
Definition at line 352 of file PolynomialFunctor3D.h.
References PolynomialFunctor3D::C, BLAS::cone, OptimizableFunctorBase::cutoff_radius, BLAS::czero, PolynomialFunctor3D::gamma, qmcplusplus::Units::distance::m, qmcplusplus::n, PolynomialFunctor3D::N_ee, and PolynomialFunctor3D::N_eI.
|
inline |
Definition at line 481 of file PolynomialFunctor3D.h.
References PolynomialFunctor3D::C, BLAS::cone, OptimizableFunctorBase::cutoff_radius, BLAS::czero, PolynomialFunctor3D::gamma, qmcplusplus::Units::distance::m, qmcplusplus::n, PolynomialFunctor3D::N_ee, and PolynomialFunctor3D::N_eI.
Definition at line 968 of file PolynomialFunctor3D.h.
|
inline |
Definition at line 1105 of file PolynomialFunctor3D.h.
References PolynomialFunctor3D::Parameters.
|
inlineoverridevirtual |
create a clone of this object
Implements OptimizableFunctorBase.
Definition at line 69 of file PolynomialFunctor3D.h.
References PolynomialFunctor3D::PolynomialFunctor3D().
|
inline |
Definition at line 1089 of file PolynomialFunctor3D.h.
|
inlineoverridevirtual |
process xmlnode and registers variables to optimize
cur | xmlNode for a functor |
Implements OptimizableFunctorBase.
Definition at line 971 of file PolynomialFunctor3D.h.
References OhmmsAttributeSet::add(), qmcplusplus::app_log(), qmcplusplus::app_summary(), OptimizableFunctorBase::cutoff_radius, ReportEngine::error(), PolynomialFunctor3D::eSpecies1, PolynomialFunctor3D::eSpecies2, VariableSet::insert(), PolynomialFunctor3D::iSpecies, optimize::LOGLINEAR_P, OptimizableFunctorBase::myVars, PolynomialFunctor3D::N_ee, PolynomialFunctor3D::N_eI, PolynomialFunctor3D::notOpt, PolynomialFunctor3D::Parameters, VariableSet::print(), OhmmsAttributeSet::put(), putContent(), PolynomialFunctor3D::reset_gamma(), and PolynomialFunctor3D::resize().
|
inlineoverridevirtual |
reset function
Implements OptimizableFunctorBase.
Definition at line 219 of file PolynomialFunctor3D.h.
References PolynomialFunctor3D::N_ee, PolynomialFunctor3D::N_eI, PolynomialFunctor3D::reset_gamma(), and PolynomialFunctor3D::resize().
|
inline |
Definition at line 225 of file PolynomialFunctor3D.h.
References qmcplusplus::abs(), qmcplusplus::app_error(), PolynomialFunctor3D::C, PolynomialFunctor3D::ConstraintMatrix, OptimizableFunctorBase::cutoff_radius, qmcplusplus::Units::charge::e, PolynomialFunctor3D::gamma, PolynomialFunctor3D::GammaVec, PolynomialFunctor3D::IndepVar, PolynomialFunctor3D::index, qmcplusplus::Units::distance::m, qmcplusplus::n, PolynomialFunctor3D::N_ee, PolynomialFunctor3D::N_eI, PolynomialFunctor3D::NumGamma, PolynomialFunctor3D::Parameters, and PolynomialFunctor3D::scale.
Referenced by PolynomialFunctor3D::evaluateDerivativesFD(), PolynomialFunctor3D::put(), PolynomialFunctor3D::reset(), and PolynomialFunctor3D::resetParametersExclusive().
|
inlineoverridevirtual |
reset the parameters during optimizations.
Exclusive, see checkInVariablesExclusive
Implements OptimizableObject.
Definition at line 1053 of file PolynomialFunctor3D.h.
References OptimizableFunctorBase::myVars, PolynomialFunctor3D::notOpt, PolynomialFunctor3D::Parameters, PolynomialFunctor3D::reset_gamma(), PolynomialFunctor3D::ResetCount, and VariableSet::where().
|
inline |
Definition at line 71 of file PolynomialFunctor3D.h.
References qmcplusplus::abs(), PolynomialFunctor3D::C, PolynomialFunctor3D::ConstraintMatrix, OptimizableFunctorBase::cutoff_radius, PolynomialFunctor3D::d_gradsFD, PolynomialFunctor3D::d_hessFD, PolynomialFunctor3D::d_valsFD, PolynomialFunctor3D::dgrad_Vec, PolynomialFunctor3D::dhess_Vec, PolynomialFunctor3D::dval_Vec, qmcplusplus::Units::charge::e, PolynomialFunctor3D::gamma, PolynomialFunctor3D::GammaPerm, PolynomialFunctor3D::GammaVec, PolynomialFunctor3D::IndepVar, PolynomialFunctor3D::index, qmcplusplus::Units::distance::m, qmcplusplus::n, PolynomialFunctor3D::N_ee, PolynomialFunctor3D::N_eI, PolynomialFunctor3D::NumConstraints, PolynomialFunctor3D::NumGamma, PolynomialFunctor3D::Parameters, Array< T, D, ALLOC >::resize(), Matrix< T, Alloc >::resize(), and Matrix< T, Alloc >::swap_rows().
Referenced by PolynomialFunctor3D::put(), and PolynomialFunctor3D::reset().
const int C |
Definition at line 53 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluate(), PolynomialFunctor3D::evaluateDerivatives(), PolynomialFunctor3D::evaluateV(), PolynomialFunctor3D::evaluateVGL(), PolynomialFunctor3D::reset_gamma(), and PolynomialFunctor3D::resize().
Definition at line 45 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluateDerivatives(), PolynomialFunctor3D::reset_gamma(), and PolynomialFunctor3D::resize().
std::vector<TinyVector<real_type, 3> > d_gradsFD |
Definition at line 47 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluateDerivatives(), and PolynomialFunctor3D::resize().
Definition at line 48 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluateDerivatives(), and PolynomialFunctor3D::resize().
std::vector<real_type> d_valsFD |
Definition at line 46 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluateDerivatives(), and PolynomialFunctor3D::resize().
std::vector<TinyVector<real_type, 3> > dgrad_Vec |
Definition at line 42 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluateDerivatives(), and PolynomialFunctor3D::resize().
Definition at line 43 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluateDerivatives(), and PolynomialFunctor3D::resize().
std::vector<real_type> dval_Vec |
Definition at line 41 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluateDerivatives(), and PolynomialFunctor3D::resize().
std::string eSpecies1 |
Definition at line 50 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::put().
std::string eSpecies2 |
Definition at line 50 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::put().
Definition at line 34 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluate(), PolynomialFunctor3D::evaluateV(), PolynomialFunctor3D::evaluateVGL(), PolynomialFunctor3D::reset_gamma(), and PolynomialFunctor3D::resize().
std::vector<int> GammaPerm |
Definition at line 37 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::resize().
std::vector<real_type> GammaVec |
Definition at line 41 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::reset_gamma(), and PolynomialFunctor3D::resize().
std::vector<bool> IndepVar |
Definition at line 40 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluateDerivatives(), PolynomialFunctor3D::reset_gamma(), and PolynomialFunctor3D::resize().
Array<int, 3> index |
Definition at line 39 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::reset_gamma(), and PolynomialFunctor3D::resize().
std::string iSpecies |
Definition at line 50 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::put().
int N_ee |
Definition at line 33 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluate(), PolynomialFunctor3D::evaluateDerivatives(), PolynomialFunctor3D::evaluateV(), PolynomialFunctor3D::evaluateVGL(), PolynomialFunctor3D::put(), PolynomialFunctor3D::reset(), PolynomialFunctor3D::reset_gamma(), and PolynomialFunctor3D::resize().
int N_eI |
Definition at line 33 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluate(), PolynomialFunctor3D::evaluateDerivatives(), PolynomialFunctor3D::evaluateV(), PolynomialFunctor3D::evaluateVGL(), PolynomialFunctor3D::put(), PolynomialFunctor3D::reset(), PolynomialFunctor3D::reset_gamma(), and PolynomialFunctor3D::resize().
bool notOpt |
Definition at line 55 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::checkInVariablesExclusive(), PolynomialFunctor3D::checkOutVariables(), PolynomialFunctor3D::put(), and PolynomialFunctor3D::resetParametersExclusive().
int NumConstraints |
Definition at line 44 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::resize().
int NumGamma |
Definition at line 44 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluateDerivatives(), PolynomialFunctor3D::reset_gamma(), and PolynomialFunctor3D::resize().
std::vector<std::string> ParameterNames |
Definition at line 49 of file PolynomialFunctor3D.h.
std::vector<real_type> Parameters |
Definition at line 46 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluateDerivatives(), PolynomialFunctor3D::evaluateDerivativesFD(), PolynomialFunctor3D::getNumParameters(), PolynomialFunctor3D::put(), PolynomialFunctor3D::reset_gamma(), PolynomialFunctor3D::resetParametersExclusive(), and PolynomialFunctor3D::resize().
int ResetCount |
Definition at line 51 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::resetParametersExclusive().
real_type scale |
Definition at line 54 of file PolynomialFunctor3D.h.
Referenced by PolynomialFunctor3D::evaluateDerivatives(), and PolynomialFunctor3D::reset_gamma().