diff --git a/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp b/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp index ef6566cc0a384a288cf499cd3820cf054c334cf7..d9646d2150dac23ed4017aa71016eb90a93c0350 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*/,