17 #ifndef QMCPLUSPLUS_SOA_CUSPCORRECTION_BASISSET_H 18 #define QMCPLUSPLUS_SOA_CUSPCORRECTION_BASISSET_H 32 class CuspCorrectionAtomicBasis
62 inline void evaluate(
const T r, T* restrict vals)
const 70 std::vector<T> phi(nr);
73 for (
size_t i = 0; i < nr; ++i)
84 T* restrict d2u)
const 92 std::vector<T> phi(nr);
93 std::vector<T> dphi(nr);
94 std::vector<T> d2phi(nr);
96 AOs.
evaluate(r, phi.data(), dphi.data(), d2phi.data());
97 for (
size_t i = 0; i < nr; ++i)
101 du_x[j] -= dphi[i] * dr[0] / r;
102 du_y[j] -= dphi[i] * dr[1] / r;
103 du_z[j] -= dphi[i] * dr[2] / r;
104 d2u[j] += d2phi[i] + 2 * dphi[i] / r;
multivalue implementation for OneDimQuintic Real valued only calling any eval method with r >= r_max ...
aligned_vector< size_t > ID
std::vector< T, aligned_allocator< T > > aligned_vector
helper functions for EinsplineSetBuilder
QTBase::RealType RealType
Handles a set of correction orbitals per atom.
void addSpline(int mo_idx, OneDimQuinticSpline< T1 > &radial_spline)
CuspCorrectionAtomicBasis()=default
void initializeRadialSet(LogGrid< T > &radial_grid, QMCT::IndexType orbital_set_size)
One-Dimensional logarithmic-grid.
OHMMS_INDEXTYPE IndexType
define other types
void evaluate(T r, T *restrict u) const
void evaluate_vgl(const T r, const PosType &dr, T *restrict u, T *restrict du_x, T *restrict du_y, T *restrict du_z, T *restrict d2u) const
void add_spline(int ispline, OneDimQuinticSpline< T1 > &in)
T rmax() const
return the last grid point
void evaluate(const T r, T *restrict vals) const
int getNumSplines() const
void initialize(GT &agrid, int norbs, int order=5)
initialize grid and container
Declaration of a base class of BasisSet.
Assume that coeffs.D1 and the LogLightGrid r_values.size() are equal Therefore r must be < r_max...