1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-04-24 12:45:56 +01:00

Provide a call back for subdomain solve / local domain pseudofermion restriction

This commit is contained in:
Quadro 2021-06-09 16:29:15 -04:00
parent e6366b98a5
commit ad406b2c3e

View File

@ -50,6 +50,8 @@ NAMESPACE_BEGIN(Grid);
FermionField PhiOdd; // the pseudo fermion field for this trajectory FermionField PhiOdd; // the pseudo fermion field for this trajectory
FermionField PhiEven; // the pseudo fermion field for this trajectory FermionField PhiEven; // the pseudo fermion field for this trajectory
virtual void refreshRestrict(FermionField &eta) {};
public: public:
TwoFlavourEvenOddRatioPseudoFermionAction(FermionOperator<Impl> &_NumOp, TwoFlavourEvenOddRatioPseudoFermionAction(FermionOperator<Impl> &_NumOp,
FermionOperator<Impl> &_DenOp, FermionOperator<Impl> &_DenOp,
@ -60,7 +62,8 @@ NAMESPACE_BEGIN(Grid);
TwoFlavourEvenOddRatioPseudoFermionAction(FermionOperator<Impl> &_NumOp, TwoFlavourEvenOddRatioPseudoFermionAction(FermionOperator<Impl> &_NumOp,
FermionOperator<Impl> &_DenOp, FermionOperator<Impl> &_DenOp,
OperatorFunction<FermionField> & DS, OperatorFunction<FermionField> & DS,
OperatorFunction<FermionField> & AS, OperatorFunction<FermionField> & HS) : OperatorFunction<FermionField> & AS,
OperatorFunction<FermionField> & HS) :
NumOp(_NumOp), NumOp(_NumOp),
DenOp(_DenOp), DenOp(_DenOp),
DerivativeSolver(DS), DerivativeSolver(DS),
@ -93,6 +96,7 @@ NAMESPACE_BEGIN(Grid);
FermionField eta (NumOp.FermionGrid()); FermionField eta (NumOp.FermionGrid());
gaussian(pRNG,eta); eta = eta * scale; gaussian(pRNG,eta); eta = eta * scale;
refreshRestrict(eta); // Used by DDHMC
refresh(U,eta); refresh(U,eta);
} }
@ -177,7 +181,7 @@ NAMESPACE_BEGIN(Grid);
NumOp.ImportGauge(U); NumOp.ImportGauge(U);
DenOp.ImportGauge(U); DenOp.ImportGauge(U);
SchurDifferentiableOperator<Impl> Mpc(DenOp); SchurDifferentiableOperator<Impl> Mpc(DenOp);
SchurDifferentiableOperator<Impl> Vpc(NumOp); SchurDifferentiableOperator<Impl> Vpc(NumOp);
@ -212,7 +216,7 @@ NAMESPACE_BEGIN(Grid);
assert(DenOp.ConstEE() == 1); assert(DenOp.ConstEE() == 1);
dSdU = -dSdU; dSdU = -dSdU;
}; };
}; };
NAMESPACE_END(Grid); NAMESPACE_END(Grid);