From f9b41a84d2a816f52df8335f44d27c271731ffc2 Mon Sep 17 00:00:00 2001 From: Peter Boyle Date: Fri, 7 Apr 2023 15:42:45 -0400 Subject: [PATCH] Trajectory runs to completion on Crusher within wall clock time --- .../ConjugateGradientMultiShiftCleanup.h | 16 ++++++++-------- .../ConjugateGradientMultiShiftMixedPrec.h | 2 +- .../GeneralEvenOddRationalRatioMixedPrec.h | 13 +++++-------- HMC/Mobius2p1f_DD_EOFA_96I_mshift.cc | 8 ++++---- 4 files changed, 18 insertions(+), 21 deletions(-) diff --git a/Grid/algorithms/iterative/ConjugateGradientMultiShiftCleanup.h b/Grid/algorithms/iterative/ConjugateGradientMultiShiftCleanup.h index 17714f09..23baff61 100644 --- a/Grid/algorithms/iterative/ConjugateGradientMultiShiftCleanup.h +++ b/Grid/algorithms/iterative/ConjugateGradientMultiShiftCleanup.h @@ -166,16 +166,16 @@ public: rsqf[s] =rsq[s]; std::cout< schurOp(numerator ? NumOpD : DenOpD); ConjugateGradientMultiShift msCG(MaxIter, approx); msCG(schurOp,in, out); @@ -70,9 +71,10 @@ NAMESPACE_BEGIN(Grid); msCG(schurOpD, in, out); #endif } + //Force evaluation virtual void multiShiftInverse(bool numerator, const MultiShiftFunction &approx, const Integer MaxIter, const FermionFieldD &in, std::vector &out_elems, FermionFieldD &out){ SchurDifferentiableOperator schurOpD(numerator ? NumOpD : DenOpD); - SchurDifferentiableOperator schurOpF (numerator ? NumOpF : DenOpF); + SchurDifferentiableOperator schurOpF(numerator ? NumOpF : DenOpF); FermionFieldD inD(NumOpD.FermionRedBlackGrid()); FermionFieldD outD(NumOpD.FermionRedBlackGrid()); @@ -84,20 +86,15 @@ NAMESPACE_BEGIN(Grid); virtual void ImportGauge(const typename ImplD::GaugeField &Ud){ typename ImplF::GaugeField Uf(NumOpF.GaugeGrid()); - typename ImplD::GaugeField Ud2(NumOpD.GaugeGrid()); precisionChange(Uf, Ud); - precisionChange(Ud2, Ud); - std::cout << "Importing "< hasenbusch({ light_mass, 0.005, 0.0145, 0.045, 0.108, 0.25, 0.51 , pv_mass }); // Updated // std::vector hasenbusch({ light_mass, 0.0145, 0.045, 0.108, 0.25, 0.51 , 0.75 , pv_mass }); - int SP_iters=10000; + int SP_iters=9000; RationalActionParams OFRp; // Up/down OFRp.lo = 6.0e-5; @@ -362,12 +362,12 @@ int main(int argc, char **argv) { // Probably dominates the force - back to EOFA. OneFlavourRationalParams SFRp; - SFRp.lo = 0.25; + SFRp.lo = 0.1; SFRp.hi = 25.0; SFRp.MaxIter = 10000; - SFRp.tolerance= 1.0e-5; + SFRp.tolerance= 1.0e-8; SFRp.mdtolerance= 2.0e-4; - SFRp.degree = 8; + SFRp.degree = 12; SFRp.precision= 50; MobiusEOFAFermionD Strange_Op_L (U , *FGrid , *FrbGrid , *GridPtr , *GridRBPtr , strange_mass, strange_mass, pv_mass, 0.0, -1, M5, b, c);