mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-09 21:50:45 +01:00
Multiple local slice fixes
This commit is contained in:
parent
a865caf0d2
commit
c16916cc45
@ -261,7 +261,7 @@ void TDistilVectors<FImpl>::execute(void)
|
|||||||
if( t_inv >= Ntfirst && t_inv < Ntfirst + Ntlocal ) {
|
if( t_inv >= Ntfirst && t_inv < Ntfirst + Ntlocal ) {
|
||||||
for (int ik = dk; ik < nvec; ik += LI){
|
for (int ik = dk; ik < nvec; ik += LI){
|
||||||
for (int is = ds; is < Ns; is += SI){
|
for (int is = ds; is < Ns; is += SI){
|
||||||
ExtractSliceLocal(evec3d,epack.evec[ik],0,t_inv,3);
|
ExtractSliceLocal(evec3d,epack.evec[ik],0,t_inv-Ntfirst,Grid::QCD::Tdir);
|
||||||
//tmp3d_nospin = evec3d * noise[inoise + nnoise*(t_inv + Nt*(ik+nvec*is))];
|
//tmp3d_nospin = evec3d * noise[inoise + nnoise*(t_inv + Nt*(ik+nvec*is))];
|
||||||
tmp3d_nospin = evec3d * noise(inoise, t_inv, ik, is);
|
tmp3d_nospin = evec3d * noise(inoise, t_inv, ik, is);
|
||||||
tmp3d=zero;
|
tmp3d=zero;
|
||||||
@ -289,7 +289,7 @@ void TDistilVectors<FImpl>::execute(void)
|
|||||||
for (int t = Ntfirst; t < Ntfirst + Ntlocal; t++) {
|
for (int t = Ntfirst; t < Ntfirst + Ntlocal; t++) {
|
||||||
sink_tslice=zero;
|
sink_tslice=zero;
|
||||||
for (int ivec = 0; ivec < nvec; ivec++) {
|
for (int ivec = 0; ivec < nvec; ivec++) {
|
||||||
ExtractSliceLocal(evec3d,epack.evec[ivec],0,t,3);
|
ExtractSliceLocal(evec3d,epack.evec[ivec],0,t-Ntfirst,Grid::QCD::Tdir);
|
||||||
sink_tslice += evec3d * perambulator(t, ivec, dk, inoise,dt,ds);
|
sink_tslice += evec3d * perambulator(t, ivec, dk, inoise,dt,ds);
|
||||||
}
|
}
|
||||||
InsertSliceLocal(sink_tslice,phi[vecindex],0,t-Ntfirst,Grid::QCD::Tdir);
|
InsertSliceLocal(sink_tslice,phi[vecindex],0,t-Ntfirst,Grid::QCD::Tdir);
|
||||||
|
@ -263,7 +263,7 @@ void TLapEvec<GImpl>::execute(void)
|
|||||||
RotateEigen( eig[t].evec ); // Rotate the eigenvectors into our phase convention
|
RotateEigen( eig[t].evec ); // Rotate the eigenvectors into our phase convention
|
||||||
|
|
||||||
for (int i=0;i<LPar.Nvec;i++){
|
for (int i=0;i<LPar.Nvec;i++){
|
||||||
InsertSliceLocal(eig[t].evec[i],eig4d.evec[i],0,t,3);
|
InsertSliceLocal(eig[t].evec[i],eig4d.evec[i],0,t,Grid::QCD::Tdir);
|
||||||
if(t==0 && Ntfirst==0)
|
if(t==0 && Ntfirst==0)
|
||||||
eig4d.eval[i] = eig[t].eval[i]; // TODO: Discuss: is this needed? Is there a better way?
|
eig4d.eval[i] = eig[t].eval[i]; // TODO: Discuss: is this needed? Is there a better way?
|
||||||
}
|
}
|
||||||
|
@ -171,7 +171,7 @@ void TPerambFromSolve<FImpl>::execute(void)
|
|||||||
for (int t = Ntfirst; t < Ntfirst + Ntlocal; t++) {
|
for (int t = Ntfirst; t < Ntfirst + Ntlocal; t++) {
|
||||||
ExtractSliceLocal(result_3d,result_nospin,0,t-Ntfirst,Grid::QCD::Tdir);
|
ExtractSliceLocal(result_3d,result_nospin,0,t-Ntfirst,Grid::QCD::Tdir);
|
||||||
for (int ivec = 0; ivec < nvec_reduced; ivec++) {
|
for (int ivec = 0; ivec < nvec_reduced; ivec++) {
|
||||||
ExtractSliceLocal(evec3d,epack.evec[ivec],0,t,3);
|
ExtractSliceLocal(evec3d,epack.evec[ivec],0,t-Ntfirst,Grid::QCD::Tdir);
|
||||||
pokeSpin(perambulator(t, ivec, dk, inoise,dt,ds),static_cast<Complex>(innerProduct(evec3d, result_3d)),is);
|
pokeSpin(perambulator(t, ivec, dk, inoise,dt,ds),static_cast<Complex>(innerProduct(evec3d, result_3d)),is);
|
||||||
std::cout << "perambulator(t, ivec, dk, inoise,dt,ds)(is) = (" << t << "," << ivec << "," << dk << "," << inoise << "," << dt << "," << ds << ")(" << is << ") = " << perambulator(t, ivec, dk, inoise,dt,ds)()(is)() << std::endl;
|
std::cout << "perambulator(t, ivec, dk, inoise,dt,ds)(is) = (" << t << "," << ivec << "," << dk << "," << inoise << "," << dt << "," << ds << ")(" << is << ") = " << perambulator(t, ivec, dk, inoise,dt,ds)()(is)() << std::endl;
|
||||||
}
|
}
|
||||||
|
@ -206,7 +206,7 @@ void TPerambulator<FImpl>::execute(void)
|
|||||||
if( t_inv >= Ntfirst && t_inv < Ntfirst + Ntlocal ) {
|
if( t_inv >= Ntfirst && t_inv < Ntfirst + Ntlocal ) {
|
||||||
for (int ik = dk; ik < nvec; ik += LI){
|
for (int ik = dk; ik < nvec; ik += LI){
|
||||||
for (int is = ds; is < Ns; is += SI){
|
for (int is = ds; is < Ns; is += SI){
|
||||||
ExtractSliceLocal(evec3d,epack.evec[ik],0,t_inv,3);
|
ExtractSliceLocal(evec3d,epack.evec[ik],0,t_inv-Ntfirst,Grid::QCD::Tdir);
|
||||||
//tmp3d_nospin = evec3d * noise[inoise + nnoise*(t_inv + Nt*(ik+nvec*is))];
|
//tmp3d_nospin = evec3d * noise[inoise + nnoise*(t_inv + Nt*(ik+nvec*is))];
|
||||||
tmp3d_nospin = evec3d * noise(inoise, t_inv, ik, is);
|
tmp3d_nospin = evec3d * noise(inoise, t_inv, ik, is);
|
||||||
tmp3d=zero;
|
tmp3d=zero;
|
||||||
@ -235,7 +235,7 @@ void TPerambulator<FImpl>::execute(void)
|
|||||||
for (int t = Ntfirst; t < Ntfirst + Ntlocal; t++) {
|
for (int t = Ntfirst; t < Ntfirst + Ntlocal; t++) {
|
||||||
ExtractSliceLocal(result_3d,result_nospin,0,t-Ntfirst,Grid::QCD::Tdir);
|
ExtractSliceLocal(result_3d,result_nospin,0,t-Ntfirst,Grid::QCD::Tdir);
|
||||||
for (int ivec = 0; ivec < nvec; ivec++) {
|
for (int ivec = 0; ivec < nvec; ivec++) {
|
||||||
ExtractSliceLocal(evec3d,epack.evec[ivec],0,t,3);
|
ExtractSliceLocal(evec3d,epack.evec[ivec],0,t-Ntfirst,Grid::QCD::Tdir);
|
||||||
pokeSpin(perambulator(t, ivec, dk, inoise,dt,ds),static_cast<Complex>(innerProduct(evec3d, result_3d)),is);
|
pokeSpin(perambulator(t, ivec, dk, inoise,dt,ds),static_cast<Complex>(innerProduct(evec3d, result_3d)),is);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user