21 : myTableIndex(els.addTable(ions)), MaxOrbSize(norbs)
38 const auto& displ = (P.
getActivePtcl() == iat) ? d_table.getTempDispls() : d_table.getDisplRow(iat);
44 const auto v_in =
myVGL[0];
45 const auto gx_in =
myVGL[1];
46 const auto gy_in =
myVGL[2];
47 const auto gz_in =
myVGL[3];
48 const auto l_in =
myVGL[4];
49 auto v_out = vgl.
data(0);
50 auto gx_out = vgl.
data(1);
51 auto gy_out = vgl.
data(2);
52 auto gz_out = vgl.
data(3);
53 auto l_out = vgl.
data(4);
54 for (
size_t i = 0; i < vgl.
size(); ++i)
57 gx_out[i] += gx_in[i];
58 gy_out[i] += gy_in[i];
59 gz_out[i] += gz_in[i];
76 const auto& displ = (P.
getActivePtcl() == iat) ? d_table.getTempDispls() : d_table.getDisplRow(iat);
81 const auto v_in =
myVGL[0];
82 const auto gx_in =
myVGL[1];
83 const auto gy_in =
myVGL[2];
84 const auto gz_in =
myVGL[3];
85 const auto l_in =
myVGL[4];
86 for (
size_t i = 0; i < psi.size(); ++i)
89 dpsi[i][0] += gx_in[i];
90 dpsi[i][1] += gy_in[i];
91 dpsi[i][2] += gz_in[i];
108 const auto& displ = (P.
getActivePtcl() == iat) ? d_table.getTempDispls() : d_table.getDisplRow(iat);
113 const auto v_in =
myVGL[0];
114 const auto gx_in =
myVGL[1];
115 const auto gy_in =
myVGL[2];
116 const auto gz_in =
myVGL[3];
117 const auto l_in =
myVGL[4];
118 for (
size_t i = 0; i < psi.cols(); ++i)
120 psi[idx][i] += v_in[i];
121 dpsi[idx][i][0] += gx_in[i];
122 dpsi[idx][i][1] += gy_in[i];
123 dpsi[idx][i][2] += gz_in[i];
124 d2psi[idx][i] += l_in[i];
144 const auto v_in =
myVGL[0];
145 for (
size_t i = 0; i < psi.size(); ++i)
152 assert(
MaxOrbSize == aos->getNumOrbs() &&
"All the centers should support the same number of orbitals!");
Index_t getActivePtcl() const
return active particle id
Convert CorrectingOrbitalBasisSet using MultiQuinticSpline1D<T>
size_t NumCenters
number of centers, e.g., ions
helper functions for EinsplineSetBuilder
size_t getTotalNum() const
void fill_n(T *x, size_t count, const T &value)
void evaluate_vgl(const ParticleSet &P, int iat, ValueVector &psi, GradVector &dpsi, ValueVector &d2psi)
SoA adaptor class for Vector<TinyVector<T,D> >
void resize(size_type n, size_type m)
Resize the container.
const DistanceTableAB & getDistTableAB(int table_ID) const
get a distance table by table_ID and dyanmic_cast to DistanceTableAB
SPOSet::ValueMatrix ValueMatrix
Specialized paritlce class for atomistic simulations.
const DistRow & getTempDists() const
return the temporary distances when a move is proposed
const size_t MaxOrbSize
Maximal number of supported MOs this is not the AO basis because cusp correction is applied on the MO...
SPOSet::GradVector GradVector
QMCTraits::ValueType ValueType
A localized basis set derived from BasisSetBase<typename COT::ValueType>
void evaluateV(const ParticleSet &P, int iat, ValueVector &psi)
compute values for the iat-paricle move
void evaluateVGL(const ParticleSet &P, int iat, VGLVector &vgl)
compute VGL
T * data()
return the base
const int myTableIndex
number of quantum particles
SPOSet::GradMatrix GradMatrix
size_t NumTargets
number of quantum particles
void add(int icenter, std::unique_ptr< COT > aos)
add a new set of Centered Atomic Orbitals
SPOSet::ValueVector ValueVector
size_type size() const
return the physical size
SoaCuspCorrection(ParticleSet &ions, ParticleSet &els, size_t norbs)
constructor
std::vector< std::shared_ptr< const COT > > LOBasisSet
container of the unique pointers to the Atomic Orbitals