![]() |
QMCPACK
|
CartesianTensor according to Gamess order. More...
Public Member Functions | |
SoaCartesianTensor (const int l_max, bool addsign=false) | |
constructor More... | |
auto & | getcXYZ () const |
cXYZ accessor More... | |
void | evaluateV (T x, T y, T z, T *XYZ) const |
compute Ylm More... | |
void | evaluateV (T x, T y, T z, T *XYZ) |
compute Ylm More... | |
void | evaluateV (T x, T y, T z) |
compute Ylm More... | |
void | batched_evaluateV (const OffloadArray3D &xyz, OffloadArray3D &XYZ) const |
evaluate for multiple electrons and multiple pbc images More... | |
void | batched_evaluateVGL (const OffloadArray3D &xyz, OffloadArray4D &XYZ_vgl) const |
evaluate VGL for multiple electrons and multiple pbc images More... | |
void | evaluateVGL (T x, T y, T z) |
makes a table of ![]() | |
void | evaluateVGH (T x, T y, T z) |
void | evaluateVGHGH (T x, T y, T z) |
int | index (int l, int m) const |
returns dummy: this is not used More... | |
const T * | operator[] (size_t component) const |
return the starting address of the component More... | |
size_t | size () const |
int | lmax () const |
void | getABC (int n, int &a, int &b, int &c) |
int | DFactorial (int num) |
Static Public Member Functions | |
static void | evaluate_bare (T x, T y, T z, T *XYZ, int lmax) |
compute Ylm More... | |
static void | evaluateVGL_impl (T x, T y, T z, T *restrict XYZ, T *restrict gr0, T *restrict gr1, T *restrict gr2, T *restrict lap, int lmax, const T *normfactor, int n_normfac) |
Private Types | |
using | value_type = T |
using | ggg_type = TinyVector< Tensor< T, 3 >, 3 > |
using | OffloadVector = Vector< T, OffloadPinnedAllocator< T > > |
using | OffloadArray2D = Array< T, 2, OffloadPinnedAllocator< T > > |
using | OffloadArray3D = Array< T, 3, OffloadPinnedAllocator< T > > |
using | OffloadArray4D = Array< T, 4, OffloadPinnedAllocator< T > > |
Private Attributes | |
int | Lmax |
maximum angular momentum More... | |
const std::shared_ptr< OffloadVector > | norm_factor_ptr_ |
Normalization factors. More... | |
OffloadVector & | norm_factor_ |
norm_factor reference More... | |
VectorSoaContainer< T, 20 > | cXYZ |
composite V,Gx,Gy,Gz,[L | H00, H01, H02, H11, H12, H12] More... | |
CartesianTensor according to Gamess order.
T,value_type,e.g. | double |
Original implementation Numerics/CartesianTensor.h Modified to use SoA for cXYZ and used by SoaAtomicBasisSet Array ordered as [S,X,Y,Z,XX,YY,ZZ,XY,XZ,YZ,...] (following Gamess order)
Definition at line 40 of file SoaCartesianTensor.h.
|
private |
Definition at line 44 of file SoaCartesianTensor.h.
|
private |
Definition at line 46 of file SoaCartesianTensor.h.
|
private |
Definition at line 47 of file SoaCartesianTensor.h.
|
private |
Definition at line 48 of file SoaCartesianTensor.h.
|
private |
Definition at line 45 of file SoaCartesianTensor.h.
|
private |
Definition at line 43 of file SoaCartesianTensor.h.
|
explicit |
constructor
l_max | maximum angular momentum |
Evaluate all the constants and prefactors.
Definition at line 214 of file SoaCartesianTensor.h.
References qmcplusplus::atan(), SoaCartesianTensor< T >::cXYZ, SoaCartesianTensor< T >::DFactorial(), SoaCartesianTensor< T >::getABC(), SoaCartesianTensor< T >::Lmax, qmcplusplus::n, SoaCartesianTensor< T >::norm_factor_, pi, qmcplusplus::pow(), VectorSoaContainer< T, D, Alloc >::resize(), Vector< T, Alloc >::resize(), qmcplusplus::sqrt(), and Vector< T, Alloc >::updateTo().
|
inline |
evaluate for multiple electrons and multiple pbc images
[in] | xyz | electron positions [Nelec, Npbc, 3(x,y,z)] |
[out] | XYZ | Cartesian tensor elements [Nelec, Npbc, Nlm] |
Definition at line 110 of file SoaCartesianTensor.h.
References Array< T, D, ALLOC >::data(), Vector< T, Alloc >::data(), SoaCartesianTensor< T >::evaluate_bare(), SoaCartesianTensor< T >::Lmax, SoaCartesianTensor< T >::norm_factor_, and Array< T, D, ALLOC >::size().
|
inline |
evaluate VGL for multiple electrons and multiple pbc images
when offload is enabled, xyz is assumed to be up to date on the device before entering the function XYZ_vgl will be up to date on the device (but not host) when this function exits
[in] | xyz | electron positions [Nelec, Npbc, 3(x,y,z)] |
[out] | XYZ_vgl | Cartesian tensor elements [5(v, gx, gy, gz, lapl), Nelec, Npbc, Nlm] |
Definition at line 146 of file SoaCartesianTensor.h.
References BLAS::czero, Array< T, D, ALLOC >::data(), Vector< T, Alloc >::data(), SoaCartesianTensor< T >::evaluateVGL_impl(), SoaCartesianTensor< T >::Lmax, SoaCartesianTensor< T >::norm_factor_, Array< T, D, ALLOC >::size(), and Vector< T, Alloc >::size().
|
inline |
Definition at line 210 of file SoaCartesianTensor.h.
References SoaCartesianTensor< T >::DFactorial().
Referenced by SoaCartesianTensor< T >::DFactorial(), and SoaCartesianTensor< T >::SoaCartesianTensor().
|
static |
compute Ylm
Definition at line 264 of file SoaCartesianTensor.h.
Referenced by SoaCartesianTensor< T >::batched_evaluateV(), and SoaCartesianTensor< T >::evaluateV().
|
inline |
compute Ylm
Definition at line 86 of file SoaCartesianTensor.h.
References SoaCartesianTensor< T >::cXYZ, SoaCartesianTensor< T >::evaluate_bare(), SoaCartesianTensor< T >::Lmax, SoaCartesianTensor< T >::norm_factor_, and VectorSoaContainer< T, D, Alloc >::size().
Referenced by qmcplusplus::TEST_CASE().
|
inline |
compute Ylm
Definition at line 94 of file SoaCartesianTensor.h.
References SoaCartesianTensor< T >::cXYZ, SoaCartesianTensor< T >::evaluate_bare(), SoaCartesianTensor< T >::Lmax, SoaCartesianTensor< T >::norm_factor_, and VectorSoaContainer< T, D, Alloc >::size().
|
inline |
compute Ylm
Definition at line 102 of file SoaCartesianTensor.h.
References SoaCartesianTensor< T >::cXYZ, VectorSoaContainer< T, D, Alloc >::data(), and SoaCartesianTensor< T >::evaluateV().
Referenced by SoaCartesianTensor< T >::evaluateV().
void evaluateVGH | ( | T | x, |
T | y, | ||
T | z | ||
) |
Definition at line 739 of file SoaCartesianTensor.h.
References BLAS::czero.
Referenced by qmcplusplus::TEST_CASE().
void evaluateVGHGH | ( | T | x, |
T | y, | ||
T | z | ||
) |
Definition at line 1252 of file SoaCartesianTensor.h.
References BLAS::czero.
void evaluateVGL | ( | T | x, |
T | y, | ||
T | z | ||
) |
makes a table of and their gradients up to Lmax.
Definition at line 254 of file SoaCartesianTensor.h.
References BLAS::czero.
Referenced by qmcplusplus::TEST_CASE().
|
static |
Definition at line 370 of file SoaCartesianTensor.h.
Referenced by SoaCartesianTensor< T >::batched_evaluateVGL().
|
inline |
Definition at line 1984 of file SoaCartesianTensor.h.
References qmcplusplus::n.
Referenced by SoaCartesianTensor< T >::SoaCartesianTensor().
|
inline |
cXYZ accessor
Definition at line 69 of file SoaCartesianTensor.h.
References SoaCartesianTensor< T >::cXYZ.
Referenced by qmcplusplus::TEST_CASE().
|
inline |
returns dummy: this is not used
Definition at line 195 of file SoaCartesianTensor.h.
References qmcplusplus::Units::distance::m.
|
inline |
Definition at line 206 of file SoaCartesianTensor.h.
References SoaCartesianTensor< T >::Lmax.
|
inline |
return the starting address of the component
component=0(V), 1(dx), 2(dy), 3(dz), 4(Lap) See comment at VectorSoAContainer<T,20> cXYZ declaration.
Definition at line 202 of file SoaCartesianTensor.h.
References SoaCartesianTensor< T >::cXYZ, and VectorSoaContainer< T, D, Alloc >::data().
|
inline |
Definition at line 204 of file SoaCartesianTensor.h.
References SoaCartesianTensor< T >::cXYZ, and VectorSoaContainer< T, D, Alloc >::size().
|
private |
composite V,Gx,Gy,Gz,[L | H00, H01, H02, H11, H12, H12]
Definition at line 58 of file SoaCartesianTensor.h.
Referenced by SoaCartesianTensor< T >::evaluateV(), SoaCartesianTensor< T >::getcXYZ(), SoaCartesianTensor< T >::operator[](), SoaCartesianTensor< T >::size(), and SoaCartesianTensor< T >::SoaCartesianTensor().
|
private |
maximum angular momentum
Definition at line 51 of file SoaCartesianTensor.h.
Referenced by SoaCartesianTensor< T >::batched_evaluateV(), SoaCartesianTensor< T >::batched_evaluateVGL(), SoaCartesianTensor< T >::evaluateV(), SoaCartesianTensor< T >::lmax(), and SoaCartesianTensor< T >::SoaCartesianTensor().
|
private |
norm_factor reference
Definition at line 55 of file SoaCartesianTensor.h.
Referenced by SoaCartesianTensor< T >::batched_evaluateV(), SoaCartesianTensor< T >::batched_evaluateVGL(), SoaCartesianTensor< T >::evaluateV(), and SoaCartesianTensor< T >::SoaCartesianTensor().
|
private |
Normalization factors.
Definition at line 53 of file SoaCartesianTensor.h.