From cec5d344543a3b4868fcda7b762fd545c3600293 Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Sun, 1 Jan 2012 16:36:28 +0000 Subject: [PATCH] introduce the relative model decrease as a separate variable [[Imported from SVN: r8330]] --- dune/gfe/riemanniantrsolver.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dune/gfe/riemanniantrsolver.cc b/dune/gfe/riemanniantrsolver.cc index b5e01ec5..c855c439 100644 --- a/dune/gfe/riemanniantrsolver.cc +++ b/dune/gfe/riemanniantrsolver.cc @@ -414,11 +414,13 @@ void RiemannianTrustRegionSolver<GridType,TargetSpace>::solve() tmp = 0; hessianMatrix_->umv(corr, tmp); double modelDecrease = (rhs*corr) - 0.5 * (corr*tmp); - + + double relativeModelDecrease = modelDecrease / std::fabs(energy); + if (this->verbosity_ == NumProc::FULL) { std::cout << "Absolute model decrease: " << modelDecrease << ", functional decrease: " << oldEnergy - energy << std::endl; - std::cout << "Relative model decrease: " << modelDecrease / energy + std::cout << "Relative model decrease: " << relativeModelDecrease << ", functional decrease: " << (oldEnergy - energy)/energy << std::endl; } @@ -430,7 +432,7 @@ void RiemannianTrustRegionSolver<GridType,TargetSpace>::solve() } if (energy >= oldEnergy && - (std::abs(oldEnergy-energy)/energy < 1e-9 || modelDecrease/energy < 1e-9)) { + (std::abs(oldEnergy-energy)/energy < 1e-9 || relativeModelDecrease < 1e-9)) { if (this->verbosity_ == NumProc::FULL) std::cout << "Suspecting rounding problems" << std::endl; -- GitLab