mirror of
https://github.com/paboyle/Grid.git
synced 2025-06-13 04:37:05 +01:00
_grid becomes private ; use Grid()§
This commit is contained in:
@ -96,7 +96,7 @@ public:
|
||||
assert(Nbasis == _evec._Nm);
|
||||
|
||||
|
||||
Field tmp(_bgrid._grid);
|
||||
Field tmp(_bgrid.Grid());
|
||||
tmp = in;
|
||||
|
||||
#pragma omp parallel for
|
||||
@ -115,7 +115,7 @@ public:
|
||||
void deflateFine(BasisFieldVector<CoarseField>& _coef,const std::vector<RealD>& eval,int N,const Field& src_orig,Field& result) {
|
||||
result = zero;
|
||||
for (int i=0;i<N;i++) {
|
||||
Field tmp(result._grid);
|
||||
Field tmp(result.Grid());
|
||||
coarseToFine(_coef._v[i],tmp);
|
||||
axpy(result,TensorRemove(innerProduct(tmp,src_orig)) / eval[i],tmp,result);
|
||||
}
|
||||
@ -123,7 +123,7 @@ public:
|
||||
|
||||
template<typename CoarseField>
|
||||
void deflateCoarse(BasisFieldVector<CoarseField>& _coef,const std::vector<RealD>& eval,int N,const Field& src_orig,Field& result) {
|
||||
CoarseField src_coarse(_coef._v[0]._grid);
|
||||
CoarseField src_coarse(_coef._v[0].Grid());
|
||||
CoarseField result_coarse = src_coarse;
|
||||
result_coarse = zero;
|
||||
fineToCoarse(src_orig,src_coarse);
|
||||
|
@ -282,7 +282,7 @@ public:
|
||||
|
||||
void pokeBlockOfVectorCanonical(int cb,Field& v,const std::vector<float>& buf) {
|
||||
std::vector<int> _bsc = { _bs[1], _bs[2], _bs[3], _bs[4], _bs[0] };
|
||||
std::vector<int> ldim = v._grid->LocalDimensions();
|
||||
std::vector<int> ldim = v.Grid()->LocalDimensions();
|
||||
std::vector<int> cldim = { ldim[1], ldim[2], ldim[3], ldim[4], ldim[0] };
|
||||
const int _nbsc = _bs_cb[0]*_bs_cb[1]*_bs_cb[2]*_bs_cb[3]*_bs_cb[4];
|
||||
// take canonical block cb of v and put it in canonical ordering in buf
|
||||
@ -301,8 +301,8 @@ public:
|
||||
cl0[j] = cx0[j] + co0[j];
|
||||
|
||||
std::vector<int> l0 = { cl0[4], cl0[0], cl0[1], cl0[2], cl0[3] };
|
||||
int oi = v._grid->oIndex(l0);
|
||||
int ii = v._grid->iIndex(l0);
|
||||
int oi = v.Grid()->oIndex(l0);
|
||||
int ii = v.Grid()->iIndex(l0);
|
||||
int lti = i;
|
||||
|
||||
//if (cb < 2 && i<2)
|
||||
@ -320,7 +320,7 @@ public:
|
||||
|
||||
void peekBlockOfVectorCanonical(int cb,const Field& v,std::vector<float>& buf) {
|
||||
std::vector<int> _bsc = { _bs[1], _bs[2], _bs[3], _bs[4], _bs[0] };
|
||||
std::vector<int> ldim = v._grid->LocalDimensions();
|
||||
std::vector<int> ldim = v.Grid()->LocalDimensions();
|
||||
std::vector<int> cldim = { ldim[1], ldim[2], ldim[3], ldim[4], ldim[0] };
|
||||
const int _nbsc = _bs_cb[0]*_bs_cb[1]*_bs_cb[2]*_bs_cb[3]*_bs_cb[4];
|
||||
// take canonical block cb of v and put it in canonical ordering in buf
|
||||
@ -341,8 +341,8 @@ public:
|
||||
cl0[j] = cx0[j] + co0[j];
|
||||
|
||||
std::vector<int> l0 = { cl0[4], cl0[0], cl0[1], cl0[2], cl0[3] };
|
||||
int oi = v._grid->oIndex(l0);
|
||||
int ii = v._grid->iIndex(l0);
|
||||
int oi = v.Grid()->oIndex(l0);
|
||||
int ii = v.Grid()->iIndex(l0);
|
||||
int lti = i;
|
||||
|
||||
//if (cb < 2 && i<2)
|
||||
|
@ -59,12 +59,12 @@ class BasisFieldVector {
|
||||
if (n > _Nm)
|
||||
_v.reserve(n);
|
||||
|
||||
_v.resize(n,_v[0]._grid);
|
||||
_v.resize(n,_v[0].Grid());
|
||||
|
||||
if (n < _Nm)
|
||||
_v.shrink_to_fit();
|
||||
|
||||
report(n - _Nm,_v[0]._grid);
|
||||
report(n - _Nm,_v[0].Grid());
|
||||
|
||||
_Nm = n;
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ namespace Grid {
|
||||
template<typename Field>
|
||||
static bool read_argonne(BasisFieldVector<Field>& ret,const char* dir, const std::vector<int>& cnodes) {
|
||||
|
||||
GridBase* _grid = ret._v[0]._grid;
|
||||
GridBase* _grid = ret._v[0].Grid();
|
||||
|
||||
std::map<int, std::vector<int> > slots;
|
||||
std::vector<int> slot_lvol, lvol;
|
||||
@ -230,7 +230,7 @@ namespace Grid {
|
||||
static bool read_argonne(BasisFieldVector<Field>& ret,const char* dir) {
|
||||
|
||||
|
||||
GridBase* _grid = ret._v[0]._grid;
|
||||
GridBase* _grid = ret._v[0].Grid();
|
||||
|
||||
char buf[4096];
|
||||
sprintf(buf,"%s/nodes.txt",dir);
|
||||
@ -463,7 +463,7 @@ namespace Grid {
|
||||
static bool read_compressed_vectors(const char* dir,BlockProjector<Field>& pr,BasisFieldVector<CoarseField>& coef, int ngroups = 1) {
|
||||
|
||||
const BasisFieldVector<Field>& basis = pr._evec;
|
||||
GridBase* _grid = basis._v[0]._grid;
|
||||
GridBase* _grid = basis._v[0].Grid();
|
||||
|
||||
// for error messages
|
||||
char hostname[1024];
|
||||
@ -699,7 +699,7 @@ namespace Grid {
|
||||
int ii,oi;
|
||||
int mnb = pr._bgrid.globalToLocalCanonicalBlock(slot,_nn,nb);
|
||||
if (mnb != -1)
|
||||
canonical_block_to_coarse_coordinates(coef._v[0]._grid,mnb,ii,oi);
|
||||
canonical_block_to_coarse_coordinates(coef._v[0].Grid(),mnb,ii,oi);
|
||||
|
||||
char* lptr = ptr + (4*buf1.size() + FP_16_SIZE(buf2.size(), _FP16_COEF_EXP_SHARE_FLOATS))*(nb + j*blocks);
|
||||
int l;
|
||||
@ -752,7 +752,7 @@ namespace Grid {
|
||||
GridStopWatch gsw;
|
||||
|
||||
const BasisFieldVector<Field>& basis = pr._evec;
|
||||
GridBase* _grid = basis._v[0]._grid;
|
||||
GridBase* _grid = basis._v[0].Grid();
|
||||
std::vector<int> _l = _grid->FullDimensions();
|
||||
for (int i=0;i<(int)_l.size();i++)
|
||||
_l[i] /= _grid->_processors[i];
|
||||
@ -854,7 +854,7 @@ namespace Grid {
|
||||
}
|
||||
|
||||
gsw2.Stop();
|
||||
assert(coef._v[0]._grid->_isites*coef._v[0]._grid->_osites == pr._bgrid._blocks);
|
||||
assert(coef._v[0].Grid()->_isites*coef._v[0].Grid()->_osites == pr._bgrid._blocks);
|
||||
|
||||
gsw3.Start();
|
||||
for (int j=0;j<(int)coef.size();j++) {
|
||||
@ -870,7 +870,7 @@ namespace Grid {
|
||||
for (int nb=0;nb<pr._bgrid._blocks;nb++) {
|
||||
// get local coordinate on coarse grid
|
||||
int ii, oi;
|
||||
canonical_block_to_coarse_coordinates(coef._v[0]._grid,nb,ii,oi);
|
||||
canonical_block_to_coarse_coordinates(coef._v[0].Grid(),nb,ii,oi);
|
||||
|
||||
gsw4.Start();
|
||||
gsw5.Start();
|
||||
@ -949,7 +949,7 @@ namespace Grid {
|
||||
template<typename Field>
|
||||
static void write_argonne(const BasisFieldVector<Field>& ret,const char* dir) {
|
||||
|
||||
GridBase* _grid = ret._v[0]._grid;
|
||||
GridBase* _grid = ret._v[0].Grid();
|
||||
std::vector<int> _l = _grid->FullDimensions();
|
||||
for (int i=0;i<(int)_l.size();i++)
|
||||
_l[i] /= _grid->_processors[i];
|
||||
|
@ -189,7 +189,7 @@ public:
|
||||
if (_apply_actual++ >= _max_apply) {
|
||||
std::cout << GridLogMessage << "Maximum application of operator reached, checkpoint and finish in future job" << std::endl;
|
||||
if (_f) { fclose(_f); _f=0; }
|
||||
in._grid->Barrier();
|
||||
in.Grid()->Barrier();
|
||||
Grid_finalize();
|
||||
exit(3);
|
||||
}
|
||||
@ -207,10 +207,10 @@ public:
|
||||
}
|
||||
|
||||
void operator()(const CoarseField& in, CoarseField& out) {
|
||||
assert(_pr._bgrid._o_blocks == in._grid->oSites());
|
||||
assert(_pr._bgrid._o_blocks == in.Grid()->oSites());
|
||||
|
||||
Field fin(_pr._bgrid._grid);
|
||||
Field fout(_pr._bgrid._grid);
|
||||
Field fin(_pr._bgrid.Grid());
|
||||
Field fout(_pr._bgrid.Grid());
|
||||
|
||||
GridStopWatch gsw1,gsw2,gsw3;
|
||||
// fill fin
|
||||
@ -245,9 +245,9 @@ public:
|
||||
}
|
||||
|
||||
void operator()(const CoarseField& in, CoarseField& out) {
|
||||
assert(_pr._bgrid._o_blocks == in._grid->oSites());
|
||||
Field fin(_pr._bgrid._grid);
|
||||
Field fout(_pr._bgrid._grid);
|
||||
assert(_pr._bgrid._o_blocks == in.Grid()->oSites());
|
||||
Field fin(_pr._bgrid.Grid());
|
||||
Field fout(_pr._bgrid.Grid());
|
||||
_pr.coarseToFine(in,fin);
|
||||
_Linop.HermOp(fin,fout);
|
||||
_pr.fineToCoarse(fout,out);
|
||||
@ -276,8 +276,8 @@ void CoarseGridLanczos(BlockProjector<Field>& pr,RealD alpha2,RealD beta,int Npo
|
||||
|
||||
std::vector<int> coarseFourDimLatt;
|
||||
for (int i=0;i<4;i++)
|
||||
coarseFourDimLatt.push_back(bgrid._nb[1+i] * bgrid._grid->_processors[1+i]);
|
||||
assert(bgrid._grid->_processors[0] == 1);
|
||||
coarseFourDimLatt.push_back(bgrid._nb[1+i] * bgrid.Grid()->_processors[1+i]);
|
||||
assert(bgrid.Grid()->_processors[0] == 1);
|
||||
|
||||
std::cout << GridLogMessage << "CoarseGrid = " << coarseFourDimLatt << " with basis = " << Nstop1 << std::endl;
|
||||
GridCartesian * UCoarseGrid = SpaceTimeGrid::makeFourDimGrid(coarseFourDimLatt, GridDefaultSimd(Nd,vComplex::Nsimd()),GridDefaultMpi());
|
||||
@ -292,7 +292,7 @@ void CoarseGridLanczos(BlockProjector<Field>& pr,RealD alpha2,RealD beta,int Npo
|
||||
BasisFieldVector<CoarseLatticeFermion<Nstop1> > coef(Nm2,FCoarseGrid);
|
||||
|
||||
ProjectedFunctionHermOp<CoarseLatticeFermion<Nstop1>,LatticeFermion> Op2plain(pr,Cheb2,HermOp);
|
||||
CheckpointedLinearFunction<CoarseLatticeFermion<Nstop1> > Op2ckpt(src_coarse._grid,Op2plain,"checkpoint",MaxApply2);
|
||||
CheckpointedLinearFunction<CoarseLatticeFermion<Nstop1> > Op2ckpt(src_coarse.Grid(),Op2plain,"checkpoint",MaxApply2);
|
||||
LinearFunction< CoarseLatticeFermion<Nstop1> >* Op2;
|
||||
if (MaxApply2) {
|
||||
Op2 = &Op2ckpt;
|
||||
@ -307,7 +307,7 @@ void CoarseGridLanczos(BlockProjector<Field>& pr,RealD alpha2,RealD beta,int Npo
|
||||
|
||||
// Precision test
|
||||
{
|
||||
Field tmp(bgrid._grid);
|
||||
Field tmp(bgrid.Grid());
|
||||
CoarseLatticeFermion<Nstop1> tmp2(FCoarseGrid);
|
||||
CoarseLatticeFermion<Nstop1> tmp3(FCoarseGrid);
|
||||
tmp2 = 1.0;
|
||||
@ -319,7 +319,7 @@ void CoarseGridLanczos(BlockProjector<Field>& pr,RealD alpha2,RealD beta,int Npo
|
||||
tmp2 -= tmp3;
|
||||
std::cout << GridLogMessage << "Precision Test c->f->c: " << norm2(tmp2) / norm2(tmp3) << std::endl;
|
||||
|
||||
//bgrid._grid->Barrier();
|
||||
//bgrid.Grid()->Barrier();
|
||||
//return;
|
||||
}
|
||||
|
||||
@ -366,7 +366,7 @@ void CoarseGridLanczos(BlockProjector<Field>& pr,RealD alpha2,RealD beta,int Npo
|
||||
// write
|
||||
mkdir("lanczos.output",ACCESSPERMS);
|
||||
FieldVectorIO::write_compressed_vectors("lanczos.output",pr,coef,nsingle);
|
||||
if (bgrid._grid->IsBoss()) {
|
||||
if (bgrid.Grid()->IsBoss()) {
|
||||
write_evals((char *)"lanczos.output/eigen-values.txt",eval3);
|
||||
write_evals((char *)"lanczos.output/eigen-values.txt.linear",eval1);
|
||||
write_evals((char *)"lanczos.output/eigen-values.txt.poly",eval2);
|
||||
@ -379,7 +379,7 @@ void CoarseGridLanczos(BlockProjector<Field>& pr,RealD alpha2,RealD beta,int Npo
|
||||
|
||||
ConjugateGradient<LatticeFermion> CG(smoothed_eval_inner_resid, smoothed_eval_inner, false);
|
||||
|
||||
LatticeFermion v_i(basis[0]._grid);
|
||||
LatticeFermion v_i(basis[0].Grid());
|
||||
auto tmp = v_i;
|
||||
auto tmp2 = v_i;
|
||||
|
||||
@ -415,7 +415,7 @@ void CoarseGridLanczos(BlockProjector<Field>& pr,RealD alpha2,RealD beta,int Npo
|
||||
eval3[i] = ev;
|
||||
}
|
||||
|
||||
if (bgrid._grid->IsBoss()) {
|
||||
if (bgrid.Grid()->IsBoss()) {
|
||||
write_evals((char *)"lanczos.output/eigen-values.txt.smoothed",eval3);
|
||||
write_evals((char *)"lanczos.output/eigen-values.txt",eval3); // also reset this to the best ones we have available
|
||||
}
|
||||
@ -424,7 +424,7 @@ void CoarseGridLanczos(BlockProjector<Field>& pr,RealD alpha2,RealD beta,int Npo
|
||||
// do CG test with and without deflation
|
||||
if (cg_test_enabled) {
|
||||
ConjugateGradient<LatticeFermion> CG(1.0e-8, cg_test_maxiter, false);
|
||||
LatticeFermion src_orig(bgrid._grid);
|
||||
LatticeFermion src_orig(bgrid.Grid());
|
||||
src_orig.Checkerboard() = Odd;
|
||||
src_orig = 1.0;
|
||||
src_orig = src_orig * (1.0 / ::sqrt(norm2(src_orig)) );
|
||||
|
@ -97,7 +97,7 @@ int main (int argc, char ** argv)
|
||||
gaussian(RNG5rb,src);
|
||||
std::vector<FermionField> evec(Nm,FrbGrid);
|
||||
for(int i=0;i<1;i++){
|
||||
std::cout << GridLogMessage <<i<<" / "<< Nm<< " grid pointer "<<evec[i]._grid<<std::endl;
|
||||
std::cout << GridLogMessage <<i<<" / "<< Nm<< " grid pointer "<<evec[i].Grid()<<std::endl;
|
||||
};
|
||||
|
||||
int Nconv;
|
||||
|
@ -98,7 +98,7 @@ int main(int argc, char** argv) {
|
||||
gaussian(RNG5, src);
|
||||
std::vector<FermionField> evec(Nm, FGrid);
|
||||
for (int i = 0; i < 1; i++) {
|
||||
std::cout << i << " / " << Nm << " grid pointer " << evec[i]._grid
|
||||
std::cout << i << " / " << Nm << " grid pointer " << evec[i].Grid()
|
||||
<< std::endl;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user