From d989aa1d78e12009ae49bef088ec2bbfa91f6327 Mon Sep 17 00:00:00 2001
From: Christoph Lehmann <christoph.lehmann@ufz.de>
Date: Sat, 23 Apr 2016 13:44:22 +0200
Subject: [PATCH] [MaL] moved create function to separate file

---
 MathLib/ODE/ConcreteODESolver.h | 12 ----------
 MathLib/ODE/ODESolverBuilder.h  | 41 +++++++++++++++++++++++++++++++++
 2 files changed, 41 insertions(+), 12 deletions(-)
 create mode 100644 MathLib/ODE/ODESolverBuilder.h

diff --git a/MathLib/ODE/ConcreteODESolver.h b/MathLib/ODE/ConcreteODESolver.h
index a0022dae8ae..3a27d78d4fc 100644
--- a/MathLib/ODE/ConcreteODESolver.h
+++ b/MathLib/ODE/ConcreteODESolver.h
@@ -110,18 +110,6 @@ private:
 	createODESolver<NumEquations>(BaseLib::ConfigTree const& config);
 };
 
-template <unsigned NumEquations>
-std::unique_ptr<ODESolver<NumEquations>> createODESolver(
-    BaseLib::ConfigTree const& config)
-{
-#ifdef CVODE_FOUND
-	return std::unique_ptr<ODESolver<NumEquations>>(
-	    new ConcreteODESolver<CVodeSolver, NumEquations>(config));
-#else
-	return nullptr;
-#endif  // CVODE_FOUND
-}
-
 }  // namespace MathLib
 
 #endif  // MATHLIB_ODE_CONCRETEODESOLVER_H
diff --git a/MathLib/ODE/ODESolverBuilder.h b/MathLib/ODE/ODESolverBuilder.h
new file mode 100644
index 00000000000..213f5ff2f97
--- /dev/null
+++ b/MathLib/ODE/ODESolverBuilder.h
@@ -0,0 +1,41 @@
+/**
+ * \copyright
+ * Copyright (c) 2012-2016, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ *
+ */
+
+#ifndef MATHLIB_ODE_ODESOLVERBUILDER_H
+#define MATHLIB_ODE_ODESOLVERBUILDER_H
+
+#include "ODESolver.h"
+#include "ConcreteODESolver.h"
+
+#ifdef CVODE_FOUND
+#include "CVodeSolver.h"
+#endif
+
+namespace BaseLib
+{
+class ConfigTree;
+}
+
+namespace MathLib
+{
+template <unsigned NumEquations>
+std::unique_ptr<ODESolver<NumEquations>> createODESolver(
+    BaseLib::ConfigTree const& config)
+{
+#ifdef CVODE_FOUND
+	return std::unique_ptr<ODESolver<NumEquations>>(
+	    new ConcreteODESolver<CVodeSolver, NumEquations>(config));
+#else
+	return nullptr;
+#endif  // CVODE_FOUND
+}
+
+}  // namespace MathLib
+
+#endif  // MATHLIB_ODE_ODESOLVERBUILDER_H
-- 
GitLab