From 09aea842ccef83ca8d17d214d3cc0b40e2571c5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20M=C3=BCthing?= <muething@dune-project.org> Date: Tue, 19 Nov 2013 13:57:47 +0100 Subject: [PATCH] [BCRSMatrix] Improve logic in setBuildMode() to correctly handle new implicit mode --- dune/istl/bcrsmatrix.hh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/dune/istl/bcrsmatrix.hh b/dune/istl/bcrsmatrix.hh index e7ab1a9e..db843298 100644 --- a/dune/istl/bcrsmatrix.hh +++ b/dune/istl/bcrsmatrix.hh @@ -791,10 +791,15 @@ namespace Dune { */ void setBuildMode(BuildMode bm) { - if(ready==notbuilt) + if (ready == notAllocated) + { + build_mode = bm; + return; + } + if (ready == building && (build_mode == unknown || build_mode == random || build_mode == row_wise) && (bm == row_wise || bm == random)) build_mode = bm; else - DUNE_THROW(InvalidStateException, "Matrix structure is already built (ready="<<ready<<")."); + DUNE_THROW(InvalidStateException, "Matrix structure cannot be changed at this stage anymore (ready == "<<ready<<")."); } /** -- GitLab