diff --git a/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp b/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp
index d9646d2150dac23ed4017aa71016eb90a93c0350..4dbaf6a52435f5cb82e72106ebb86886e86522a1 100644
--- a/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp
+++ b/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp
@@ -80,6 +80,26 @@ bool IterationNumberBasedTimeStepping::next(double const /*solution_error*/,
     return true;
 }
 
+double IterationNumberBasedTimeStepping::findMultiplier(
+    int const number_iterations) const
+{
+    double multiplier = 1.0;
+    // get the first multiplier by default
+    if (!_multiplier_vector.empty())
+    {
+        multiplier = _multiplier_vector[0];
+    }
+    // finding the right multiplier
+    for (std::size_t i = 0; i < _iter_times_vector.size(); i++)
+    {
+        if (_iter_times > _iter_times_vector[i])
+        {
+            multiplier = _multiplier_vector[i];
+        }
+    }
+    return multiplier;
+}
+
 double IterationNumberBasedTimeStepping::getNextTimeStepSize() const
 {
     double dt = 0.0;
@@ -92,21 +112,7 @@ double IterationNumberBasedTimeStepping::getNextTimeStepSize() const
     }
     else  // not the first time step
     {
-        double multiplier = 1.0;
-        // get the first multiplier by default
-        if (!_multiplier_vector.empty())
-        {
-            multiplier = _multiplier_vector[0];
-        }
-        // finding the right multiplier
-        for (std::size_t i = 0; i < _iter_times_vector.size(); i++)
-        {
-            if (_iter_times > _iter_times_vector[i])
-            {
-                multiplier = _multiplier_vector[i];
-            }
-        }
-        dt = _ts_prev.dt() * multiplier;
+        dt = _ts_prev.dt() * findMultiplier(_iter_times);
     }
 
     dt = std::min(std::max(dt, _min_dt), _max_dt);
diff --git a/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.h b/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.h
index d2f8ae3e59503d022b5275eff59b25f8db743aef..ac73d8839a75ff576962fc712850352e642aa8aa 100644
--- a/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.h
+++ b/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.h
@@ -105,6 +105,9 @@ private:
     /// Calculate the next time step size.
     double getNextTimeStepSize() const;
 
+    /// Find a multiplier for the given number of iterations.
+    double findMultiplier(int number_iterations) const;
+
     /// This vector stores the number of iterations to which the respective
     /// multiplier coefficient will be applied.
     const std::vector<int> _iter_times_vector;