diff --git a/NumLib/ODESolver/NonlinearSolver.cpp b/NumLib/ODESolver/NonlinearSolver.cpp
index 2b1b55f783e0461294c3ba01aebc92fdaf721710..34b68924b23ec93d04a43653bd76610df9c3efa8 100644
--- a/NumLib/ODESolver/NonlinearSolver.cpp
+++ b/NumLib/ODESolver/NonlinearSolver.cpp
@@ -28,7 +28,8 @@ void NonlinearSolver<NonlinearSolverTag::Picard>::assemble(
 
 bool NonlinearSolver<NonlinearSolverTag::Picard>::solve(
     GlobalVector& x,
-    std::function<void(unsigned, GlobalVector const&)> const& postIterationCallback)
+    std::function<void(int, GlobalVector const&)> const&
+        postIterationCallback)
 {
     namespace LinAlg = MathLib::LinAlg;
     auto& sys = *_equation_system;
@@ -45,7 +46,7 @@ bool NonlinearSolver<NonlinearSolverTag::Picard>::solve(
 
     _convergence_criterion->preFirstIteration();
 
-    unsigned iteration = 1;
+    int iteration = 1;
     for (; iteration <= _maxiter;
          ++iteration, _convergence_criterion->reset())
     {
@@ -174,7 +175,8 @@ void NonlinearSolver<NonlinearSolverTag::Newton>::assemble(
 
 bool NonlinearSolver<NonlinearSolverTag::Newton>::solve(
     GlobalVector& x,
-    std::function<void(unsigned, GlobalVector const&)> const& postIterationCallback)
+    std::function<void(int, GlobalVector const&)> const&
+        postIterationCallback)
 {
     namespace LinAlg = MathLib::LinAlg;
     auto& sys = *_equation_system;
@@ -195,7 +197,7 @@ bool NonlinearSolver<NonlinearSolverTag::Newton>::solve(
 
     _convergence_criterion->preFirstIteration();
 
-    unsigned iteration = 1;
+    int iteration = 1;
     for (; iteration <= _maxiter;
          ++iteration, _convergence_criterion->reset())
     {
@@ -320,7 +322,7 @@ createNonlinearSolver(GlobalLinearSolver& linear_solver,
     //! \ogs_file_param{prj__nonlinear_solvers__nonlinear_solver__type}
     auto const type = config.getConfigParameter<std::string>("type");
     //! \ogs_file_param{prj__nonlinear_solvers__nonlinear_solver__max_iter}
-    auto const max_iter = config.getConfigParameter<unsigned>("max_iter");
+    auto const max_iter = config.getConfigParameter<int>("max_iter");
 
     if (type == "Picard") {
         auto const tag = NonlinearSolverTag::Picard;
diff --git a/NumLib/ODESolver/NonlinearSolver.h b/NumLib/ODESolver/NonlinearSolver.h
index a67b22fc07137fb600ddb3a8856bc4bba0177b2a..d2eb306f08c1a24b271fd1e84395544b48d0ce44 100644
--- a/NumLib/ODESolver/NonlinearSolver.h
+++ b/NumLib/ODESolver/NonlinearSolver.h
@@ -54,8 +54,8 @@ public:
      * \retval false otherwise
      */
     virtual bool solve(GlobalVector& x,
-                       std::function<void(unsigned, GlobalVector const&)> const&
-                           postIterationCallback) = 0;
+        std::function<void(int, GlobalVector const&)> const&
+            postIterationCallback) = 0;
 
     virtual ~NonlinearSolverBase() = default;
 };
@@ -89,7 +89,7 @@ public:
      * \param damping \copydoc _damping
      */
     explicit NonlinearSolver(GlobalLinearSolver& linear_solver,
-                             const unsigned maxiter,
+                             int const maxiter,
                              double const damping = 1.0)
         : _linear_solver(linear_solver), _maxiter(maxiter), _damping(damping)
     {
@@ -106,8 +106,8 @@ public:
     void assemble(GlobalVector const& x) const override;
 
     bool solve(GlobalVector& x,
-               std::function<void(unsigned, GlobalVector const&)> const&
-                   postIterationCallback) override;
+        std::function<void(int, GlobalVector const&)> const&
+            postIterationCallback) override;
 
 private:
     GlobalLinearSolver& _linear_solver;
@@ -115,7 +115,7 @@ private:
 
     // TODO doc
     ConvergenceCriterion* _convergence_criterion = nullptr;
-    const unsigned _maxiter;  //!< maximum number of iterations
+    int const _maxiter;  //!< maximum number of iterations
 
     //! A positive damping factor. The default value 1.0 gives a non-damped
     //! Newton method. Common values are in the range 0.5 to 0.7 for somewhat
@@ -149,7 +149,7 @@ public:
      *                equation.
      */
     explicit NonlinearSolver(GlobalLinearSolver& linear_solver,
-                             const unsigned maxiter)
+                             const int maxiter)
         : _linear_solver(linear_solver), _maxiter(maxiter)
     {
     }
@@ -165,8 +165,8 @@ public:
     void assemble(GlobalVector const& x) const override;
 
     bool solve(GlobalVector& x,
-               std::function<void(unsigned, GlobalVector const&)> const&
-                   postIterationCallback) override;
+        std::function<void(int, GlobalVector const&)> const&
+            postIterationCallback) override;
 
 private:
     GlobalLinearSolver& _linear_solver;
@@ -174,7 +174,7 @@ private:
 
     // TODO doc
     ConvergenceCriterion* _convergence_criterion = nullptr;
-    const unsigned _maxiter;  //!< maximum number of iterations
+    const int _maxiter;  //!< maximum number of iterations
 
     std::size_t _A_id = 0u;      //!< ID of the \f$ A \f$ matrix.
     std::size_t _rhs_id = 0u;    //!< ID of the right-hand side vector.
diff --git a/ProcessLib/UncoupledProcessesTimeLoop.cpp b/ProcessLib/UncoupledProcessesTimeLoop.cpp
index aaadfbe38d8afcbf4d5443b2c7826a0c60586801..31ce779378481abf9942e05f18a5127bf5a71717 100644
--- a/ProcessLib/UncoupledProcessesTimeLoop.cpp
+++ b/ProcessLib/UncoupledProcessesTimeLoop.cpp
@@ -127,12 +127,12 @@ std::unique_ptr<UncoupledProcessesTimeLoop> createUncoupledProcessesTimeLoop(
 
     std::vector<std::unique_ptr<NumLib::ConvergenceCriterion>>
         global_coupling_conv_criteria;
-    unsigned max_coupling_iterations = 1;
+    int max_coupling_iterations = 1;
     if (coupling_config)
     {
         max_coupling_iterations
             //! \ogs_file_param{prj__time_loop__global_process_coupling__max_iter}
-            = coupling_config->getConfigParameter<unsigned>("max_iter");
+            = coupling_config->getConfigParameter<int>("max_iter");
 
         auto const& coupling_convergence_criteria_config =
             //! \ogs_file_param{prj__time_loop__global_process_coupling__convergence_criteria}
@@ -257,7 +257,7 @@ bool solveOneTimeStepOneProcess(int const process_id, GlobalVector& x,
 
     time_disc.nextTimestep(t, delta_t);
 
-    auto const post_iteration_callback = [&](unsigned iteration,
+    auto const post_iteration_callback = [&](int iteration,
                                              GlobalVector const& x) {
         output_control.doOutputNonlinearIteration(process, process_id,
                                                   timestep, t, x, iteration);
@@ -277,7 +277,7 @@ bool solveOneTimeStepOneProcess(int const process_id, GlobalVector& x,
 UncoupledProcessesTimeLoop::UncoupledProcessesTimeLoop(
     std::unique_ptr<Output>&& output,
     std::vector<std::unique_ptr<ProcessData>>&& per_process_data,
-    const unsigned global_coupling_max_iterations,
+    const int global_coupling_max_iterations,
     std::vector<std::unique_ptr<NumLib::ConvergenceCriterion>>&&
         global_coupling_conv_crit,
     const double start_time, const double end_time)
@@ -704,7 +704,7 @@ bool UncoupledProcessesTimeLoop::solveCoupledEquationSystemsByStaggeredScheme(
     };
 
     bool coupling_iteration_converged = true;
-    for (unsigned global_coupling_iteration = 0;
+    for (int global_coupling_iteration = 0;
          global_coupling_iteration < _global_coupling_max_iterations;
          global_coupling_iteration++, resetCouplingConvergenceCriteria())
     {
diff --git a/ProcessLib/UncoupledProcessesTimeLoop.h b/ProcessLib/UncoupledProcessesTimeLoop.h
index 9ce68fbb2a9057abd52500b4013bf181ce253197..9620a315ec9d15d8d49ef1c3c8d4780a4b7f6668 100644
--- a/ProcessLib/UncoupledProcessesTimeLoop.h
+++ b/ProcessLib/UncoupledProcessesTimeLoop.h
@@ -38,7 +38,7 @@ public:
     explicit UncoupledProcessesTimeLoop(
         std::unique_ptr<Output>&& output,
         std::vector<std::unique_ptr<ProcessData>>&& per_process_data,
-        const unsigned global_coupling_max_iterations,
+        const int global_coupling_max_iterations,
         std::vector<std::unique_ptr<NumLib::ConvergenceCriterion>>&&
             global_coupling_conv_crit,
         const double start_time, const double end_time);
@@ -70,7 +70,7 @@ private:
     const double _end_time;
 
     /// Maximum iterations of the global coupling.
-    const unsigned _global_coupling_max_iterations;
+    const int _global_coupling_max_iterations;
     /// Convergence criteria of processes for the global coupling iterations.
     std::vector<std::unique_ptr<NumLib::ConvergenceCriterion>>
         _global_coupling_conv_crit;