From f78423b46c2705ce579944c8b3b65efd20fd1801 Mon Sep 17 00:00:00 2001 From: Dmitri Naumov <dmitri.naumov@ufz.de> Date: Fri, 18 Jan 2019 16:09:47 +0100 Subject: [PATCH] [NL] INBTS; Add strict constructor checks. Check vector sizes. --- .../IterationNumberBasedTimeStepping.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp b/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp index ef6566cc0a3..d9646d2150d 100644 --- a/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp +++ b/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp @@ -33,7 +33,21 @@ IterationNumberBasedTimeStepping::IterationNumberBasedTimeStepping( _initial_dt(initial_dt), _max_iter(_iter_times_vector.empty() ? 0 : _iter_times_vector.back()) { - assert(iter_times_vector.size() == multiplier_vector.size()); + if (_iter_times_vector.empty()) + { + OGS_FATAL("Vector of iteration numbers must not be empty."); + } + if (_iter_times_vector.size() != _multiplier_vector.size()) + { + OGS_FATAL( + "Vector of iteration numbers must be of the same size as the " + "vector of multipliers."); + } + if (!std::is_sorted(std::begin(_iter_times_vector), + std::end(_iter_times_vector))) + { + OGS_FATAL("Vector of iteration numbers must be sorted."); + } } bool IterationNumberBasedTimeStepping::next(double const /*solution_error*/, -- GitLab