diff --git a/test/multidomain/facet/tracer_tracer/main.cc b/test/multidomain/facet/tracer_tracer/main.cc index 8cae074fd2cb3d3e1e5a879ba65dbf15a3b3cfb0..45fd9a9cb318c2805848f52003ed6484b77d20a4 100644 --- a/test/multidomain/facet/tracer_tracer/main.cc +++ b/test/multidomain/facet/tracer_tracer/main.cc @@ -60,8 +60,8 @@ template< class BulkTypeTag, class LowDimTypeTag > class TestTraits { - using BulkFVGridGeometry = typename GET_PROP_TYPE(BulkTypeTag, FVGridGeometry); - using LowDimFVGridGeometry = typename GET_PROP_TYPE(LowDimTypeTag, FVGridGeometry); + using BulkFVGridGeometry = Dumux::GetPropType<BulkTypeTag, Dumux::Properties::FVGridGeometry>; + using LowDimFVGridGeometry = Dumux::GetPropType<LowDimTypeTag, Dumux::Properties::FVGridGeometry>; public: using MDTraits = Dumux::MultiDomainTraits<BulkTypeTag, LowDimTypeTag>; using CouplingMapper = Dumux::FacetCouplingMapper<BulkFVGridGeometry, LowDimFVGridGeometry>; @@ -73,20 +73,28 @@ namespace Dumux { namespace Properties { // set cm property for the box test -using BoxTraits = TestTraits<TTAG(OnePBulkBox), TTAG(OnePLowDimBox)>; -using BoxTracerTraits = TestTraits<TTAG(TracerBulkBox), TTAG(TracerLowDimBox)>; -SET_TYPE_PROP(OnePBulkBox, CouplingManager, typename BoxTraits::CouplingManager); -SET_TYPE_PROP(OnePLowDimBox, CouplingManager, typename BoxTraits::CouplingManager); -SET_TYPE_PROP(TracerBulkBox, CouplingManager, typename BoxTracerTraits::CouplingManager); -SET_TYPE_PROP(TracerLowDimBox, CouplingManager, typename BoxTracerTraits::CouplingManager); +using BoxTraits = TestTraits<Properties::TTag::OnePBulkBox, Properties::TTag::OnePLowDimBox>; +using BoxTracerTraits = TestTraits<Properties::TTag::TracerBulkBox, Properties::TTag::TracerLowDimBox>; +template<class TypeTag> +struct CouplingManager<TypeTag, TTag::OnePBulkBox> { using type = typename BoxTraits::CouplingManager; }; +template<class TypeTag> +struct CouplingManager<TypeTag, TTag::OnePLowDimBox> { using type = typename BoxTraits::CouplingManager; }; +template<class TypeTag> +struct CouplingManager<TypeTag, TTag::TracerBulkBox> { using type = typename BoxTracerTraits::CouplingManager; }; +template<class TypeTag> +struct CouplingManager<TypeTag, TTag::TracerLowDimBox> { using type = typename BoxTracerTraits::CouplingManager; }; // set cm property for the tpfa test -using TpfaTraits = TestTraits<TTAG(OnePBulkTpfa), TTAG(OnePLowDimTpfa)>; -using TpfaTracerTraits = TestTraits<TTAG(TracerBulkTpfa), TTAG(TracerLowDimTpfa)>; -SET_TYPE_PROP(OnePBulkTpfa, CouplingManager, typename TpfaTraits::CouplingManager); -SET_TYPE_PROP(OnePLowDimTpfa, CouplingManager, typename TpfaTraits::CouplingManager); -SET_TYPE_PROP(TracerBulkTpfa, CouplingManager, typename TpfaTracerTraits::CouplingManager); -SET_TYPE_PROP(TracerLowDimTpfa, CouplingManager, typename TpfaTracerTraits::CouplingManager); +using TpfaTraits = TestTraits<Properties::TTag::OnePBulkTpfa, Properties::TTag::OnePLowDimTpfa>; +using TpfaTracerTraits = TestTraits<Properties::TTag::TracerBulkTpfa, Properties::TTag::TracerLowDimTpfa>; +template<class TypeTag> +struct CouplingManager<TypeTag, TTag::OnePBulkTpfa> { using type = typename TpfaTraits::CouplingManager; }; +template<class TypeTag> +struct CouplingManager<TypeTag, TTag::OnePLowDimTpfa> { using type = typename TpfaTraits::CouplingManager; }; +template<class TypeTag> +struct CouplingManager<TypeTag, TTag::TracerBulkTpfa> { using type = typename TpfaTracerTraits::CouplingManager; }; +template<class TypeTag> +struct CouplingManager<TypeTag, TTag::TracerLowDimTpfa> { using type = typename TpfaTracerTraits::CouplingManager; }; } // end namespace Properties } // end namespace Dumux @@ -206,10 +214,10 @@ int main(int argc, char** argv) try ////////////////////////////////////////////////////// // try to create the grids (from the given grid file) ////////////////////////////////////////////////////// - using BulkOnePTypeTag = TTAG(ONEPBULKTYPETAG); - using LowDimOnePTypeTag = TTAG(ONEPLOWDIMTYPETAG); - using BulkGrid = typename GET_PROP_TYPE(BulkOnePTypeTag, Grid); - using LowDimGrid = typename GET_PROP_TYPE(LowDimOnePTypeTag, Grid); + using BulkOnePTypeTag = Properties::TTag::ONEPBULKTYPETAG; + using LowDimOnePTypeTag = Properties::TTag::ONEPLOWDIMTYPETAG; + using BulkGrid = GetPropType<BulkOnePTypeTag, Properties::Grid>; + using LowDimGrid = GetPropType<LowDimOnePTypeTag, Properties::Grid>; using GridManager = FacetCouplingGridManager<BulkGrid, LowDimGrid>; GridManager gridManager; @@ -225,8 +233,8 @@ int main(int argc, char** argv) try std::vector< std::vector<double> > lowDimVolumeFluxes; // create the finite volume grid geometries - using BulkFVGridGeometry = typename GET_PROP_TYPE(BulkOnePTypeTag, FVGridGeometry); - using LowDimFVGridGeometry = typename GET_PROP_TYPE(LowDimOnePTypeTag, FVGridGeometry); + using BulkFVGridGeometry = GetPropType<BulkOnePTypeTag, Properties::FVGridGeometry>; + using LowDimFVGridGeometry = GetPropType<LowDimOnePTypeTag, Properties::FVGridGeometry>; auto bulkFvGridGeometry = std::make_shared<BulkFVGridGeometry>(bulkGridView); auto lowDimFvGridGeometry = std::make_shared<LowDimFVGridGeometry>(lowDimGridView); updateBulkFVGridGeometry(*bulkFvGridGeometry, gridManager, lowDimGridView); @@ -256,8 +264,8 @@ int main(int argc, char** argv) try auto couplingManager = std::make_shared<CouplingManager>(); // the problems (boundary conditions) - using BulkProblem = typename GET_PROP_TYPE(BulkOnePTypeTag, Problem); - using LowDimProblem = typename GET_PROP_TYPE(LowDimOnePTypeTag, Problem); + using BulkProblem = GetPropType<BulkOnePTypeTag, Properties::Problem>; + using LowDimProblem = GetPropType<LowDimOnePTypeTag, Properties::Problem>; auto bulkSpatialParams = std::make_shared<typename BulkProblem::SpatialParams>(bulkFvGridGeometry, "Bulk.OneP"); auto bulkProblem = std::make_shared<BulkProblem>(bulkFvGridGeometry, bulkSpatialParams, couplingManager, "Bulk.OneP"); auto lowDimSpatialParams = std::make_shared<typename LowDimProblem::SpatialParams>(lowDimFvGridGeometry, "LowDim.OneP"); @@ -274,8 +282,8 @@ int main(int argc, char** argv) try couplingManager->init(bulkProblem, lowDimProblem, couplingMapper, x); // the grid variables - using BulkGridVariables = typename GET_PROP_TYPE(BulkOnePTypeTag, GridVariables); - using LowDimGridVariables = typename GET_PROP_TYPE(LowDimOnePTypeTag, GridVariables); + using BulkGridVariables = GetPropType<BulkOnePTypeTag, Properties::GridVariables>; + using LowDimGridVariables = GetPropType<LowDimOnePTypeTag, Properties::GridVariables>; auto bulkGridVariables = std::make_shared<BulkGridVariables>(bulkProblem, bulkFvGridGeometry); auto lowDimGridVariables = std::make_shared<LowDimGridVariables>(lowDimProblem, lowDimFvGridGeometry); bulkGridVariables->init(x[bulkId]); @@ -289,8 +297,8 @@ int main(int argc, char** argv) try VtkOutputModule<LowDimGridVariables, LowDimSolutionVector> lowDimVtkWriter(*lowDimGridVariables, x[lowDimId], lowDimProblem->name(), "LowDim.OneP"); // Add model specific output fields - using BulkIOFields = typename GET_PROP_TYPE(BulkOnePTypeTag, IOFields); - using LowDimIOFields = typename GET_PROP_TYPE(LowDimOnePTypeTag, IOFields); + using BulkIOFields = GetPropType<BulkOnePTypeTag, Properties::IOFields>; + using LowDimIOFields = GetPropType<LowDimOnePTypeTag, Properties::IOFields>; BulkIOFields::initOutputModule(bulkVtkWriter); LowDimIOFields::initOutputModule(lowDimVtkWriter); @@ -321,8 +329,8 @@ int main(int argc, char** argv) try lowDimVtkWriter.write(1.0); // compute the volume fluxes and store them in the arrays - using BulkFluxVariables = typename GET_PROP_TYPE(BulkOnePTypeTag, FluxVariables); - using LowDimFluxVariables = typename GET_PROP_TYPE(LowDimOnePTypeTag, FluxVariables); + using BulkFluxVariables = GetPropType<BulkOnePTypeTag, Properties::FluxVariables>; + using LowDimFluxVariables = GetPropType<LowDimOnePTypeTag, Properties::FluxVariables>; computeVolumeFluxes<BulkFluxVariables>(bulkVolumeFluxes, *couplingManager, *assembler, *bulkProblem, *bulkFvGridGeometry, *bulkGridVariables, x[bulkId], bulkId); computeVolumeFluxes<LowDimFluxVariables>(lowDimVolumeFluxes, *couplingManager, *assembler, @@ -334,8 +342,8 @@ int main(int argc, char** argv) try //////////////////////////////////////////////////////////////////////////// //! the problem (initial and boundary conditions) - using BulkTracerTypeTag = TTAG(TRACERBULKTYPETAG); - using LowDimTracerTypeTag = TTAG(TRACERLOWDIMTYPETAG); + using BulkTracerTypeTag = Properties::TTag::TRACERBULKTYPETAG; + using LowDimTracerTypeTag = Properties::TTag::TRACERLOWDIMTYPETAG; // instantiate coupling manager using TracerTestTraits = TestTraits<BulkTracerTypeTag, LowDimTracerTypeTag>; @@ -343,8 +351,8 @@ int main(int argc, char** argv) try auto couplingManager = std::make_shared<CouplingManager>(); // instantiate the tracer problems reusing the fv grid geometries - using TracerBulkProblem = typename GET_PROP_TYPE(BulkTracerTypeTag, Problem); - using TracerLowDimProblem = typename GET_PROP_TYPE(LowDimTracerTypeTag, Problem); + using TracerBulkProblem = GetPropType<BulkTracerTypeTag, Properties::Problem>; + using TracerLowDimProblem = GetPropType<LowDimTracerTypeTag, Properties::Problem>; using TracerBulkSpatialParams = typename TracerBulkProblem::SpatialParams; using TracerLowDimSpatialParams = typename TracerLowDimProblem::SpatialParams; auto bulkSpatialParams = std::make_shared<TracerBulkSpatialParams>(bulkFvGridGeometry, bulkVolumeFluxes, "Bulk.Tracer"); @@ -368,8 +376,8 @@ int main(int argc, char** argv) try couplingManager->init(bulkProblem, lowDimProblem, couplingMapper, x); // the grid variables - using BulkGridVariables = typename GET_PROP_TYPE(BulkTracerTypeTag, GridVariables); - using LowDimGridVariables = typename GET_PROP_TYPE(LowDimTracerTypeTag, GridVariables); + using BulkGridVariables = GetPropType<BulkTracerTypeTag, Properties::GridVariables>; + using LowDimGridVariables = GetPropType<LowDimTracerTypeTag, Properties::GridVariables>; auto bulkGridVariables = std::make_shared<BulkGridVariables>(bulkProblem, bulkFvGridGeometry); auto lowDimGridVariables = std::make_shared<LowDimGridVariables>(lowDimProblem, lowDimFvGridGeometry); bulkGridVariables->init(x[bulkId]); @@ -383,8 +391,8 @@ int main(int argc, char** argv) try VtkOutputModule<LowDimGridVariables, LowDimSolutionVector> lowDimVtkWriter(*lowDimGridVariables, x[lowDimId], lowDimProblem->name(), "LowDim.Tracer"); // Add model specific output fields - using BulkIOFields = typename GET_PROP_TYPE(BulkTracerTypeTag, IOFields); - using LowDimIOFields = typename GET_PROP_TYPE(LowDimTracerTypeTag, IOFields); + using BulkIOFields = GetPropType<BulkTracerTypeTag, Properties::IOFields>; + using LowDimIOFields = GetPropType<LowDimTracerTypeTag, Properties::IOFields>; BulkIOFields::initOutputModule(bulkVtkWriter); LowDimIOFields::initOutputModule(lowDimVtkWriter); diff --git a/test/multidomain/facet/tracer_tracer/problem_1p_bulk.hh b/test/multidomain/facet/tracer_tracer/problem_1p_bulk.hh index 92fcafea6c12f022d1f45acb31a61c1796f41d07..6246cb9b11ab8fe4ecaf35f7463ff50b2707c420 100644 --- a/test/multidomain/facet/tracer_tracer/problem_1p_bulk.hh +++ b/test/multidomain/facet/tracer_tracer/problem_1p_bulk.hh @@ -45,23 +45,33 @@ template<class TypeTag> class OnePBulkProblem; namespace Properties { // create the type tag nodes -NEW_TYPE_TAG(OnePBulk, INHERITS_FROM(OneP)); -NEW_TYPE_TAG(OnePBulkTpfa, INHERITS_FROM(OnePBulk, CCTpfaFacetCouplingModel)); -NEW_TYPE_TAG(OnePBulkBox, INHERITS_FROM(OnePBulk, BoxFacetCouplingModel)); +// Create new type tags +namespace TTag { +struct OnePBulk { using InheritsFrom = std::tuple<OneP>; }; +struct OnePBulkTpfa { using InheritsFrom = std::tuple<CCTpfaFacetCouplingModel, OnePBulk>; }; +struct OnePBulkBox { using InheritsFrom = std::tuple<BoxFacetCouplingModel, OnePBulk>; }; +} // end namespace TTag // Set the grid type -SET_TYPE_PROP(OnePBulk, Grid, Dune::ALUGrid<2, 2, Dune::simplex, Dune::conforming>); +template<class TypeTag> +struct Grid<TypeTag, TTag::OnePBulk> { using type = Dune::ALUGrid<2, 2, Dune::simplex, Dune::conforming>; }; // Set the problem type -SET_TYPE_PROP(OnePBulk, Problem, OnePBulkProblem<TypeTag>); +template<class TypeTag> +struct Problem<TypeTag, TTag::OnePBulk> { using type = OnePBulkProblem<TypeTag>; }; // set the spatial params -SET_TYPE_PROP(OnePBulk, SpatialParams, OnePSpatialParams< typename GET_PROP_TYPE(TypeTag, FVGridGeometry), - typename GET_PROP_TYPE(TypeTag, Scalar) >); +template<class TypeTag> +struct SpatialParams<TypeTag, TTag::OnePBulk> +{ + using type = OnePSpatialParams< GetPropType<TypeTag, Properties::FVGridGeometry>, + GetPropType<TypeTag, Properties::Scalar> >; +}; // the fluid system -SET_PROP(OnePBulk, FluidSystem) +template<class TypeTag> +struct FluidSystem<TypeTag, TTag::OnePBulk> { private: - using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); + using Scalar = GetPropType<TypeTag, Properties::Scalar>; public: using type = FluidSystems::OnePLiquid< Scalar, Components::SimpleH2O<Scalar> >; }; @@ -79,7 +89,7 @@ class OnePBulkProblem : public PorousMediumFlowProblem<TypeTag> { using ParentType = PorousMediumFlowProblem<TypeTag>; - using GridVariables = typename GET_PROP_TYPE(TypeTag, GridVariables); + using GridVariables = GetPropType<TypeTag, Properties::GridVariables>; using PrimaryVariables = typename GridVariables::PrimaryVariables; using Scalar = typename GridVariables::Scalar; @@ -91,10 +101,10 @@ class OnePBulkProblem : public PorousMediumFlowProblem<TypeTag> using Element = typename GridView::template Codim<0>::Entity; using GlobalPosition = typename Element::Geometry::GlobalCoordinate; - using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes); - using CouplingManager = typename GET_PROP_TYPE(TypeTag, CouplingManager); - using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector); - using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices; + using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>; + using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; + using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; public: OnePBulkProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry, diff --git a/test/multidomain/facet/tracer_tracer/problem_1p_lowdim.hh b/test/multidomain/facet/tracer_tracer/problem_1p_lowdim.hh index 57cdc3734cc4e18fefa6d2f7fa518503e8f44e43..80f5cbfe2a89e9f236dfa185c2d35251195047fd 100644 --- a/test/multidomain/facet/tracer_tracer/problem_1p_lowdim.hh +++ b/test/multidomain/facet/tracer_tracer/problem_1p_lowdim.hh @@ -45,23 +45,33 @@ template<class TypeTag> class OnePLowDimProblem; namespace Properties { // create the type tag nodes -NEW_TYPE_TAG(OnePLowDim, INHERITS_FROM(OneP)); -NEW_TYPE_TAG(OnePLowDimTpfa, INHERITS_FROM(CCTpfaModel, OnePLowDim)); -NEW_TYPE_TAG(OnePLowDimBox, INHERITS_FROM(BoxModel, OnePLowDim)); +// Create new type tags +namespace TTag { +struct OnePLowDim { using InheritsFrom = std::tuple<OneP>; }; +struct OnePLowDimTpfa { using InheritsFrom = std::tuple<OnePLowDim, CCTpfaModel>; }; +struct OnePLowDimBox { using InheritsFrom = std::tuple<OnePLowDim, BoxModel>; }; +} // end namespace TTag // Set the grid type -SET_TYPE_PROP(OnePLowDim, Grid, Dune::FoamGrid<1, 2>); +template<class TypeTag> +struct Grid<TypeTag, TTag::OnePLowDim> { using type = Dune::FoamGrid<1, 2>; }; // Set the problem type -SET_TYPE_PROP(OnePLowDim, Problem, OnePLowDimProblem<TypeTag>); +template<class TypeTag> +struct Problem<TypeTag, TTag::OnePLowDim> { using type = OnePLowDimProblem<TypeTag>; }; // set the spatial params -SET_TYPE_PROP(OnePLowDim, SpatialParams, OnePSpatialParams< typename GET_PROP_TYPE(TypeTag, FVGridGeometry), - typename GET_PROP_TYPE(TypeTag, Scalar) >); +template<class TypeTag> +struct SpatialParams<TypeTag, TTag::OnePLowDim> +{ + using type = OnePSpatialParams< GetPropType<TypeTag, Properties::FVGridGeometry>, + GetPropType<TypeTag, Properties::Scalar> >; +}; // the fluid system -SET_PROP(OnePLowDim, FluidSystem) +template<class TypeTag> +struct FluidSystem<TypeTag, TTag::OnePLowDim> { private: - using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); + using Scalar = GetPropType<TypeTag, Properties::Scalar>; public: using type = FluidSystems::OnePLiquid< Scalar, Components::SimpleH2O<Scalar> >; }; @@ -77,7 +87,7 @@ class OnePLowDimProblem : public PorousMediumFlowProblem<TypeTag> { using ParentType = PorousMediumFlowProblem<TypeTag>; - using GridVariables = typename GET_PROP_TYPE(TypeTag, GridVariables); + using GridVariables = GetPropType<TypeTag, Properties::GridVariables>; using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView; using PrimaryVariables = typename GridVariables::PrimaryVariables; using Scalar = typename GridVariables::Scalar; @@ -89,10 +99,10 @@ class OnePLowDimProblem : public PorousMediumFlowProblem<TypeTag> using Element = typename GridView::template Codim<0>::Entity; using GlobalPosition = typename Element::Geometry::GlobalCoordinate; - using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes); - using CouplingManager = typename GET_PROP_TYPE(TypeTag, CouplingManager); - using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector); - using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices; + using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>; + using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; + using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; public: OnePLowDimProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry, diff --git a/test/multidomain/facet/tracer_tracer/problem_tracer_bulk.hh b/test/multidomain/facet/tracer_tracer/problem_tracer_bulk.hh index 6718828ece1698b366f7230bda20acb97b4ee1cd..06c1ab2b44891a7d0ac592e0edb41bbffeaff894 100644 --- a/test/multidomain/facet/tracer_tracer/problem_tracer_bulk.hh +++ b/test/multidomain/facet/tracer_tracer/problem_tracer_bulk.hh @@ -44,44 +44,55 @@ template <class TypeTag> class TracerBulkProblem; namespace Properties { -NEW_TYPE_TAG(TracerTestBulk, INHERITS_FROM(Tracer)); +// Create new type tags +namespace TTag { +struct TracerTestBulk { using InheritsFrom = std::tuple<Tracer>; }; // define the type tags -NEW_TYPE_TAG(TracerBulkTpfa, INHERITS_FROM(TracerTestBulk, CCTpfaFacetCouplingModel)); -NEW_TYPE_TAG(TracerBulkBox, INHERITS_FROM(TracerTestBulk, BoxFacetCouplingModel)); +struct TracerBulkTpfa { using InheritsFrom = std::tuple<CCTpfaFacetCouplingModel, TracerTestBulk>; }; +struct TracerBulkBox { using InheritsFrom = std::tuple<BoxFacetCouplingModel, TracerTestBulk>; }; +} // end namespace TTag // Set the grid type -SET_TYPE_PROP(TracerTestBulk, Grid, Dune::ALUGrid<2, 2, Dune::simplex, Dune::conforming>); +template<class TypeTag> +struct Grid<TypeTag, TTag::TracerTestBulk> { using type = Dune::ALUGrid<2, 2, Dune::simplex, Dune::conforming>; }; //! Overwrite the advection type property -SET_TYPE_PROP(TracerBulkTpfa, AdvectionType, StationaryVelocityField<typename GET_PROP_TYPE(TypeTag, Scalar)>); -SET_TYPE_PROP(TracerBulkBox, AdvectionType, StationaryVelocityField<typename GET_PROP_TYPE(TypeTag, Scalar)>); +template<class TypeTag> +struct AdvectionType<TypeTag, TTag::TracerBulkTpfa> { using type = StationaryVelocityField<GetPropType<TypeTag, Properties::Scalar>>; }; +template<class TypeTag> +struct AdvectionType<TypeTag, TTag::TracerBulkBox> { using type = StationaryVelocityField<GetPropType<TypeTag, Properties::Scalar>>; }; // Set the problem property -SET_TYPE_PROP(TracerTestBulk, Problem, TracerBulkProblem<TypeTag>); +template<class TypeTag> +struct Problem<TypeTag, TTag::TracerTestBulk> { using type = TracerBulkProblem<TypeTag>; }; // Set the spatial parameters -SET_PROP(TracerTestBulk, SpatialParams) +template<class TypeTag> +struct SpatialParams<TypeTag, TTag::TracerTestBulk> { - using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); - using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); + using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>; + using Scalar = GetPropType<TypeTag, Properties::Scalar>; using type = TracerSpatialParams<FVGridGeometry, Scalar>; }; // Define whether mole(true) or mass (false) fractions are used -SET_BOOL_PROP(TracerTestBulk, UseMoles, false); +template<class TypeTag> +struct UseMoles<TypeTag, TTag::TracerTestBulk> { static constexpr bool value = false; }; //! set the model traits (with disabled diffusion) -SET_PROP(TracerTestBulk, ModelTraits) +template<class TypeTag> +struct ModelTraits<TypeTag, TTag::TracerTestBulk> { private: - using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem); + using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; public: - using type = TracerTestModelTraits<FluidSystem::numComponents, GET_PROP_VALUE(TypeTag, UseMoles)>; + using type = TracerTestModelTraits<FluidSystem::numComponents, getPropValue<TypeTag, Properties::UseMoles>()>; }; // use the test-specific fluid system -SET_TYPE_PROP(TracerTestBulk, FluidSystem, TracerFluidSystem<TypeTag>); +template<class TypeTag> +struct FluidSystem<TypeTag, TTag::TracerTestBulk> { using type = TracerFluidSystem<TypeTag>; }; } // end namespace Properties @@ -95,19 +106,19 @@ class TracerBulkProblem : public PorousMediumFlowProblem<TypeTag> { using ParentType = PorousMediumFlowProblem<TypeTag>; - using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); - using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices; - using GridView = typename GET_PROP_TYPE(TypeTag, GridView); - using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); + using Scalar = GetPropType<TypeTag, Properties::Scalar>; + using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; + using GridView = GetPropType<TypeTag, Properties::GridView>; + using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>; using FVElementGeometry = typename FVGridGeometry::LocalView; - using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes); - using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables); - using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector); - using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem); - using CouplingManager = typename GET_PROP_TYPE(TypeTag, CouplingManager); + using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; + using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; + using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; + using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>; //! property that defines whether mole or mass fractions are used - static constexpr bool useMoles = GET_PROP_VALUE(TypeTag, UseMoles); + static constexpr bool useMoles = getPropValue<TypeTag, Properties::UseMoles>(); using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; using GlobalPosition = typename Element::Geometry::GlobalCoordinate; diff --git a/test/multidomain/facet/tracer_tracer/problem_tracer_lowdim.hh b/test/multidomain/facet/tracer_tracer/problem_tracer_lowdim.hh index a96185c465b69469b126601a75841e954eea1b5a..232cb32b77238bedd346609fa1455603405bdbcd 100644 --- a/test/multidomain/facet/tracer_tracer/problem_tracer_lowdim.hh +++ b/test/multidomain/facet/tracer_tracer/problem_tracer_lowdim.hh @@ -44,40 +44,49 @@ template <class TypeTag> class TracerLowDimProblem; namespace Properties { -NEW_TYPE_TAG(TracerTestLowDim, INHERITS_FROM(Tracer)); +// Create new type tags +namespace TTag { +struct TracerTestLowDim { using InheritsFrom = std::tuple<Tracer>; }; // define the type tags for both bulk and lowdim type tag here -NEW_TYPE_TAG(TracerLowDimTpfa, INHERITS_FROM(CCTpfaModel, TracerTestLowDim)); -NEW_TYPE_TAG(TracerLowDimBox, INHERITS_FROM(BoxModel, TracerTestLowDim)); +struct TracerLowDimTpfa { using InheritsFrom = std::tuple<TracerTestLowDim, CCTpfaModel>; }; +struct TracerLowDimBox { using InheritsFrom = std::tuple<TracerTestLowDim, BoxModel>; }; +} // end namespace TTag // Set the grid type -SET_TYPE_PROP(TracerTestLowDim, Grid, Dune::FoamGrid<1, 2>); +template<class TypeTag> +struct Grid<TypeTag, TTag::TracerTestLowDim> { using type = Dune::FoamGrid<1, 2>; }; // Set the problem property -SET_TYPE_PROP(TracerTestLowDim, Problem, TracerLowDimProblem<TypeTag>); +template<class TypeTag> +struct Problem<TypeTag, TTag::TracerTestLowDim> { using type = TracerLowDimProblem<TypeTag>; }; // Set the spatial parameters -SET_PROP(TracerTestLowDim, SpatialParams) +template<class TypeTag> +struct SpatialParams<TypeTag, TTag::TracerTestLowDim> { - using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); - using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); + using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>; + using Scalar = GetPropType<TypeTag, Properties::Scalar>; using type = TracerSpatialParams<FVGridGeometry, Scalar>; }; // Define whether mole(true) or mass (false) fractions are used -SET_BOOL_PROP(TracerTestLowDim, UseMoles, false); +template<class TypeTag> +struct UseMoles<TypeTag, TTag::TracerTestLowDim> { static constexpr bool value = false; }; //! set the model traits (with disabled diffusion) -SET_PROP(TracerTestLowDim, ModelTraits) +template<class TypeTag> +struct ModelTraits<TypeTag, TTag::TracerTestLowDim> { private: - using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem); + using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; public: - using type = TracerTestModelTraits<FluidSystem::numComponents, GET_PROP_VALUE(TypeTag, UseMoles)>; + using type = TracerTestModelTraits<FluidSystem::numComponents, getPropValue<TypeTag, Properties::UseMoles>()>; }; // use the test-specific fluid system -SET_TYPE_PROP(TracerTestLowDim, FluidSystem, TracerFluidSystem<TypeTag>); +template<class TypeTag> +struct FluidSystem<TypeTag, TTag::TracerTestLowDim> { using type = TracerFluidSystem<TypeTag>; }; } // end namespace Properties @@ -92,19 +101,19 @@ class TracerLowDimProblem : public PorousMediumFlowProblem<TypeTag> { using ParentType = PorousMediumFlowProblem<TypeTag>; - using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); - using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices; - using GridView = typename GET_PROP_TYPE(TypeTag, GridView); - using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); + using Scalar = GetPropType<TypeTag, Properties::Scalar>; + using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; + using GridView = GetPropType<TypeTag, Properties::GridView>; + using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>; using FVElementGeometry = typename FVGridGeometry::LocalView; - using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes); - using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables); - using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector); - using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem); - using CouplingManager = typename GET_PROP_TYPE(TypeTag, CouplingManager); + using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; + using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; + using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; + using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>; //! property that defines whether mole or mass fractions are used - static constexpr bool useMoles = GET_PROP_VALUE(TypeTag, UseMoles); + static constexpr bool useMoles = getPropValue<TypeTag, Properties::UseMoles>(); using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; using GlobalPosition = typename Element::Geometry::GlobalCoordinate; diff --git a/test/multidomain/facet/tracer_tracer/tracerfluidsystem.hh b/test/multidomain/facet/tracer_tracer/tracerfluidsystem.hh index a363bf81b02ac972d5f9fd33267dbbad2eb7b324..1b3376a1067471668f2809a568357e1491a362d0 100644 --- a/test/multidomain/facet/tracer_tracer/tracerfluidsystem.hh +++ b/test/multidomain/facet/tracer_tracer/tracerfluidsystem.hh @@ -29,14 +29,14 @@ namespace Dumux { //! A simple fluid system with one tracer component template<class TypeTag> -class TracerFluidSystem : public FluidSystems::Base<typename GET_PROP_TYPE(TypeTag, Scalar), +class TracerFluidSystem : public FluidSystems::Base<GetPropType<TypeTag, Properties::Scalar>, TracerFluidSystem<TypeTag>> { - using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); - using Problem = typename GET_PROP_TYPE(TypeTag, Problem); - using GridView = typename GET_PROP_TYPE(TypeTag, GridView); + using Scalar = GetPropType<TypeTag, Properties::Scalar>; + using Problem = GetPropType<TypeTag, Properties::Problem>; + using GridView = GetPropType<TypeTag, Properties::GridView>; using Element = typename GridView::template Codim<0>::Entity; - using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry)::LocalView; + using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; public: