From 3b1e0540addda08e47b02e3af8a4808b25f596c8 Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Fri, 6 Dec 2013 09:57:22 +0000 Subject: [PATCH] Avoid one redundant computation of the energy [[Imported from SVN: r9563]] --- dune/gfe/targetspacertrsolver.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dune/gfe/targetspacertrsolver.cc b/dune/gfe/targetspacertrsolver.cc index 9851b6ae..b197b73d 100644 --- a/dune/gfe/targetspacertrsolver.cc +++ b/dune/gfe/targetspacertrsolver.cc @@ -54,6 +54,8 @@ void TargetSpaceRiemannianTRSolver<TargetSpace>::solve() MaxNormTrustRegion<blocksize,field_type> trustRegion(1, // we have only one block initialTrustRegionRadius_); + field_type energy = assembler_->value(x_); + // ///////////////////////////////////////////////////// // Trust-Region Solver // ///////////////////////////////////////////////////// @@ -63,7 +65,7 @@ void TargetSpaceRiemannianTRSolver<TargetSpace>::solve() std::cout << "----------------------------------------------------" << std::endl; std::cout << " Trust-Region Step Number: " << i << ", radius: " << trustRegion.radius() - << ", energy: " << assembler_->value(x_) << std::endl; + << ", energy: " << energy << std::endl; std::cout << "----------------------------------------------------" << std::endl; } @@ -112,8 +114,7 @@ void TargetSpaceRiemannianTRSolver<TargetSpace>::solve() TargetSpace newIterate = x_; newIterate = TargetSpace::exp(newIterate, corr[0]); - /** \todo Don't always recompute oldEnergy */ - field_type oldEnergy = assembler_->value(x_); + field_type oldEnergy = energy; field_type energy = assembler_->value(newIterate); // compute the model decrease -- GitLab