1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-11-10 07:55:35 +00:00

Got this sorted with the promote working in a test

This commit is contained in:
Peter Boyle 2015-06-09 22:39:13 +01:00
parent e19391ef7a
commit 4a10540365

View File

@ -94,7 +94,7 @@ inline void blockProject(Lattice<iVector<CComplex,nbasis > > &coarseData,
for(int i=0;i<nbasis;i++) { for(int i=0;i<nbasis;i++) {
coarseData._odata[sc](i)=coarseData._odata[sc](i) coarseData._odata[sc](i)=coarseData._odata[sc](i)
+ TensorRemove( innerProduct(Basis[i]._odata[sf],fineData._odata[sf])); + innerProduct(Basis[i]._odata[sf],fineData._odata[sf]);
} }
} }
@ -266,7 +266,7 @@ inline void blockPromote(const Lattice<iVector<CComplex,nbasis > > &coarseData,
assert( nbasis == Basis.size() ); assert( nbasis == Basis.size() );
subdivides(coarse,fine); subdivides(coarse,fine);
for(int i=0;i<nbasis;i++){ for(int i=0;i<nbasis;i++){
conformable(Basis,fineData); conformable(Basis[i]._grid,fine);
} }
std::vector<int> block_r (_ndimension); std::vector<int> block_r (_ndimension);
@ -287,9 +287,8 @@ inline void blockPromote(const Lattice<iVector<CComplex,nbasis > > &coarseData,
GridBase::IndexFromCoor(coor_c,sc,coarse->_rdimensions); GridBase::IndexFromCoor(coor_c,sc,coarse->_rdimensions);
for(int i=0;i<nbasis;i++) { for(int i=0;i<nbasis;i++) {
if(i==0) fineData._odata[sf]=coarseData._odata[sc](i) * Basis[i]._odata[sf];
if(i==0) fineData._odata[sf]= coarseData._odata[sc][i]*Basis[i]._odata[sf]; else fineData._odata[sf]=fineData._odata[sf]+coarseData._odata[sc](i)*Basis[i]._odata[sf];
else fineData._odata[sf]=fineData._odata[sf]+coarseData._odata[sc][i]*Basis[i]._odata[sf];
} }
} }