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