1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-05-10 12:35:57 +01:00

Prepare to store the action in refresh

This commit is contained in:
Peter Boyle 2021-05-14 11:18:49 -04:00
parent 25bd03f201
commit 5b52f29b2f

View File

@ -97,21 +97,9 @@ public:
tmp = Zero(); tmp = Zero();
ActionSolver(MdagMOp,Phi,tmp); // (VdagV)^-1 Mdag eta = V^-1 Vdag^-1 Mdag eta ActionSolver(MdagMOp,Phi,tmp); // (VdagV)^-1 Mdag eta = V^-1 Vdag^-1 Mdag eta
NumOp.M(tmp,Phi); // Vdag^-1 Mdag eta NumOp.M(tmp,Phi); // Vdag^-1 Mdag eta
#define FILTER
#ifdef FILTER
Integer OrthogDir=0;
Integer plane=0;
if ( getenv("DIR") ) OrthogDir = atoi(getenv("DIR"));
if ( getenv("COOR") ) plane = atoi(getenv("COOR"));
std::cout << " *** PseudoFermion FILTER DIR " <<OrthogDir << " plane "<<plane<<std::endl;
Lattice<iScalar<vInteger> > coor(NumOp.FermionGrid());
LatticeCoordinate(coor,OrthogDir);
tmp = Zero();
Phi = where(coor==plane,Phi,tmp);
#endif
Phi=Phi*scale; Phi=Phi*scale;
std::cout << GridLogMessage<<" TwoFlavourRatio Expect action to be "<<norm2(eta)*scale*scale<<std::endl;
}; };
////////////////////////////////////////////////////// //////////////////////////////////////////////////////
@ -133,6 +121,7 @@ public:
DenOp.M(X,Y); // Y= Mdag^-1 Vdag phi DenOp.M(X,Y); // Y= Mdag^-1 Vdag phi
RealD action = norm2(Y); RealD action = norm2(Y);
std::cout << GridLogMessage<<" TwoFlavourRatio action is "<<action<<std::endl;
return action; return action;
}; };
@ -177,25 +166,6 @@ public:
dSdU *= -1.0; dSdU *= -1.0;
//dSdU = - Ta(dSdU); //dSdU = - Ta(dSdU);
#ifdef FILTER
std::cout <<" In force "<<std::endl;
force = dSdU;
int mu=0;
std::cout << " FORCE mu " <<mu<<" L2 "<< norm2(force)<< " Linf " << maxLocalNorm2(force)<<std::endl;
int plane=0;
if ( getenv("COOR") ) plane = atoi(getenv("COOR"));
Lattice<iScalar<vInteger> > coor(NumOp.GaugeGrid());
LatticeCoordinate(coor,mu);
int L = NumOp.GaugeGrid()->FullDimensions()[mu];
for (Integer p=0;p<L;p++) {
force = Zero();
force = where(coor==p,dSdU,force);
std::cout << " FORCE mu " <<mu<<" PF plane "<<plane<<" T= " <<p<<" L2 "<< norm2(force)<< " Linf " << maxLocalNorm2(force)<<std::endl;
}
exit(0);
#endif
}; };
}; };