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:
parent
e6366b98a5
commit
ad406b2c3e
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user