diff --git a/MathLib/ODE/ConcreteODESolver.h b/MathLib/ODE/ConcreteODESolver.h index a0022dae8aee47affc8d7ab1fa4f302271c3eb3e..3a27d78d4fcd9207aed68c5cffdfdf15ac4ede8d 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 0000000000000000000000000000000000000000..213f5ff2f97c20e4d8b78a0a25f9cd5dea1072f8 --- /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