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;