From 7599fe57d0c850419119af1f5dfad6ff5824d036 Mon Sep 17 00:00:00 2001 From: Kilian Weishaupt <kilian.weishaupt@iws.uni-stuttgart.de> Date: Fri, 19 Jan 2018 11:42:03 +0100 Subject: [PATCH] [linear] Remove TypeTag from LinearSolverAcceptsMultiTypeMatrix traits class --- .../linearsolveracceptsmultitypematrix.hh | 42 ++++++++----------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/dumux/linear/linearsolveracceptsmultitypematrix.hh b/dumux/linear/linearsolveracceptsmultitypematrix.hh index a45a4d6a77..da4058a4a5 100644 --- a/dumux/linear/linearsolveracceptsmultitypematrix.hh +++ b/dumux/linear/linearsolveracceptsmultitypematrix.hh @@ -29,54 +29,48 @@ namespace Dumux { //! The default -template<typename TypeTag, typename LinearSolver> -struct LinearSolverAcceptsMultiTypeMatrixImpl +template<typename LinearSolver> +struct LinearSolverAcceptsMultiTypeMatrix { static constexpr bool value = true; }; -/*! - * \ingroup Linear - * \brief Trait checking if linear solvers accept Dune::MultiTypeBlockMatrix or we need to convert the matrix - */ -template <typename TypeTag> -using LinearSolverAcceptsMultiTypeMatrix = LinearSolverAcceptsMultiTypeMatrixImpl<TypeTag, typename GET_PROP_TYPE(TypeTag, LinearSolver)>; //! Solvers that don't accept multi-type matrices //! Those are all with ILU preconditioner that doesn't support the additional block level //! And the direct solvers that have BCRS Matrix hardcoded -template<typename TypeTag> -struct LinearSolverAcceptsMultiTypeMatrixImpl<TypeTag, ILUnBiCGSTABBackend> +template<> +struct LinearSolverAcceptsMultiTypeMatrix<ILUnBiCGSTABBackend> { static constexpr bool value = false; }; -template<typename TypeTag> -struct LinearSolverAcceptsMultiTypeMatrixImpl<TypeTag, ILUnCGBackend> +template<> +struct LinearSolverAcceptsMultiTypeMatrix<ILUnCGBackend> { static constexpr bool value = false; }; -template<typename TypeTag> -struct LinearSolverAcceptsMultiTypeMatrixImpl<TypeTag, ILU0BiCGSTABBackend> +template<> +struct LinearSolverAcceptsMultiTypeMatrix<ILU0BiCGSTABBackend> { static constexpr bool value = false; }; -template<typename TypeTag> -struct LinearSolverAcceptsMultiTypeMatrixImpl<TypeTag, ILU0CGBackend> +template<> +struct LinearSolverAcceptsMultiTypeMatrix<ILU0CGBackend> { static constexpr bool value = false; }; -template<typename TypeTag> -struct LinearSolverAcceptsMultiTypeMatrixImpl<TypeTag, ILU0RestartedGMResBackend> +template<> +struct LinearSolverAcceptsMultiTypeMatrix<ILU0RestartedGMResBackend> { static constexpr bool value = false; }; -template<typename TypeTag> -struct LinearSolverAcceptsMultiTypeMatrixImpl<TypeTag, ILUnRestartedGMResBackend> +template<> +struct LinearSolverAcceptsMultiTypeMatrix<ILUnRestartedGMResBackend> { static constexpr bool value = false; }; #if HAVE_SUPERLU -template<typename TypeTag> -struct LinearSolverAcceptsMultiTypeMatrixImpl<TypeTag, SuperLUBackend> +template<> +struct LinearSolverAcceptsMultiTypeMatrix<SuperLUBackend> { static constexpr bool value = false; }; #endif // HAVE_SUPERLU #if HAVE_UMFPACK -template<typename TypeTag> -struct LinearSolverAcceptsMultiTypeMatrixImpl<TypeTag, UMFPackBackend> +template<> +struct LinearSolverAcceptsMultiTypeMatrix<UMFPackBackend> { static constexpr bool value = false; }; #endif // HAVE_UMFPACK -- GitLab