From 39a566f72e025e82df46b9752074e14b8c1975c9 Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Mon, 10 Nov 2014 08:57:01 +0000 Subject: [PATCH] Bugfix: also fall back to IPOpt if the model decrease is nan May happen when the matrix is singular. UMFPack doesn't like that. [[Imported from SVN: r9958]] --- dune/gfe/trustregionmmgbasesolver.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dune/gfe/trustregionmmgbasesolver.hh b/dune/gfe/trustregionmmgbasesolver.hh index 86776e0f..50c0522a 100644 --- a/dune/gfe/trustregionmmgbasesolver.hh +++ b/dune/gfe/trustregionmmgbasesolver.hh @@ -138,7 +138,7 @@ void TrustRegionMMGBaseSolver<MatrixType, VectorType>::solve() matrix_->umv(*x_, tmp); double modelDecrease = (modifiedRhs*(*x_)) - 0.5 * ((*x_)*tmp); - if (modelDecrease < 0) + if (std::isnan(modelDecrease) or modelDecrease < 0) { std::cout << "Model increase: " << -modelDecrease << ", falling back to slower solver" << std::endl; -- GitLab