From c6f24926c9259ffba6e56c04c7b8221ce5446ada Mon Sep 17 00:00:00 2001 From: Ivan Buntic <st116086@stud.uni-stuttgart.de> Date: Fri, 17 Sep 2021 14:25:05 +0200 Subject: [PATCH] [discmethod] Update laws in flux and multidomain to use discretization tags --- dumux/flux/box/darcyslaw.hh | 4 ++-- dumux/flux/box/fickslaw.hh | 4 ++-- dumux/flux/box/forchheimerslaw.hh | 7 ++++--- dumux/flux/box/fourierslaw.hh | 4 ++-- dumux/flux/box/fourierslawnonequilibrium.hh | 4 ++-- dumux/flux/box/maxwellstefanslaw.hh | 4 ++-- dumux/flux/ccmpfa/darcyslaw.hh | 7 ++++--- dumux/flux/ccmpfa/fickslaw.hh | 7 ++++--- dumux/flux/ccmpfa/fourierslaw.hh | 7 ++++--- dumux/flux/cctpfa/darcyslaw.hh | 10 ++++++---- dumux/flux/cctpfa/fickslaw.hh | 10 ++++++---- dumux/flux/cctpfa/forchheimerslaw.hh | 7 ++++--- dumux/flux/cctpfa/fourierslaw.hh | 9 +++++---- dumux/flux/cctpfa/fourierslawnonequilibrium.hh | 9 +++++---- dumux/flux/cctpfa/maxwellstefanslaw.hh | 8 +++++--- dumux/flux/darcyslaw_fwd.hh | 4 ++-- dumux/flux/effectivestresslaw_fwd.hh | 2 +- dumux/flux/fickslaw_fwd.hh | 4 ++-- dumux/flux/forchheimerslaw_fwd.hh | 9 +++++---- dumux/flux/fourierslaw_fwd.hh | 4 ++-- dumux/flux/fourierslawnonequilibrium_fwd.hh | 4 ++-- dumux/flux/hookeslaw_fwd.hh | 2 +- dumux/flux/maxwellstefanslaw_fwd.hh | 4 ++-- dumux/flux/staggered/freeflow/fickslaw.hh | 8 +++++--- dumux/flux/staggered/freeflow/fourierslaw.hh | 7 ++++--- dumux/flux/staggered/freeflow/maxwellstefanslaw.hh | 8 +++++--- .../boundary/stokesdarcy/couplingdata.hh | 14 +++++++------- dumux/multidomain/facet/box/fickslaw.hh | 4 ++-- dumux/multidomain/facet/box/fourierslaw.hh | 4 ++-- .../facet/cellcentered/tpfa/darcyslaw.hh | 6 ++++-- .../facet/cellcentered/tpfa/fickslaw.hh | 14 ++++++++------ .../facet/cellcentered/tpfa/fourierslaw.hh | 14 ++++++++------ 32 files changed, 119 insertions(+), 94 deletions(-) diff --git a/dumux/flux/box/darcyslaw.hh b/dumux/flux/box/darcyslaw.hh index 0c011f5d1d..a1326195e3 100644 --- a/dumux/flux/box/darcyslaw.hh +++ b/dumux/flux/box/darcyslaw.hh @@ -37,7 +37,7 @@ namespace Dumux { // forward declaration -template<class TypeTag, DiscretizationMethod discMethod> +template<class TypeTag, class DiscretizationMethod> class DarcysLawImplementation; // forward declaration @@ -49,7 +49,7 @@ class BoxDarcysLaw; * \brief Specialization of Darcy's Law for the box method. */ template<class TypeTag> -class DarcysLawImplementation<TypeTag, DiscretizationMethod::box> +class DarcysLawImplementation<TypeTag, DiscretizationMethods::Box> : public BoxDarcysLaw<GetPropType<TypeTag, Properties::Scalar>, GetPropType<TypeTag, Properties::GridGeometry>> { }; diff --git a/dumux/flux/box/fickslaw.hh b/dumux/flux/box/fickslaw.hh index 61b7a17b26..0349e2549c 100644 --- a/dumux/flux/box/fickslaw.hh +++ b/dumux/flux/box/fickslaw.hh @@ -39,7 +39,7 @@ namespace Dumux { // forward declaration -template<class TypeTag, DiscretizationMethod discMethod, ReferenceSystemFormulation referenceSystem> +template<class TypeTag, class DiscretizationMethod, ReferenceSystemFormulation referenceSystem> class FicksLawImplementation; /*! @@ -47,7 +47,7 @@ class FicksLawImplementation; * \brief Specialization of Fick's Law for the box method. */ template <class TypeTag, ReferenceSystemFormulation referenceSystem> -class FicksLawImplementation<TypeTag, DiscretizationMethod::box, referenceSystem> +class FicksLawImplementation<TypeTag, DiscretizationMethods::Box, referenceSystem> { using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Problem = GetPropType<TypeTag, Properties::Problem>; diff --git a/dumux/flux/box/forchheimerslaw.hh b/dumux/flux/box/forchheimerslaw.hh index eee7bb7b32..0ce29b5f0e 100644 --- a/dumux/flux/box/forchheimerslaw.hh +++ b/dumux/flux/box/forchheimerslaw.hh @@ -39,7 +39,7 @@ namespace Dumux { // forward declarations -template<class TypeTag, class ForchheimerVelocity, DiscretizationMethod discMethod> +template<class TypeTag, class ForchheimerVelocity, class DiscretizationMethod> class ForchheimersLawImplementation; /*! @@ -59,7 +59,7 @@ class BoxForchheimersLaw; * \brief Forchheimer's law for box scheme */ template <class TypeTag, class ForchheimerVelocity> -class ForchheimersLawImplementation<TypeTag, ForchheimerVelocity, DiscretizationMethod::box> +class ForchheimersLawImplementation<TypeTag, ForchheimerVelocity, DiscretizationMethods::Box> : public BoxForchheimersLaw<GetPropType<TypeTag, Properties::Scalar>, GetPropType<TypeTag, Properties::GridGeometry>, ForchheimerVelocity> @@ -88,8 +88,9 @@ public: //! state the scalar type of the law using Scalar = ScalarType; + using DiscretizationMethod = DiscretizationMethods::Box; //! state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::box; + static constexpr DiscretizationMethod discMethod{}; /*! \brief Compute the advective flux of a phase across * the given sub-control volume face using the Forchheimer equation. diff --git a/dumux/flux/box/fourierslaw.hh b/dumux/flux/box/fourierslaw.hh index 988f87024b..6a825e6946 100644 --- a/dumux/flux/box/fourierslaw.hh +++ b/dumux/flux/box/fourierslaw.hh @@ -33,7 +33,7 @@ namespace Dumux { // forward declaration -template<class TypeTag, DiscretizationMethod discMethod> +template<class TypeTag, class DiscretizationMethod> class FouriersLawImplementation; /*! @@ -41,7 +41,7 @@ class FouriersLawImplementation; * \brief Specialization of Fourier's Law for the box method. */ template <class TypeTag> -class FouriersLawImplementation<TypeTag, DiscretizationMethod::box> +class FouriersLawImplementation<TypeTag, DiscretizationMethods::Box> { using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Problem = GetPropType<TypeTag, Properties::Problem>; diff --git a/dumux/flux/box/fourierslawnonequilibrium.hh b/dumux/flux/box/fourierslawnonequilibrium.hh index 40bf51f39a..22ea175d80 100644 --- a/dumux/flux/box/fourierslawnonequilibrium.hh +++ b/dumux/flux/box/fourierslawnonequilibrium.hh @@ -36,7 +36,7 @@ namespace Dumux { // forward declaration -template <class TypeTag, DiscretizationMethod discMethod> +template <class TypeTag, class DiscretizationMethod> class FouriersLawNonEquilibriumImplementation; /*! @@ -44,7 +44,7 @@ class FouriersLawNonEquilibriumImplementation; * \brief Specialization of Fourier's Law for the box method for thermal nonequilibrium models. */ template <class TypeTag> -class FouriersLawNonEquilibriumImplementation<TypeTag, DiscretizationMethod::box> +class FouriersLawNonEquilibriumImplementation<TypeTag, DiscretizationMethods::Box> { using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Problem = GetPropType<TypeTag, Properties::Problem>; diff --git a/dumux/flux/box/maxwellstefanslaw.hh b/dumux/flux/box/maxwellstefanslaw.hh index 76b2b5b583..fa2a845e9a 100644 --- a/dumux/flux/box/maxwellstefanslaw.hh +++ b/dumux/flux/box/maxwellstefanslaw.hh @@ -40,7 +40,7 @@ namespace Dumux { // forward declaration -template <class TypeTag, DiscretizationMethod discMethod, ReferenceSystemFormulation referenceSystem> +template <class TypeTag, class DiscretizationMethod, ReferenceSystemFormulation referenceSystem> class MaxwellStefansLawImplementation; /*! @@ -48,7 +48,7 @@ class MaxwellStefansLawImplementation; * \brief Specialization of Maxwell Stefan's Law for the Box method. */ template <class TypeTag, ReferenceSystemFormulation referenceSystem> -class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethod::box, referenceSystem> +class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethods::Box, referenceSystem> { using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Problem = GetPropType<TypeTag, Properties::Problem>; diff --git a/dumux/flux/ccmpfa/darcyslaw.hh b/dumux/flux/ccmpfa/darcyslaw.hh index 97a5a3a2d8..9627f8e7ac 100644 --- a/dumux/flux/ccmpfa/darcyslaw.hh +++ b/dumux/flux/ccmpfa/darcyslaw.hh @@ -35,7 +35,7 @@ namespace Dumux { //! forward declaration of the method-specific implementation -template<class TypeTag, DiscretizationMethod discMethod> +template<class TypeTag, class DiscretizationMethod> class DarcysLawImplementation; /*! @@ -44,7 +44,7 @@ class DarcysLawImplementation; * with multi-point flux approximation. */ template<class TypeTag> -class DarcysLawImplementation<TypeTag, DiscretizationMethod::ccmpfa> +class DarcysLawImplementation<TypeTag, DiscretizationMethods::CCMpfa> { using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Problem = GetPropType<TypeTag, Properties::Problem>; @@ -151,8 +151,9 @@ class DarcysLawImplementation<TypeTag, DiscretizationMethod::ccmpfa> }; public: + using DiscretizationMethod = DiscretizationMethods::CCMpfa; // state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::ccmpfa; + static constexpr DiscretizationMethod discMethod{}; // export the type for the corresponding cache using Cache = MpfaDarcysLawCache; diff --git a/dumux/flux/ccmpfa/fickslaw.hh b/dumux/flux/ccmpfa/fickslaw.hh index 0e13b4eebc..071a9b2e23 100644 --- a/dumux/flux/ccmpfa/fickslaw.hh +++ b/dumux/flux/ccmpfa/fickslaw.hh @@ -34,7 +34,7 @@ namespace Dumux { //! forward declaration of the method-specific implemetation -template<class TypeTag, DiscretizationMethod discMethod, ReferenceSystemFormulation referenceSystem> +template<class TypeTag, class DiscretizationMethod, ReferenceSystemFormulation referenceSystem> class FicksLawImplementation; /*! @@ -42,7 +42,7 @@ class FicksLawImplementation; * \brief Fick's law for cell-centered finite volume schemes with multi-point flux approximation */ template <class TypeTag, ReferenceSystemFormulation referenceSystem> -class FicksLawImplementation<TypeTag, DiscretizationMethod::ccmpfa, referenceSystem> +class FicksLawImplementation<TypeTag, DiscretizationMethods::CCMpfa, referenceSystem> { using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Problem = GetPropType<TypeTag, Properties::Problem>; @@ -162,8 +162,9 @@ class FicksLawImplementation<TypeTag, DiscretizationMethod::ccmpfa, referenceSys }; public: + using DiscretizationMethod = DiscretizationMethods::CCMpfa; // state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::ccmpfa; + static constexpr DiscretizationMethod discMethod{}; //return the reference system static constexpr ReferenceSystemFormulation referenceSystemFormulation() diff --git a/dumux/flux/ccmpfa/fourierslaw.hh b/dumux/flux/ccmpfa/fourierslaw.hh index 55fe8dbd46..c094d4abed 100644 --- a/dumux/flux/ccmpfa/fourierslaw.hh +++ b/dumux/flux/ccmpfa/fourierslaw.hh @@ -33,7 +33,7 @@ namespace Dumux { //! forward declaration of the method-specific implementation -template<class TypeTag, DiscretizationMethod discMethod> +template<class TypeTag, class DiscretizationMethod> class FouriersLawImplementation; /*! @@ -41,7 +41,7 @@ class FouriersLawImplementation; * \brief Fourier's law for cell-centered finite volume schemes with two-point flux approximation */ template <class TypeTag> -class FouriersLawImplementation<TypeTag, DiscretizationMethod::ccmpfa> +class FouriersLawImplementation<TypeTag, DiscretizationMethods::CCMpfa> { using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Problem = GetPropType<TypeTag, Properties::Problem>; @@ -148,8 +148,9 @@ class FouriersLawImplementation<TypeTag, DiscretizationMethod::ccmpfa> }; public: + using DiscretizationMethod = DiscretizationMethods::CCMpfa; // state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::ccmpfa; + static constexpr DiscretizationMethod discMethod{}; // state the type for the corresponding cache and its filler using Cache = MpfaFouriersLawCache; diff --git a/dumux/flux/cctpfa/darcyslaw.hh b/dumux/flux/cctpfa/darcyslaw.hh index 98e6bc3f7a..fa9b7eb164 100644 --- a/dumux/flux/cctpfa/darcyslaw.hh +++ b/dumux/flux/cctpfa/darcyslaw.hh @@ -35,7 +35,7 @@ namespace Dumux { // forward declarations -template<class TypeTag, DiscretizationMethod discMethod> +template<class TypeTag, class DiscretizationMethod> class DarcysLawImplementation; /*! @@ -55,7 +55,7 @@ class CCTpfaDarcysLaw; * \note Darcy's law is specialized for network and surface grids (i.e. if grid dim < dimWorld) */ template <class TypeTag> -class DarcysLawImplementation<TypeTag, DiscretizationMethod::cctpfa> +class DarcysLawImplementation<TypeTag, DiscretizationMethods::CCTpfa> : public CCTpfaDarcysLaw<GetPropType<TypeTag, Properties::Scalar>, GetPropType<TypeTag, Properties::GridGeometry>, (GetPropType<TypeTag, Properties::GridGeometry>::GridView::dimension < GetPropType<TypeTag, Properties::GridGeometry>::GridView::dimensionworld)> @@ -145,8 +145,9 @@ class CCTpfaDarcysLaw<ScalarType, GridGeometry, /*isNetwork*/ false> //! state the scalar type of the law using Scalar = ScalarType; + using DiscretizationMethod = DiscretizationMethods::CCTpfa; //! state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::cctpfa; + static constexpr DiscretizationMethod discMethod{}; //! state the type for the corresponding cache using Cache = TpfaDarcysLawCache<ThisType, GridGeometry>; @@ -309,8 +310,9 @@ public: //! state the scalar type of the law using Scalar = ScalarType; + using DiscretizationMethod = DiscretizationMethods::CCTpfa; //! state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::cctpfa; + static constexpr DiscretizationMethod discMethod{}; //! state the type for the corresponding cache using Cache = TpfaDarcysLawCache<ThisType, GridGeometry>; diff --git a/dumux/flux/cctpfa/fickslaw.hh b/dumux/flux/cctpfa/fickslaw.hh index 29c1aa8ea5..7876e600e1 100644 --- a/dumux/flux/cctpfa/fickslaw.hh +++ b/dumux/flux/cctpfa/fickslaw.hh @@ -39,7 +39,7 @@ namespace Dumux { // forward declaration -template<class TypeTag, DiscretizationMethod discMethod, ReferenceSystemFormulation referenceSystem> +template<class TypeTag, class DiscretizationMethod, ReferenceSystemFormulation referenceSystem> class FicksLawImplementation; /*! @@ -47,9 +47,9 @@ class FicksLawImplementation; * \brief Fick's law for cell-centered finite volume schemes with two-point flux approximation */ template <class TypeTag, ReferenceSystemFormulation referenceSystem> -class FicksLawImplementation<TypeTag, DiscretizationMethod::cctpfa, referenceSystem> +class FicksLawImplementation<TypeTag, DiscretizationMethods::CCTpfa, referenceSystem> { - using Implementation = FicksLawImplementation<TypeTag, DiscretizationMethod::cctpfa, referenceSystem>; + using Implementation = FicksLawImplementation<TypeTag, DiscretizationMethods::CCTpfa, referenceSystem>; using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Problem = GetPropType<TypeTag, Properties::Problem>; using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; @@ -117,8 +117,10 @@ class FicksLawImplementation<TypeTag, DiscretizationMethod::cctpfa, referenceSys }; public: + using DiscretizationMethod = DiscretizationMethods::CCTpfa; //! state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::cctpfa; + static constexpr DiscretizationMethod discMethod{}; + //! Return the reference system static constexpr ReferenceSystemFormulation referenceSystemFormulation() { return referenceSystem; } diff --git a/dumux/flux/cctpfa/forchheimerslaw.hh b/dumux/flux/cctpfa/forchheimerslaw.hh index ccc07f448e..7e1065254d 100644 --- a/dumux/flux/cctpfa/forchheimerslaw.hh +++ b/dumux/flux/cctpfa/forchheimerslaw.hh @@ -39,7 +39,7 @@ namespace Dumux { // forward declarations -template<class TypeTag, class ForchheimerVelocity, DiscretizationMethod discMethod> +template<class TypeTag, class ForchheimerVelocity, class DiscretizationMethod> class ForchheimersLawImplementation; /*! @@ -60,7 +60,7 @@ class CCTpfaForchheimersLaw; * \note Forchheimer's law is specialized for network and surface grids (i.e. if grid dim < dimWorld) */ template <class TypeTag, class ForchheimerVelocity> -class ForchheimersLawImplementation<TypeTag, ForchheimerVelocity, DiscretizationMethod::cctpfa> +class ForchheimersLawImplementation<TypeTag, ForchheimerVelocity, DiscretizationMethods::CCTpfa> : public CCTpfaForchheimersLaw<GetPropType<TypeTag, Properties::Scalar>, GetPropType<TypeTag, Properties::GridGeometry>, ForchheimerVelocity, @@ -157,8 +157,9 @@ class CCTpfaForchheimersLaw<ScalarType, GridGeometry, ForchheimerVelocity, /*isN //! state the scalar type of the law using Scalar = ScalarType; + using DiscretizationMethod = DiscretizationMethods::CCTpfa; //! state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::cctpfa; + static constexpr DiscretizationMethod discMethod{}; //! state the type for the corresponding cache using Cache = TpfaForchheimersLawCache<ThisType, GridGeometry>; diff --git a/dumux/flux/cctpfa/fourierslaw.hh b/dumux/flux/cctpfa/fourierslaw.hh index 90fa112ac9..ac3b95b99c 100644 --- a/dumux/flux/cctpfa/fourierslaw.hh +++ b/dumux/flux/cctpfa/fourierslaw.hh @@ -34,7 +34,7 @@ namespace Dumux { // forward declaration -template<class TypeTag, DiscretizationMethod discMethod> +template<class TypeTag, class DiscretizationMethod> class FouriersLawImplementation; /*! @@ -42,9 +42,9 @@ class FouriersLawImplementation; * \brief Fourier's law for cell-centered finite volume schemes with two-point flux approximation */ template <class TypeTag> -class FouriersLawImplementation<TypeTag, DiscretizationMethod::cctpfa> +class FouriersLawImplementation<TypeTag, DiscretizationMethods::CCTpfa> { - using Implementation = FouriersLawImplementation<TypeTag, DiscretizationMethod::cctpfa>; + using Implementation = FouriersLawImplementation<TypeTag, DiscretizationMethods::CCTpfa>; using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Problem = GetPropType<TypeTag, Properties::Problem>; using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; @@ -103,8 +103,9 @@ class FouriersLawImplementation<TypeTag, DiscretizationMethod::cctpfa> }; public: + using DiscretizationMethod = DiscretizationMethods::CCTpfa; //! state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::cctpfa; + static constexpr DiscretizationMethod discMethod{}; //! export the type for the corresponding cache using Cache = TpfaFouriersLawCache; diff --git a/dumux/flux/cctpfa/fourierslawnonequilibrium.hh b/dumux/flux/cctpfa/fourierslawnonequilibrium.hh index cf0dc419c7..a2ddb1e83d 100644 --- a/dumux/flux/cctpfa/fourierslawnonequilibrium.hh +++ b/dumux/flux/cctpfa/fourierslawnonequilibrium.hh @@ -33,7 +33,7 @@ namespace Dumux { // forward declaration -template<class TypeTag, DiscretizationMethod discMethod> +template<class TypeTag, class DiscretizationMethod> class FouriersLawNonEquilibriumImplementation; /*! @@ -41,9 +41,9 @@ class FouriersLawNonEquilibriumImplementation; * \brief Fourier's law for cell-centered finite volume schemes with two-point flux approximation */ template <class TypeTag> -class FouriersLawNonEquilibriumImplementation<TypeTag, DiscretizationMethod::cctpfa> +class FouriersLawNonEquilibriumImplementation<TypeTag, DiscretizationMethods::CCTpfa> { - using Implementation = FouriersLawNonEquilibriumImplementation<TypeTag, DiscretizationMethod::cctpfa>; + using Implementation = FouriersLawNonEquilibriumImplementation<TypeTag, DiscretizationMethods::CCTpfa>; using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Problem = GetPropType<TypeTag, Properties::Problem>; using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; @@ -66,8 +66,9 @@ class FouriersLawNonEquilibriumImplementation<TypeTag, DiscretizationMethod::cct static constexpr auto sPhaseIdx = ModelTraits::numFluidPhases(); public: + using DiscretizationMethod = DiscretizationMethods::CCTpfa; //! state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::cctpfa; + static constexpr DiscretizationMethod discMethod{}; using Cache = FluxVariablesCaching::EmptyHeatConductionCache; diff --git a/dumux/flux/cctpfa/maxwellstefanslaw.hh b/dumux/flux/cctpfa/maxwellstefanslaw.hh index 87b3fd4717..89f3a1a48a 100644 --- a/dumux/flux/cctpfa/maxwellstefanslaw.hh +++ b/dumux/flux/cctpfa/maxwellstefanslaw.hh @@ -40,7 +40,7 @@ namespace Dumux { // forward declaration -template <class TypeTag, DiscretizationMethod discMethod, ReferenceSystemFormulation referenceSystem> +template <class TypeTag, class DiscretizationMethod, ReferenceSystemFormulation referenceSystem> class MaxwellStefansLawImplementation; /*! @@ -48,7 +48,7 @@ class MaxwellStefansLawImplementation; * \brief Specialization of Maxwell Stefan's Law for the CCTpfa method. */ template <class TypeTag, ReferenceSystemFormulation referenceSystem> -class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethod::cctpfa, referenceSystem > +class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethods::CCTpfa, referenceSystem > { using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Problem = GetPropType<TypeTag, Properties::Problem>; @@ -78,8 +78,10 @@ class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethod::cctpfa, ref using ReducedComponentMatrix = Dune::FieldMatrix<Scalar, numComponents-1, numComponents-1>; public: + using DiscretizationMethod = DiscretizationMethods::CCTpfa; // state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::cctpfa; + static constexpr DiscretizationMethod discMethod{}; + //return the reference system static constexpr ReferenceSystemFormulation referenceSystemFormulation() { return referenceSystem; } diff --git a/dumux/flux/darcyslaw_fwd.hh b/dumux/flux/darcyslaw_fwd.hh index 9cba7efb4f..f69444c702 100644 --- a/dumux/flux/darcyslaw_fwd.hh +++ b/dumux/flux/darcyslaw_fwd.hh @@ -33,7 +33,7 @@ namespace Dumux { // declaration of primary template -template <class TypeTag, DiscretizationMethod discMethod> +template <class TypeTag, class DiscretizationMethod> class DarcysLawImplementation; /*! @@ -43,7 +43,7 @@ class DarcysLawImplementation; * These specializations are found in the headers included below. */ template <class TypeTag> -using DarcysLaw = DarcysLawImplementation<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>; +using DarcysLaw = DarcysLawImplementation<TypeTag, typename GetPropType<TypeTag, Properties::GridGeometry>::DiscretizationMethod>; } // end namespace Dumux diff --git a/dumux/flux/effectivestresslaw_fwd.hh b/dumux/flux/effectivestresslaw_fwd.hh index 75e66af3e3..9b2092081d 100644 --- a/dumux/flux/effectivestresslaw_fwd.hh +++ b/dumux/flux/effectivestresslaw_fwd.hh @@ -35,7 +35,7 @@ namespace Dumux { * \note Specializations are provided for the different discretization methods. * These specializations are found in the headers included below. */ -template <class StressType, class GridGeometry, DiscretizationMethod dm = GridGeometry::discMethod> +template <class StressType, class GridGeometry, class DiscretizationMethod = typename GridGeometry::DiscretizationMethod> class EffectiveStressLaw; } // end namespace Dumux diff --git a/dumux/flux/fickslaw_fwd.hh b/dumux/flux/fickslaw_fwd.hh index 265c964c03..8264f2c6c5 100644 --- a/dumux/flux/fickslaw_fwd.hh +++ b/dumux/flux/fickslaw_fwd.hh @@ -34,7 +34,7 @@ namespace Dumux { // declaration of primary template -template <class TypeTag, DiscretizationMethod discMethod, ReferenceSystemFormulation referenceSystem> +template <class TypeTag, class DiscretizationMethod, ReferenceSystemFormulation referenceSystem> class FicksLawImplementation; /*! @@ -42,7 +42,7 @@ class FicksLawImplementation; * \brief Evaluates the diffusive mass flux according to Fick's law */ template <class TypeTag, ReferenceSystemFormulation referenceSystem = ReferenceSystemFormulation::massAveraged> -using FicksLaw = FicksLawImplementation<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod, referenceSystem>; +using FicksLaw = FicksLawImplementation<TypeTag, typename GetPropType<TypeTag, Properties::GridGeometry>::DiscretizationMethod, referenceSystem>; } // end namespace Dumux diff --git a/dumux/flux/forchheimerslaw_fwd.hh b/dumux/flux/forchheimerslaw_fwd.hh index fe008ed2ff..9e45d2165e 100644 --- a/dumux/flux/forchheimerslaw_fwd.hh +++ b/dumux/flux/forchheimerslaw_fwd.hh @@ -34,12 +34,13 @@ namespace Dumux { // definition of primary template -template <class TypeTag, class VelocityLaw, DiscretizationMethod discMethod> +template <class TypeTag, class VelocityLaw, class DiscretizationMethod> class ForchheimersLawImplementation { static_assert( - discMethod == DiscretizationMethod::cctpfa || discMethod == DiscretizationMethod::box, - "Forchheimer only implemented for cctpfa or box!" + GetPropType<TypeTag, Properties::GridGeometry>::discMethod == DiscretizationMethods::cctpfa || + GetPropType<TypeTag, Properties::GridGeometry>::discMethod == DiscretizationMethods::box, + "Forchheimer only implemented for cctpfa or box!") ); }; @@ -57,7 +58,7 @@ using ForchheimersLaw = ForchheimersLawImplementation< GetPropType<TypeTag, Properties::GridGeometry>, GetPropType<TypeTag, Properties::FluxVariables> >, - GetPropType<TypeTag, Properties::GridGeometry>::discMethod + typename GetPropType<TypeTag, Properties::GridGeometry>::DiscretizationMethod >; } // end namespace Dumux diff --git a/dumux/flux/fourierslaw_fwd.hh b/dumux/flux/fourierslaw_fwd.hh index 1658102bfa..ef6da70c55 100644 --- a/dumux/flux/fourierslaw_fwd.hh +++ b/dumux/flux/fourierslaw_fwd.hh @@ -32,7 +32,7 @@ namespace Dumux { // declaration of primary template -template <class TypeTag, DiscretizationMethod discMethod> +template <class TypeTag, class DiscretizationMethod> class FouriersLawImplementation; /*! @@ -40,7 +40,7 @@ class FouriersLawImplementation; * \brief Evaluates the heat conduction flux according to Fouriers's law */ template <class TypeTag> -using FouriersLaw = FouriersLawImplementation<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>; +using FouriersLaw = FouriersLawImplementation<TypeTag, typename GetPropType<TypeTag, Properties::GridGeometry>::DiscretizationMethod>; } // end namespace Dumux diff --git a/dumux/flux/fourierslawnonequilibrium_fwd.hh b/dumux/flux/fourierslawnonequilibrium_fwd.hh index a940df1c0d..77969c91d2 100644 --- a/dumux/flux/fourierslawnonequilibrium_fwd.hh +++ b/dumux/flux/fourierslawnonequilibrium_fwd.hh @@ -31,7 +31,7 @@ namespace Dumux { // forward declaration -template <class TypeTag, DiscretizationMethod discMethod> +template <class TypeTag, class DiscretizationMethod> class FouriersLawNonEquilibriumImplementation; /*! @@ -39,7 +39,7 @@ class FouriersLawNonEquilibriumImplementation; * \brief Evaluates the heat conduction flux according to Fouriers's law */ template <class TypeTag> -using FouriersLawNonEquilibrium = FouriersLawNonEquilibriumImplementation<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>; +using FouriersLawNonEquilibrium = FouriersLawNonEquilibriumImplementation<TypeTag, typename GetPropType<TypeTag, Properties::GridGeometry>::DiscretizationMethod>; } // end namespace Dumux diff --git a/dumux/flux/hookeslaw_fwd.hh b/dumux/flux/hookeslaw_fwd.hh index 2ee6c30c7a..e3cc7c4982 100644 --- a/dumux/flux/hookeslaw_fwd.hh +++ b/dumux/flux/hookeslaw_fwd.hh @@ -35,7 +35,7 @@ namespace Dumux { * \note Specializations are provided for the different discretization methods. * These specializations are found in the headers included below. */ -template <class Scalar, class GridGeometry, DiscretizationMethod dm = GridGeometry::discMethod> +template <class Scalar, class GridGeometry, class DiscretizationMethod = typename GridGeometry::DiscretizationMethod> class HookesLaw; } // end namespace Dumux diff --git a/dumux/flux/maxwellstefanslaw_fwd.hh b/dumux/flux/maxwellstefanslaw_fwd.hh index fad0ea05a8..f320dd1aa8 100644 --- a/dumux/flux/maxwellstefanslaw_fwd.hh +++ b/dumux/flux/maxwellstefanslaw_fwd.hh @@ -32,7 +32,7 @@ namespace Dumux { // forward declaration -template <class TypeTag, DiscretizationMethod discMethod, ReferenceSystemFormulation referenceSystem> +template <class TypeTag, class DiscretizationMethod, ReferenceSystemFormulation referenceSystem> class MaxwellStefansLawImplementation; /*! @@ -40,7 +40,7 @@ class MaxwellStefansLawImplementation; * \brief Evaluates the diffusive mass flux according to Maxwell Stefan's law */ template <class TypeTag, ReferenceSystemFormulation referenceSystem = ReferenceSystemFormulation::massAveraged> -using MaxwellStefansLaw = MaxwellStefansLawImplementation<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod, referenceSystem>; +using MaxwellStefansLaw = MaxwellStefansLawImplementation<TypeTag, typename GetPropType<TypeTag, Properties::GridGeometry>::DiscretizationMethod, referenceSystem>; } // end namespace Dumux diff --git a/dumux/flux/staggered/freeflow/fickslaw.hh b/dumux/flux/staggered/freeflow/fickslaw.hh index a1a36d25ae..146b025e11 100644 --- a/dumux/flux/staggered/freeflow/fickslaw.hh +++ b/dumux/flux/staggered/freeflow/fickslaw.hh @@ -42,7 +42,7 @@ namespace Dumux { // forward declaration -template<class TypeTag, DiscretizationMethod discMethod, ReferenceSystemFormulation referenceSystem> +template<class TypeTag, class DiscretizationMethod, ReferenceSystemFormulation referenceSystem> class FicksLawImplementation; /*! @@ -50,7 +50,7 @@ class FicksLawImplementation; * \brief Specialization of Fick's Law for the staggered free flow method. */ template <class TypeTag, ReferenceSystemFormulation referenceSystem> -class FicksLawImplementation<TypeTag, DiscretizationMethod::staggered, referenceSystem> +class FicksLawImplementation<TypeTag, DiscretizationMethods::Staggered, referenceSystem> { using Scalar = GetPropType<TypeTag, Properties::Scalar>; using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; @@ -72,8 +72,10 @@ class FicksLawImplementation<TypeTag, DiscretizationMethod::staggered, reference static_assert(ModelTraits::numFluidPhases() == 1, "Only one phase supported!"); public: + using DiscretizationMethod = DiscretizationMethods::Staggered; // state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::staggered; + static constexpr DiscretizationMethod discMethod{}; + //return the reference system static constexpr ReferenceSystemFormulation referenceSystemFormulation() { return referenceSystem; } diff --git a/dumux/flux/staggered/freeflow/fourierslaw.hh b/dumux/flux/staggered/freeflow/fourierslaw.hh index 578777bda0..1221ec07c1 100644 --- a/dumux/flux/staggered/freeflow/fourierslaw.hh +++ b/dumux/flux/staggered/freeflow/fourierslaw.hh @@ -34,7 +34,7 @@ namespace Dumux { // forward declaration -template<class TypeTag, DiscretizationMethod discMethod> +template<class TypeTag, class DiscretizationMethod> class FouriersLawImplementation; /*! @@ -42,7 +42,7 @@ class FouriersLawImplementation; * \brief Specialization of Fourier's Law for the staggered free flow method. */ template <class TypeTag> -class FouriersLawImplementation<TypeTag, DiscretizationMethod::staggered> +class FouriersLawImplementation<TypeTag, DiscretizationMethods::Staggered> { using Scalar = GetPropType<TypeTag, Properties::Scalar>; using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; @@ -54,8 +54,9 @@ class FouriersLawImplementation<TypeTag, DiscretizationMethod::staggered> using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; public: + using DiscretizationMethod = DiscretizationMethods::Staggered; // state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::staggered; + static constexpr DiscretizationMethod discMethod{}; //! state the type for the corresponding cache //! We don't cache anything for this law diff --git a/dumux/flux/staggered/freeflow/maxwellstefanslaw.hh b/dumux/flux/staggered/freeflow/maxwellstefanslaw.hh index d74deb7523..d6408f7893 100644 --- a/dumux/flux/staggered/freeflow/maxwellstefanslaw.hh +++ b/dumux/flux/staggered/freeflow/maxwellstefanslaw.hh @@ -38,7 +38,7 @@ namespace Dumux { // forward declaration -template <class TypeTag, DiscretizationMethod discMethod, ReferenceSystemFormulation referenceSystem> +template <class TypeTag, class DiscretizationMethod, ReferenceSystemFormulation referenceSystem> class MaxwellStefansLawImplementation; /*! @@ -46,7 +46,7 @@ class MaxwellStefansLawImplementation; * \brief Specialization of Maxwell Stefan's Law for the Staggered method. */ template <class TypeTag, ReferenceSystemFormulation referenceSystem> -class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethod::staggered, referenceSystem> +class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethods::Staggered, referenceSystem> { using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Problem = GetPropType<TypeTag, Properties::Problem>; @@ -75,8 +75,10 @@ class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethod::staggered, static_assert(referenceSystem == ReferenceSystemFormulation::massAveraged, "only the mass averaged reference system is supported for the Maxwell-Stefan formulation"); public: + using DiscretizationMethod = DiscretizationMethods::Staggered; // state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::staggered; + static constexpr DiscretizationMethod discMethod{}; + //return the reference system static constexpr ReferenceSystemFormulation referenceSystemFormulation() { return referenceSystem; } diff --git a/dumux/multidomain/boundary/stokesdarcy/couplingdata.hh b/dumux/multidomain/boundary/stokesdarcy/couplingdata.hh index a4afec061f..25f6a562a4 100644 --- a/dumux/multidomain/boundary/stokesdarcy/couplingdata.hh +++ b/dumux/multidomain/boundary/stokesdarcy/couplingdata.hh @@ -100,7 +100,7 @@ struct IsSameFluidSystem<FS, FS> }; // forward declaration -template <class TypeTag, DiscretizationMethod discMethod, ReferenceSystemFormulation referenceSystem> +template <class TypeTag, class DiscretizationMethod, ReferenceSystemFormulation referenceSystem> class FicksLawImplementation; /*! @@ -116,8 +116,8 @@ struct IsFicksLaw : public std::false_type {}; * \brief This structs indicates that Fick's law is used for diffusion. * \tparam DiffLaw The diffusion law. */ -template<class T, DiscretizationMethod discMethod, ReferenceSystemFormulation referenceSystem> -struct IsFicksLaw<FicksLawImplementation<T, discMethod, referenceSystem>> : public std::true_type {}; +template<class T, class DiscretizationMethod, ReferenceSystemFormulation referenceSystem> +struct IsFicksLaw<FicksLawImplementation<T, DiscretizationMethod, referenceSystem>> : public std::true_type {}; /*! * \ingroup StokesDarcyCoupling @@ -194,11 +194,11 @@ struct IndexHelper<stokesIdx, darcyIdx, FFFS, true> }; //! forward declare -template <class TypeTag, DiscretizationMethod discMethod> +template <class TypeTag, class DiscretizationMethod> class DarcysLawImplementation; //! forward declare -template <class TypeTag, DiscretizationMethod discMethod> +template <class TypeTag, class DiscretizationMethod> class ForchheimersLawImplementation; @@ -241,8 +241,8 @@ class StokesDarcyCouplingDataImplementationBase static constexpr auto darcyIdx = CouplingManager::darcyIdx; using AdvectionType = GetPropType<SubDomainTypeTag<darcyIdx>, Properties::AdvectionType>; - using DarcysLaw = DarcysLawImplementation<SubDomainTypeTag<darcyIdx>, GridGeometry<darcyIdx>::discMethod>; - using ForchheimersLaw = ForchheimersLawImplementation<SubDomainTypeTag<darcyIdx>, GridGeometry<darcyIdx>::discMethod>; + using DarcysLaw = DarcysLawImplementation<SubDomainTypeTag<darcyIdx>, typename GridGeometry<darcyIdx>::DiscretizationMethod>; + using ForchheimersLaw = ForchheimersLawImplementation<SubDomainTypeTag<darcyIdx>, typename GridGeometry<darcyIdx>::DiscretizationMethod>; static constexpr bool adapterUsed = ModelTraits<darcyIdx>::numFluidPhases() > 1; using IndexHelper = Dumux::IndexHelper<stokesIdx, darcyIdx, FluidSystem<stokesIdx>, adapterUsed>; diff --git a/dumux/multidomain/facet/box/fickslaw.hh b/dumux/multidomain/facet/box/fickslaw.hh index 6ae5704709..075aa5f175 100644 --- a/dumux/multidomain/facet/box/fickslaw.hh +++ b/dumux/multidomain/facet/box/fickslaw.hh @@ -49,9 +49,9 @@ namespace Dumux { */ template<class TypeTag, ReferenceSystemFormulation referenceSystem = ReferenceSystemFormulation::massAveraged> class BoxFacetCouplingFicksLaw -: public FicksLawImplementation<TypeTag, DiscretizationMethod::box, referenceSystem> +: public FicksLawImplementation<TypeTag, DiscretizationMethods::Box, referenceSystem> { - using ParentType = FicksLawImplementation<TypeTag, DiscretizationMethod::box, referenceSystem>; + using ParentType = FicksLawImplementation<TypeTag, DiscretizationMethods::Box, referenceSystem>; using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GridGeometry::LocalView; diff --git a/dumux/multidomain/facet/box/fourierslaw.hh b/dumux/multidomain/facet/box/fourierslaw.hh index e492a8b3d7..a6363228c3 100644 --- a/dumux/multidomain/facet/box/fourierslaw.hh +++ b/dumux/multidomain/facet/box/fourierslaw.hh @@ -50,9 +50,9 @@ namespace Dumux { */ template<class TypeTag> class BoxFacetCouplingFouriersLaw -: public FouriersLawImplementation<TypeTag, DiscretizationMethod::box> +: public FouriersLawImplementation<TypeTag, DiscretizationMethods::Box> { - using ParentType = FouriersLawImplementation<TypeTag, DiscretizationMethod::box>; + using ParentType = FouriersLawImplementation<TypeTag, DiscretizationMethods::Box>; using Scalar = GetPropType<TypeTag, Properties::Scalar>; using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; diff --git a/dumux/multidomain/facet/cellcentered/tpfa/darcyslaw.hh b/dumux/multidomain/facet/cellcentered/tpfa/darcyslaw.hh index 937c76b9a3..05c4ec5d7a 100644 --- a/dumux/multidomain/facet/cellcentered/tpfa/darcyslaw.hh +++ b/dumux/multidomain/facet/cellcentered/tpfa/darcyslaw.hh @@ -155,7 +155,8 @@ class CCTpfaFacetCouplingDarcysLawImpl<ScalarType, GridGeometry, /*isNetwork*/fa //! state the scalar type of the law using Scalar = ScalarType; //! export the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::cctpfa; + using DiscretizationMethod = DiscretizationMethods::CCTpfa; + static constexpr DiscretizationMethod discMethod{}; //! export the type for the corresponding cache using Cache = CCTpfaFacetCouplingDarcysLawCache<ThisType, GridGeometry, /*isNetwork*/false>; //! export the type used to store transmissibilities @@ -428,7 +429,8 @@ class CCTpfaFacetCouplingDarcysLawImpl<ScalarType, GridGeometry, /*isNetwork*/tr //! state the scalar type of the law using Scalar = ScalarType; //! state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::cctpfa; + using DiscretizationMethod = DiscretizationMethods::CCTpfa; + static constexpr DiscretizationMethod discMethod{}; //! state the type for the corresponding cache using Cache = CCTpfaFacetCouplingDarcysLawCache<ThisType, GridGeometry, /*isNetwork*/true>; //! export the type used to store transmissibilities diff --git a/dumux/multidomain/facet/cellcentered/tpfa/fickslaw.hh b/dumux/multidomain/facet/cellcentered/tpfa/fickslaw.hh index e009f41b12..f56365cb5e 100644 --- a/dumux/multidomain/facet/cellcentered/tpfa/fickslaw.hh +++ b/dumux/multidomain/facet/cellcentered/tpfa/fickslaw.hh @@ -67,10 +67,10 @@ using CCTpfaFacetCouplingFicksLaw = */ template<class TypeTag, ReferenceSystemFormulation referenceSystem> class CCTpfaFacetCouplingFicksLawImpl<TypeTag, referenceSystem, /*isNetwork*/false> -: public FicksLawImplementation<TypeTag, DiscretizationMethod::cctpfa, referenceSystem> +: public FicksLawImplementation<TypeTag, DiscretizationMethods::CCTpfa, referenceSystem> { using Implementation = CCTpfaFacetCouplingFicksLawImpl<TypeTag, referenceSystem, false>; - using ParentType = FicksLawImplementation<TypeTag, DiscretizationMethod::cctpfa, referenceSystem>; + using ParentType = FicksLawImplementation<TypeTag, DiscretizationMethods::CCTpfa, referenceSystem>; using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GridGeometry::LocalView; @@ -150,8 +150,9 @@ public: //! export the type for the corresponding cache using Cache = FacetCouplingFicksLawCache; + using DiscretizationMethod = DiscretizationMethods::CCTpfa; //! state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::cctpfa; + static constexpr DiscretizationMethod discMethod{}; //! Return the reference system static constexpr ReferenceSystemFormulation referenceSystemFormulation() @@ -306,10 +307,10 @@ public: */ template<class TypeTag, ReferenceSystemFormulation referenceSystem> class CCTpfaFacetCouplingFicksLawImpl<TypeTag, referenceSystem, /*isNetwork*/true> -: public FicksLawImplementation<TypeTag, DiscretizationMethod::cctpfa, referenceSystem> +: public FicksLawImplementation<TypeTag, DiscretizationMethods::CCTpfa, referenceSystem> { using Implementation = CCTpfaFacetCouplingFicksLawImpl<TypeTag, referenceSystem, true>; - using ParentType = FicksLawImplementation<TypeTag, DiscretizationMethod::cctpfa, referenceSystem>; + using ParentType = FicksLawImplementation<TypeTag, DiscretizationMethods::CCTpfa, referenceSystem>; using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GridGeometry::LocalView; @@ -384,8 +385,9 @@ public: //! export the type for the corresponding cache using Cache = FacetCouplingFicksLawCache; + using DiscretizationMethod = DiscretizationMethods::CCTpfa; //! state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::cctpfa; + static constexpr DiscretizationMethod discMethod{}; //! Return the reference system static constexpr ReferenceSystemFormulation referenceSystemFormulation() diff --git a/dumux/multidomain/facet/cellcentered/tpfa/fourierslaw.hh b/dumux/multidomain/facet/cellcentered/tpfa/fourierslaw.hh index 6e43c638be..4c979da2c2 100644 --- a/dumux/multidomain/facet/cellcentered/tpfa/fourierslaw.hh +++ b/dumux/multidomain/facet/cellcentered/tpfa/fourierslaw.hh @@ -64,10 +64,10 @@ using CCTpfaFacetCouplingFouriersLaw = */ template<class TypeTag> class CCTpfaFacetCouplingFouriersLawImpl<TypeTag, /*isNetwork*/false> -: public FouriersLawImplementation<TypeTag, DiscretizationMethod::cctpfa> +: public FouriersLawImplementation<TypeTag, DiscretizationMethods::CCTpfa> { using Implementation = CCTpfaFacetCouplingFouriersLawImpl<TypeTag, false>; - using ParentType = FouriersLawImplementation<TypeTag, DiscretizationMethod::cctpfa>; + using ParentType = FouriersLawImplementation<TypeTag, DiscretizationMethods::CCTpfa>; using Scalar = GetPropType<TypeTag, Properties::Scalar>; using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; @@ -137,7 +137,8 @@ public: using Cache = FacetCouplingFouriersLawCache; //! state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::cctpfa; + using DiscretizationMethod = DiscretizationMethods::CCTpfa; + static constexpr DiscretizationMethod discMethod{}; //! Compute the conductive heat flux template< class Problem, class ElementVolumeVariables, class ElementFluxVarsCache > @@ -270,10 +271,10 @@ public: */ template<class TypeTag> class CCTpfaFacetCouplingFouriersLawImpl<TypeTag, /*isNetwork*/true> -: public FouriersLawImplementation<TypeTag, DiscretizationMethod::cctpfa> +: public FouriersLawImplementation<TypeTag, DiscretizationMethods::CCTpfa> { using Implementation = CCTpfaFacetCouplingFouriersLawImpl<TypeTag, true>; - using ParentType = FouriersLawImplementation<TypeTag, DiscretizationMethod::cctpfa>; + using ParentType = FouriersLawImplementation<TypeTag, DiscretizationMethods::CCTpfa>; using Scalar = GetPropType<TypeTag, Properties::Scalar>; using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; @@ -338,7 +339,8 @@ public: using Cache = FacetCouplingFouriersLawCache; //! state the discretization method this implementation belongs to - static const DiscretizationMethod discMethod = DiscretizationMethod::cctpfa; + using DiscretizationMethod = DiscretizationMethods::CCTpfa; + static constexpr DiscretizationMethod discMethod{}; //! Compute the conductive heat flux template< class Problem, class ElementVolumeVariables, class ElementFluxVarsCache > -- GitLab