From a90e906f1876865afcce9ef9208e1bc50f10fecd Mon Sep 17 00:00:00 2001 From: Norihiro Watanabe <norihiro.watanabe@ufz.de> Date: Wed, 22 Jun 2016 06:47:50 +0200 Subject: [PATCH] move to cpp: NonlinearSolver --- ...inearSolver-impl.h => NonlinearSolver.cpp} | 21 +++++++++---------- NumLib/ODESolver/NonlinearSolver.h | 4 ---- 2 files changed, 10 insertions(+), 15 deletions(-) rename NumLib/ODESolver/{NonlinearSolver-impl.h => NonlinearSolver.cpp} (95%) diff --git a/NumLib/ODESolver/NonlinearSolver-impl.h b/NumLib/ODESolver/NonlinearSolver.cpp similarity index 95% rename from NumLib/ODESolver/NonlinearSolver-impl.h rename to NumLib/ODESolver/NonlinearSolver.cpp index 7f34a5be542..f41741504af 100644 --- a/NumLib/ODESolver/NonlinearSolver-impl.h +++ b/NumLib/ODESolver/NonlinearSolver.cpp @@ -7,28 +7,28 @@ * */ -#include <logog/include/logog.hpp> +#include "NonlinearSolver.h" // for debugging // #include <iostream> +#include <logog/include/logog.hpp> + #include "BaseLib/ConfigTree.h" #include "BaseLib/Error.h" #include "MathLib/LinAlg/BLAS.h" #include "MathLib/LinAlg/VectorNorms.h" #include "NumLib/DOF/GlobalMatrixProviders.h" -#include "NonlinearSolver.h" - namespace NumLib { -inline void NonlinearSolver<NonlinearSolverTag::Picard>::assemble( +void NonlinearSolver<NonlinearSolverTag::Picard>::assemble( GlobalVector const& x) const { _equation_system->assembleMatricesPicard(x); } -inline bool NonlinearSolver<NonlinearSolverTag::Picard>::solve( +bool NonlinearSolver<NonlinearSolverTag::Picard>::solve( GlobalVector& x, std::function<void(unsigned, GlobalVector const&)> const& postIterationCallback) { @@ -143,7 +143,7 @@ inline bool NonlinearSolver<NonlinearSolverTag::Picard>::solve( return error_norms_met; } -inline void NonlinearSolver<NonlinearSolverTag::Newton>::assemble( +void NonlinearSolver<NonlinearSolverTag::Newton>::assemble( GlobalVector const& x) const { _equation_system->assembleResidualNewton(x); @@ -152,7 +152,7 @@ inline void NonlinearSolver<NonlinearSolverTag::Newton>::assemble( // equation every time and could not forget it. } -inline bool NonlinearSolver<NonlinearSolverTag::Newton>::solve( +bool NonlinearSolver<NonlinearSolverTag::Newton>::solve( GlobalVector& x, std::function<void(unsigned, GlobalVector const&)> const& postIterationCallback) { @@ -279,10 +279,9 @@ inline bool NonlinearSolver<NonlinearSolverTag::Newton>::solve( return error_norms_met; } -inline std::pair<std::unique_ptr<NonlinearSolverBase>, NonlinearSolverTag> -createNonlinearSolver( - MathLib::LinearSolver<GlobalMatrix, GlobalVector>& linear_solver, - BaseLib::ConfigTree const& config) +std::pair<std::unique_ptr<NonlinearSolverBase>, NonlinearSolverTag> +createNonlinearSolver(MathLib::LinearSolver<GlobalMatrix, GlobalVector>& linear_solver, + BaseLib::ConfigTree const& config) { using AbstractNLS = NonlinearSolverBase; diff --git a/NumLib/ODESolver/NonlinearSolver.h b/NumLib/ODESolver/NonlinearSolver.h index 140fe406c23..6d1ea83a749 100644 --- a/NumLib/ODESolver/NonlinearSolver.h +++ b/NumLib/ODESolver/NonlinearSolver.h @@ -14,8 +14,6 @@ #include <utility> #include <logog/include/logog.hpp> -#include "MathLib/LinAlg/LinearSolver.h" - #include "NonlinearSystem.h" #include "Types.h" @@ -201,6 +199,4 @@ createNonlinearSolver( } // namespace NumLib -#include "NonlinearSolver-impl.h" - #endif // NUMLIB_NONLINEARSOLVER_H -- GitLab