From a82357d34d102fce49fdf13aff5439c68a753a18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?AlexanderM=C3=BCller?= <mueller@uni-stuttgart.de> Date: Mon, 30 Nov 2020 11:19:43 +0100 Subject: [PATCH] changed convergerence critieria for multigrid subproblem --- dune/gfe/mixedriemanniantrsolver.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dune/gfe/mixedriemanniantrsolver.cc b/dune/gfe/mixedriemanniantrsolver.cc index 3a0931c3..4673e4bd 100644 --- a/dune/gfe/mixedriemanniantrsolver.cc +++ b/dune/gfe/mixedriemanniantrsolver.cc @@ -414,8 +414,10 @@ void MixedRiemannianTrustRegionSolver<GridType,Basis,Basis0,TargetSpace0,Basis1, double oldEnergy = 0; Dune::Timer solutionTimer; int ii = 0; + CorrectionType diff{corr_global}; try { for (; ii<innerIterations_; ii++) { + diff=corr_global; residual[_0] = rhs_global[_0]; stiffnessMatrix[_0][_1].mmv(corr_global[_1], residual[_0]); mmgStep0->setRhs(residual[_0]); @@ -436,7 +438,8 @@ void MixedRiemannianTrustRegionSolver<GridType,Basis,Basis0,TargetSpace0,Basis1, std::cout << "Warning: energy increase!" << std::endl; oldEnergy = energy; - if (corr_global.infinity_norm() < innerTolerance_) + diff -= corr_global; + if (diff.infinity_norm() < innerTolerance_) break; } } catch (Dune::Exception &e) { -- GitLab