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