mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-03 21:44:33 +00:00 
			
		
		
		
	Zero changes. (I mean literally)
This commit is contained in:
		@@ -72,7 +72,7 @@ public:
 | 
			
		||||
  template<typename CoarseField>
 | 
			
		||||
  void coarseToFine(const CoarseField& in, Field& out) {
 | 
			
		||||
 | 
			
		||||
    out = zero;
 | 
			
		||||
    out = Zero();
 | 
			
		||||
    out.Checkerboard() = _evec._v[0].Checkerboard();
 | 
			
		||||
 | 
			
		||||
    int Nbasis = sizeof(in[0]._internal._internal) / sizeof(in[0]._internal._internal[0]);
 | 
			
		||||
@@ -90,7 +90,7 @@ public:
 | 
			
		||||
  template<typename CoarseField>
 | 
			
		||||
  void fineToCoarse(const Field& in, CoarseField& out) {
 | 
			
		||||
 | 
			
		||||
    out = zero;
 | 
			
		||||
    out = Zero();
 | 
			
		||||
 | 
			
		||||
    int Nbasis = sizeof(out[0]._internal._internal) / sizeof(out[0]._internal._internal[0]);
 | 
			
		||||
    assert(Nbasis == _evec._Nm);
 | 
			
		||||
@@ -113,7 +113,7 @@ public:
 | 
			
		||||
 | 
			
		||||
  template<typename CoarseField>
 | 
			
		||||
    void deflateFine(BasisFieldVector<CoarseField>& _coef,const std::vector<RealD>& eval,int N,const Field& src_orig,Field& result) {
 | 
			
		||||
    result = zero;
 | 
			
		||||
    result = Zero();
 | 
			
		||||
    for (int i=0;i<N;i++) {
 | 
			
		||||
      Field tmp(result.Grid());
 | 
			
		||||
      coarseToFine(_coef._v[i],tmp);
 | 
			
		||||
@@ -125,7 +125,7 @@ public:
 | 
			
		||||
    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 result_coarse = src_coarse;
 | 
			
		||||
    result_coarse = zero;
 | 
			
		||||
    result_coarse = Zero();
 | 
			
		||||
    fineToCoarse(src_orig,src_coarse);
 | 
			
		||||
    for (int i=0;i<N;i++) {
 | 
			
		||||
      axpy(result_coarse,TensorRemove(innerProduct(_coef._v[i],src_coarse)) / eval[i],_coef._v[i],result_coarse);
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@ template<typename Field>
 | 
			
		||||
class BlockedGrid {
 | 
			
		||||
public:
 | 
			
		||||
  GridBase* _grid;
 | 
			
		||||
  GridBase* Grid(void) { return _grid; };
 | 
			
		||||
  typedef typename Field::scalar_type  Coeff_t;
 | 
			
		||||
  typedef typename Field::vector_type vCoeff_t;
 | 
			
		||||
  
 | 
			
		||||
 
 | 
			
		||||
@@ -142,7 +142,7 @@ public:
 | 
			
		||||
      return false;
 | 
			
		||||
    fseeko(_f,cur,SEEK_SET);
 | 
			
		||||
 | 
			
		||||
    size_t sz = sizeof(out[0]) * out._odata.size();
 | 
			
		||||
    size_t sz = sizeof(out[0]) * out.size();
 | 
			
		||||
 | 
			
		||||
    GridStopWatch gsw;
 | 
			
		||||
    gsw.Start();
 | 
			
		||||
@@ -161,7 +161,7 @@ public:
 | 
			
		||||
 | 
			
		||||
    fseek(_f,0,SEEK_CUR); // switch to write
 | 
			
		||||
 | 
			
		||||
    size_t sz = sizeof(out[0]) * out._odata.size();
 | 
			
		||||
    size_t sz = sizeof(out[0]) * out.size();
 | 
			
		||||
 | 
			
		||||
    GridStopWatch gsw;
 | 
			
		||||
    gsw.Start();
 | 
			
		||||
@@ -393,7 +393,7 @@ void CoarseGridLanczos(BlockProjector<Field>& pr,RealD alpha2,RealD beta,int Npo
 | 
			
		||||
      v_i.Checkerboard() = Odd;
 | 
			
		||||
      
 | 
			
		||||
      for (int j=0;j<smoothed_eval_outer;j++) {
 | 
			
		||||
	tmp=zero;
 | 
			
		||||
	tmp=Zero();
 | 
			
		||||
	//pr.deflate(coef,eval3,Nstop2,v_i,tmp);
 | 
			
		||||
	CG(HermOp, v_i, tmp);
 | 
			
		||||
 | 
			
		||||
@@ -432,7 +432,7 @@ void CoarseGridLanczos(BlockProjector<Field>& pr,RealD alpha2,RealD beta,int Npo
 | 
			
		||||
 | 
			
		||||
    // undeflated solve
 | 
			
		||||
    std::cout << GridLogMessage << " Undeflated solve "<<std::endl;
 | 
			
		||||
    result = zero;
 | 
			
		||||
    result = Zero();
 | 
			
		||||
    CG(HermOp, src_orig, result);
 | 
			
		||||
    //    if (UCoarseGrid->IsBoss())
 | 
			
		||||
    //      write_history("cg_test.undefl",CG.ResHistory);
 | 
			
		||||
@@ -440,7 +440,7 @@ void CoarseGridLanczos(BlockProjector<Field>& pr,RealD alpha2,RealD beta,int Npo
 | 
			
		||||
 | 
			
		||||
    // deflated solve with all eigenvectors
 | 
			
		||||
    std::cout << GridLogMessage << " Deflated solve with all evectors"<<std::endl;
 | 
			
		||||
    result = zero;
 | 
			
		||||
    result = Zero();
 | 
			
		||||
    pr.deflate(coef,eval2,Nstop2,src_orig,result);
 | 
			
		||||
    CG(HermOp, src_orig, result);
 | 
			
		||||
    //    if (UCoarseGrid->IsBoss())
 | 
			
		||||
@@ -449,7 +449,7 @@ void CoarseGridLanczos(BlockProjector<Field>& pr,RealD alpha2,RealD beta,int Npo
 | 
			
		||||
 | 
			
		||||
    // deflated solve with non-blocked eigenvectors
 | 
			
		||||
    std::cout << GridLogMessage << " Deflated solve with non-blocked evectors"<<std::endl;
 | 
			
		||||
    result = zero;
 | 
			
		||||
    result = Zero();
 | 
			
		||||
    pr.deflate(coef,eval1,Nstop1,src_orig,result);
 | 
			
		||||
    CG(HermOp, src_orig, result);
 | 
			
		||||
    //    if (UCoarseGrid->IsBoss())
 | 
			
		||||
@@ -458,7 +458,7 @@ void CoarseGridLanczos(BlockProjector<Field>& pr,RealD alpha2,RealD beta,int Npo
 | 
			
		||||
 | 
			
		||||
    // deflated solve with all eigenvectors and original eigenvalues from proj
 | 
			
		||||
    std::cout << GridLogMessage << " Deflated solve with all eigenvectors and original eigenvalues from proj"<<std::endl;
 | 
			
		||||
    result = zero;
 | 
			
		||||
    result = Zero();
 | 
			
		||||
    pr.deflate(coef,eval3,Nstop2,src_orig,result);
 | 
			
		||||
    CG(HermOp, src_orig, result);
 | 
			
		||||
    //    if (UCoarseGrid->IsBoss())
 | 
			
		||||
 
 | 
			
		||||
@@ -58,7 +58,7 @@ public:
 | 
			
		||||
  {
 | 
			
		||||
    assert(this->_Aggregate.subspace.size()==nbasis);
 | 
			
		||||
    emptyUserRecord record;
 | 
			
		||||
    Grid::QCD::ScidacWriter WR;
 | 
			
		||||
    Grid::ScidacWriter WR;
 | 
			
		||||
    WR.open(evecs_file);
 | 
			
		||||
    for(int k=0;k<nbasis;k++) {
 | 
			
		||||
      WR.writeScidacFieldRecord(this->_Aggregate.subspace[k],record);
 | 
			
		||||
@@ -82,7 +82,7 @@ public:
 | 
			
		||||
    
 | 
			
		||||
    std::cout << GridLogIRL<< "checkpointFineRestore:  Reading evecs from "<<evecs_file<<std::endl;
 | 
			
		||||
    emptyUserRecord record;
 | 
			
		||||
    Grid::QCD::ScidacReader RD ;
 | 
			
		||||
    Grid::ScidacReader RD ;
 | 
			
		||||
    RD.open(evecs_file);
 | 
			
		||||
    for(int k=0;k<nbasis;k++) {
 | 
			
		||||
      this->_Aggregate.subspace[k].Checkerboard()=this->_checkerboard;
 | 
			
		||||
@@ -96,7 +96,7 @@ public:
 | 
			
		||||
  {
 | 
			
		||||
    int n = this->evec_coarse.size();
 | 
			
		||||
    emptyUserRecord record;
 | 
			
		||||
    Grid::QCD::ScidacWriter WR;
 | 
			
		||||
    Grid::ScidacWriter WR;
 | 
			
		||||
    WR.open(evecs_file);
 | 
			
		||||
    for(int k=0;k<n;k++) {
 | 
			
		||||
      WR.writeScidacFieldRecord(this->evec_coarse[k],record);
 | 
			
		||||
@@ -119,7 +119,7 @@ public:
 | 
			
		||||
    assert(this->evals_coarse.size()==nvec);
 | 
			
		||||
    emptyUserRecord record;
 | 
			
		||||
    std::cout << GridLogIRL<< "checkpointCoarseRestore:  Reading evecs from "<<evecs_file<<std::endl;
 | 
			
		||||
    Grid::QCD::ScidacReader RD ;
 | 
			
		||||
    Grid::ScidacReader RD ;
 | 
			
		||||
    RD.open(evecs_file);
 | 
			
		||||
    for(int k=0;k<nvec;k++) {
 | 
			
		||||
      RD.readScidacFieldRecord(this->evec_coarse[k],record);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user