![]() |
QMCPACK
|
generic functor that computes a set of 1D functors More...
Public Types | |
using | RealType = typename FN::real_type |
using | GridType = LogGridLight< RealType > |
using | single_type = FN |
using | OffloadArray2D = Array< RealType, 2, OffloadPinnedAllocator< RealType > > |
using | OffloadArray3D = Array< RealType, 3, OffloadPinnedAllocator< RealType > > |
using | OffloadArray4D = Array< RealType, 4, OffloadPinnedAllocator< RealType > > |
Public Member Functions | |
MultiFunctorAdapter ()=default | |
MultiFunctorAdapter (const MultiFunctorAdapter &other) | |
RealType | rmax () const |
void | evaluate (RealType r, RealType *restrict u) |
void | batched_evaluate (OffloadArray2D &r, OffloadArray3D &u, RealType Rmax) const |
evaluate for multiple electrons and multiple pbc images More... | |
void | batched_evaluateVGL (OffloadArray2D &r, OffloadArray4D &vgl, RealType Rmax) const |
evaluate value, first deriv, second deriv for multiple electrons and multiple pbc images More... | |
void | evaluate (RealType r, RealType *restrict u, RealType *restrict du, RealType *restrict d2u) |
void | evaluate (RealType r, RealType *restrict u, RealType *restrict du, RealType *restrict d2u, RealType *restrict d3u) |
Public Attributes | |
aligned_vector< std::unique_ptr< single_type > > | Rnl |
generic functor that computes a set of 1D functors
FN | analytic functor, SlaterCombo<T>, GaussianCombo<T> |
Analytic functors are light and no state but not efficient. Only for benchmarking.
Definition at line 32 of file MultiFunctorAdapter.h.
using GridType = LogGridLight<RealType> |
Definition at line 35 of file MultiFunctorAdapter.h.
using OffloadArray2D = Array<RealType, 2, OffloadPinnedAllocator<RealType> > |
Definition at line 37 of file MultiFunctorAdapter.h.
using OffloadArray3D = Array<RealType, 3, OffloadPinnedAllocator<RealType> > |
Definition at line 38 of file MultiFunctorAdapter.h.
using OffloadArray4D = Array<RealType, 4, OffloadPinnedAllocator<RealType> > |
Definition at line 39 of file MultiFunctorAdapter.h.
using RealType = typename FN::real_type |
Definition at line 34 of file MultiFunctorAdapter.h.
using single_type = FN |
Definition at line 36 of file MultiFunctorAdapter.h.
|
default |
|
inline |
Definition at line 43 of file MultiFunctorAdapter.h.
References MultiFunctorAdapter< FN >::Rnl.
|
inline |
evaluate for multiple electrons and multiple pbc images
r is assumed to be up-to-date on the device before entering this function, and u needs to be updated on the device before exiting this function
Eventually, all computation should be done on the device to avoid transfers, but for now this is all done on the host
[in] | r | electron distances [Nelec, Npbc] |
[out] | u | value of all radial functions at all electron distances [Nelec, Npbc, nRnl] |
Rmax | evaluate to zero for any distance greater than or equal to Rmax |
Definition at line 76 of file MultiFunctorAdapter.h.
References qmcplusplus::n, MultiFunctorAdapter< FN >::Rnl, Array< T, D, ALLOC >::size(), Array< T, D, ALLOC >::updateFrom(), and Array< T, D, ALLOC >::updateTo().
|
inline |
evaluate value, first deriv, second deriv for multiple electrons and multiple pbc images
r is assumed to be up-to-date on the device before entering this function, and vgl needs to be updated on the device before exiting this function
Eventually, all computation should be done on the device to avoid transfers, but for now this is all done on the host
[in] | r | electron distances [Nelec, Npbc] |
[out] | vgl | val/d1/d2 of all radial functions at all electron distances [3(val,d1,d2), Nelec, Npbc, nRnl] |
Rmax | radial function and derivs will evaluate to zero for any distance greater than or equal to Rmax |
Definition at line 112 of file MultiFunctorAdapter.h.
References Array< T, D, ALLOC >::data(), Array< T, D, ALLOC >::data_at(), MultiFunctorAdapter< FN >::Rnl, Array< T, D, ALLOC >::size(), Array< T, D, ALLOC >::updateFrom(), and Array< T, D, ALLOC >::updateTo().
Definition at line 57 of file MultiFunctorAdapter.h.
References qmcplusplus::n, and MultiFunctorAdapter< FN >::Rnl.
|
inline |
Definition at line 157 of file MultiFunctorAdapter.h.
References qmcplusplus::n, and MultiFunctorAdapter< FN >::Rnl.
|
inline |
Definition at line 168 of file MultiFunctorAdapter.h.
References qmcplusplus::n, and MultiFunctorAdapter< FN >::Rnl.
|
inline |
Definition at line 50 of file MultiFunctorAdapter.h.
aligned_vector<std::unique_ptr<single_type> > Rnl |
Definition at line 40 of file MultiFunctorAdapter.h.
Referenced by MultiFunctorAdapter< FN >::batched_evaluate(), MultiFunctorAdapter< FN >::batched_evaluateVGL(), MultiFunctorAdapter< FN >::evaluate(), and MultiFunctorAdapter< FN >::MultiFunctorAdapter().