diff --git a/src/QMCHamiltonians/NonLocalECPotential.cpp b/src/QMCHamiltonians/NonLocalECPotential.cpp index 6e449ad87..2ee68ac3d 100644 --- a/src/QMCHamiltonians/NonLocalECPotential.cpp +++ b/src/QMCHamiltonians/NonLocalECPotential.cpp @@ -153,20 +153,16 @@ NonLocalECPotential::evaluate(ParticleSet& P, bool Tmove) } else { - const DistanceTableData* myTable = P.DistTables[myTableIndex]; + const auto &myTable = P.DistTables[myTableIndex]; if(myTable->DTType == DT_SOA) { - for(int iat=0; iatJ2[iat]; - const RealType* restrict dist=myTable->r_m2[iat]; - const PosType* restrict displ=myTable->dr_m2[iat]; - for(size_t nj=0; njM[iat]; ++nj) - { - if(dist[nj]Rmax) - Value += PP[iat]->evaluateOne(P,iat,Psi,J[nj],dist[nj],displ[nj],Tmove,Txy); - } + const auto &dist = myTable->Distances[jel]; + const auto &displ = myTable->Displacements[jel]; + for(int iat=0; iatRmax && PP[iat]!=nullptr) + Value += PP[iat]->evaluateOne(P,iat,Psi,jel,dist[iat],displ[iat],Tmove,Txy); } } else @@ -215,18 +211,11 @@ NonLocalECPotential::computeOneElectronTxy(ParticleSet& P, const int ref_elec) const DistanceTableData* myTable = P.DistTables[myTableIndex]; if(myTable->DTType == DT_SOA) { + const auto &dist = myTable->Distances[ref_elec]; + const auto &displ = myTable->Displacements[ref_elec]; for(int iat=0; iatJ2[iat]; - const RealType* restrict dist=myTable->r_m2[iat]; - const PosType* restrict displ=myTable->dr_m2[iat]; - for(size_t nj=0; njM[iat]; ++nj) - { - if(dist[nj]Rmax && J[nj]==ref_elec) - PP[iat]->evaluateOne(P,iat,Psi,J[nj],dist[nj],displ[nj],true,Txy); - } - } + if(dist[iat]Rmax && PP[iat]!=nullptr) + PP[iat]->evaluateOne(P,iat,Psi,ref_elec,dist[iat],displ[iat],true,Txy); } else {