From 30b0b4b5b2578464913d4af267a6f42946b4d4f6 Mon Sep 17 00:00:00 2001 From: Christoph Lehmann <christoph.lehmann@ufz.de> Date: Mon, 17 Sep 2018 17:36:08 +0200 Subject: [PATCH] [NL] fixed PETSc BC setting _known_solutions->empty() must not be called otherwise there might be PETSc errors, because not all ranks might execute the same PETSc calls. --- NumLib/ODESolver/TimeDiscretizedODESystem.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/NumLib/ODESolver/TimeDiscretizedODESystem.cpp b/NumLib/ODESolver/TimeDiscretizedODESystem.cpp index f2392d04a1a..0fb5bd62d0a 100644 --- a/NumLib/ODESolver/TimeDiscretizedODESystem.cpp +++ b/NumLib/ODESolver/TimeDiscretizedODESystem.cpp @@ -139,7 +139,7 @@ void TimeDiscretizedODESystem<ODESystemTag::FirstOrderImplicitQuasilinear, applyKnownSolutionsNewton(GlobalMatrix& Jac, GlobalVector& res, GlobalVector& minus_delta_x) const { - if (!_known_solutions || _known_solutions->empty()) + if (!_known_solutions) return; using IndexType = MathLib::MatrixVectorTraits<GlobalMatrix>::Index; @@ -220,7 +220,7 @@ void TimeDiscretizedODESystem<ODESystemTag::FirstOrderImplicitQuasilinear, GlobalVector& rhs, GlobalVector& x) const { - if (!_known_solutions || _known_solutions->empty()) + if (!_known_solutions) return; using IndexType = MathLib::MatrixVectorTraits<GlobalMatrix>::Index; @@ -231,8 +231,8 @@ void TimeDiscretizedODESystem<ODESystemTag::FirstOrderImplicitQuasilinear, std::copy(bc.ids.cbegin(), bc.ids.cend(), std::back_inserter(ids)); std::copy(bc.values.cbegin(), bc.values.cend(), std::back_inserter(values)); - } - MathLib::applyKnownSolution(A, rhs, x, ids, values); + } + MathLib::applyKnownSolution(A, rhs, x, ids, values); } } // namespace NumLib -- GitLab