mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-24 12:45:56 +01:00
Mixed prec tolerance changes
This commit is contained in:
parent
6dcaed621c
commit
5fdbb924f0
@ -39,19 +39,20 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
SchurFactoredFermionOperator<ImplD,ImplF> & NumOp;// the basic operator
|
SchurFactoredFermionOperator<ImplD,ImplF> & NumOp;// the basic operator
|
||||||
|
RealD InnerStoppingCondition;
|
||||||
RealD ActionStoppingCondition;
|
RealD ActionStoppingCondition;
|
||||||
RealD DerivativeStoppingCondition;
|
RealD DerivativeStoppingCondition;
|
||||||
FermionField Phi; // the pseudo fermion field for this trajectory
|
FermionField Phi; // the pseudo fermion field for this trajectory
|
||||||
public:
|
public:
|
||||||
DomainDecomposedBoundaryTwoFlavourBosonPseudoFermion(SchurFactoredFermionOperator<ImplD,ImplF> &_NumOp,RealD _DerivativeTol, RealD _ActionTol)
|
DomainDecomposedBoundaryTwoFlavourBosonPseudoFermion(SchurFactoredFermionOperator<ImplD,ImplF> &_NumOp,RealD _DerivativeTol, RealD _ActionTol, RealD _InnerTol=1.0e-6)
|
||||||
: NumOp(_NumOp),
|
: NumOp(_NumOp),
|
||||||
DerivativeStoppingCondition(_DerivativeTol),
|
DerivativeStoppingCondition(_DerivativeTol),
|
||||||
ActionStoppingCondition(_ActionTol),
|
ActionStoppingCondition(_ActionTol),
|
||||||
|
InnerStoppingCondition(_InnerTol),
|
||||||
Phi(_NumOp.FermionGrid()) {};
|
Phi(_NumOp.FermionGrid()) {};
|
||||||
|
|
||||||
virtual std::string action_name(){return "DomainDecomposedBoundaryTwoFlavourBosonPseudoFermion";}
|
virtual std::string action_name(){return "DomainDecomposedBoundaryTwoFlavourBosonPseudoFermion";}
|
||||||
|
|
||||||
|
|
||||||
virtual std::string LogParameters(){
|
virtual std::string LogParameters(){
|
||||||
std::stringstream sstream;
|
std::stringstream sstream;
|
||||||
return sstream.str();
|
return sstream.str();
|
||||||
@ -73,6 +74,7 @@ public:
|
|||||||
//
|
//
|
||||||
RealD scale = std::sqrt(0.5);
|
RealD scale = std::sqrt(0.5);
|
||||||
|
|
||||||
|
NumOp.tolinner=InnerStoppingCondition;
|
||||||
NumOp.tol=ActionStoppingCondition;
|
NumOp.tol=ActionStoppingCondition;
|
||||||
NumOp.ImportGauge(U);
|
NumOp.ImportGauge(U);
|
||||||
|
|
||||||
@ -81,9 +83,10 @@ public:
|
|||||||
gaussian(pRNG,eta); eta=eta*scale;
|
gaussian(pRNG,eta); eta=eta*scale;
|
||||||
|
|
||||||
NumOp.ProjectBoundaryBar(eta);
|
NumOp.ProjectBoundaryBar(eta);
|
||||||
|
//DumpSliceNorm("eta",eta);
|
||||||
NumOp.RInv(eta,Phi);
|
NumOp.RInv(eta,Phi);
|
||||||
|
|
||||||
//DumpSliceNorm("Phi",Phi,-1);
|
//DumpSliceNorm("Phi",Phi);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -92,6 +95,7 @@ public:
|
|||||||
//////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////
|
||||||
virtual RealD S(const GaugeField &U) {
|
virtual RealD S(const GaugeField &U) {
|
||||||
|
|
||||||
|
NumOp.tolinner=InnerStoppingCondition;
|
||||||
NumOp.tol=ActionStoppingCondition;
|
NumOp.tol=ActionStoppingCondition;
|
||||||
NumOp.ImportGauge(U);
|
NumOp.ImportGauge(U);
|
||||||
|
|
||||||
@ -106,6 +110,7 @@ public:
|
|||||||
|
|
||||||
virtual void deriv(const GaugeField &U,GaugeField & dSdU)
|
virtual void deriv(const GaugeField &U,GaugeField & dSdU)
|
||||||
{
|
{
|
||||||
|
NumOp.tolinner=InnerStoppingCondition;
|
||||||
NumOp.tol=DerivativeStoppingCondition;
|
NumOp.tol=DerivativeStoppingCondition;
|
||||||
NumOp.ImportGauge(U);
|
NumOp.ImportGauge(U);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user