mirror of https://github.com/QMCPACK/qmcpack.git
Interchange the ion and eletron loops in NLPP.
This commit is contained in:
parent
98ca2cc7b5
commit
08b0988d39
|
@ -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; iat<NumIons; iat++)
|
||||
for(int jel=0; jel<P.getTotalNum(); jel++)
|
||||
{
|
||||
if(PP[iat]==nullptr) continue;
|
||||
const int* restrict J=myTable->J2[iat];
|
||||
const RealType* restrict dist=myTable->r_m2[iat];
|
||||
const PosType* restrict displ=myTable->dr_m2[iat];
|
||||
for(size_t nj=0; nj<myTable->M[iat]; ++nj)
|
||||
{
|
||||
if(dist[nj]<PP[iat]->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; iat<NumIons; iat++)
|
||||
if(dist[iat]<PP[iat]->Rmax && 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; iat<NumIons; iat++)
|
||||
{
|
||||
if(PP[iat]==nullptr) continue;
|
||||
const int* restrict J=myTable->J2[iat];
|
||||
const RealType* restrict dist=myTable->r_m2[iat];
|
||||
const PosType* restrict displ=myTable->dr_m2[iat];
|
||||
for(size_t nj=0; nj<myTable->M[iat]; ++nj)
|
||||
{
|
||||
if(dist[nj]<PP[iat]->Rmax && J[nj]==ref_elec)
|
||||
PP[iat]->evaluateOne(P,iat,Psi,J[nj],dist[nj],displ[nj],true,Txy);
|
||||
}
|
||||
}
|
||||
if(dist[iat]<PP[iat]->Rmax && PP[iat]!=nullptr)
|
||||
PP[iat]->evaluateOne(P,iat,Psi,ref_elec,dist[iat],displ[iat],true,Txy);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue