From f2fe2573a76bf3ca4afe6649dd961487a695af25 Mon Sep 17 00:00:00 2001 From: Quadro Date: Tue, 8 Jun 2021 20:27:52 -0400 Subject: [PATCH] Constructor control of inner tolerance --- .../iterative/ConjugateGradientMixedPrec.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Grid/algorithms/iterative/ConjugateGradientMixedPrec.h b/Grid/algorithms/iterative/ConjugateGradientMixedPrec.h index 8f400625..e7b03617 100644 --- a/Grid/algorithms/iterative/ConjugateGradientMixedPrec.h +++ b/Grid/algorithms/iterative/ConjugateGradientMixedPrec.h @@ -52,16 +52,25 @@ NAMESPACE_BEGIN(Grid); //Option to speed up *inner single precision* solves using a LinearFunction that produces a guess LinearFunction *guesser; - - MixedPrecisionConjugateGradient(RealD tol, + + MixedPrecisionConjugateGradient(RealD Tol, + Integer maxinnerit, + Integer maxouterit, + GridBase* _sp_grid, + LinearOperatorBase &_Linop_f, + LinearOperatorBase &_Linop_d) : + MixedPrecisionConjugateGradient(Tol, Tol, maxinnerit, maxouterit, _sp_grid, _Linop_f, _Linop_d) {}; + + MixedPrecisionConjugateGradient(RealD Tol, + RealD InnerTol, Integer maxinnerit, Integer maxouterit, GridBase* _sp_grid, LinearOperatorBase &_Linop_f, LinearOperatorBase &_Linop_d) : Linop_f(_Linop_f), Linop_d(_Linop_d), - Tolerance(tol), InnerTolerance(tol), MaxInnerIterations(maxinnerit), MaxOuterIterations(maxouterit), SinglePrecGrid(_sp_grid), - OuterLoopNormMult(100.), guesser(NULL){ }; + Tolerance(Tol), InnerTolerance(InnerTol), MaxInnerIterations(maxinnerit), MaxOuterIterations(maxouterit), SinglePrecGrid(_sp_grid), + OuterLoopNormMult(100.), guesser(NULL){ assert(InnerTol < 1.0e-1);}; void useGuesser(LinearFunction &g){ guesser = &g;