diff --git a/test/multidomain/facet/1p_1p/analytical/main.cc b/test/multidomain/facet/1p_1p/analytical/main.cc index 85cd06a63bb1338e69fd1c7cfcb29b643163595c..77ec421942b1bb01967a89c5e2266008de772f1d 100644 --- a/test/multidomain/facet/1p_1p/analytical/main.cc +++ b/test/multidomain/facet/1p_1p/analytical/main.cc @@ -224,16 +224,20 @@ int main(int argc, char** argv) try updateBulkFVGridGeometry(*bulkFvGridGeometry, gridManager, lowDimGridView); lowDimFvGridGeometry->update(); + // the coupling manager + using TestTraits = TestTraits<BulkProblemTypeTag, LowDimProblemTypeTag>; + using CouplingManager = typename TestTraits::CouplingManager; + auto couplingManager = std::make_shared<CouplingManager>(); + // the problems (boundary conditions) using BulkProblem = typename GET_PROP_TYPE(BulkProblemTypeTag, Problem); using LowDimProblem = typename GET_PROP_TYPE(LowDimProblemTypeTag, Problem); auto bulkSpatialParams = std::make_shared<typename BulkProblem::SpatialParams>(bulkFvGridGeometry, "Bulk"); - auto bulkProblem = std::make_shared<BulkProblem>(bulkFvGridGeometry, bulkSpatialParams, "Bulk"); + auto bulkProblem = std::make_shared<BulkProblem>(bulkFvGridGeometry, bulkSpatialParams, couplingManager, "Bulk"); auto lowDimSpatialParams = std::make_shared<typename LowDimProblem::SpatialParams>(lowDimFvGridGeometry, "LowDim"); - auto lowDimProblem = std::make_shared<LowDimProblem>(lowDimFvGridGeometry, lowDimSpatialParams, "LowDim"); + auto lowDimProblem = std::make_shared<LowDimProblem>(lowDimFvGridGeometry, lowDimSpatialParams, couplingManager, "LowDim"); // the solution vector - using TestTraits = TestTraits<BulkProblemTypeTag, LowDimProblemTypeTag>; using MDTraits = typename TestTraits::MDTraits; using SolutionVector = typename MDTraits::SolutionVector; SolutionVector x; @@ -249,15 +253,9 @@ int main(int argc, char** argv) try auto couplingMapper = std::make_shared<typename TestTraits::CouplingMapper>(); couplingMapper->update(*bulkFvGridGeometry, *lowDimFvGridGeometry, gridManager.getEmbeddings()); - // the coupling manager - using CouplingManager = typename TestTraits::CouplingManager; - auto couplingManager = std::make_shared<CouplingManager>(); + // initialize the coupling manager couplingManager->init(bulkProblem, lowDimProblem, couplingMapper, x); - // set coupling manager pointer in sub-problems - bulkProblem->setCouplingManager(couplingManager); - lowDimProblem->setCouplingManager(couplingManager); - // the grid variables using BulkGridVariables = typename GET_PROP_TYPE(BulkProblemTypeTag, GridVariables); using LowDimGridVariables = typename GET_PROP_TYPE(LowDimProblemTypeTag, GridVariables); diff --git a/test/multidomain/facet/1p_1p/analytical/problem_bulk.hh b/test/multidomain/facet/1p_1p/analytical/problem_bulk.hh index be62c14f1d07c4c00474d670bfebf3f029b456f2..acf78c3f276736812cf7efc68879e397affcb154 100644 --- a/test/multidomain/facet/1p_1p/analytical/problem_bulk.hh +++ b/test/multidomain/facet/1p_1p/analytical/problem_bulk.hh @@ -95,8 +95,10 @@ class OnePBulkProblem : public PorousMediumFlowProblem<TypeTag> public: OnePBulkProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry, std::shared_ptr<typename ParentType::SpatialParams> spatialParams, + std::shared_ptr<CouplingManager> couplingManagerPtr, const std::string& paramGroup = "Bulk") : ParentType(fvGridGeometry, spatialParams, paramGroup) + , couplingManagerPtr_(couplingManagerPtr) , lowDimPermeability_(getParam<Scalar>("LowDim.SpatialParams.Permeability")) , aperture_(getParam<Scalar>("Problem.FractureAperture")) { @@ -189,10 +191,6 @@ public: Scalar temperature() const { return 283.15; /*10°*/ } - //! sets the pointer to the coupling manager. - void setCouplingManager(std::shared_ptr<CouplingManager> cm) - { couplingManagerPtr_ = cm; } - //! returns reference to the coupling manager. const CouplingManager& couplingManager() const { return *couplingManagerPtr_; } diff --git a/test/multidomain/facet/1p_1p/analytical/problem_lowdim.hh b/test/multidomain/facet/1p_1p/analytical/problem_lowdim.hh index 27474f6d33555b7e238998ca7dbe53d6a64a8c99..a2994affb00f4331141fae21126fcb970b5acecf 100644 --- a/test/multidomain/facet/1p_1p/analytical/problem_lowdim.hh +++ b/test/multidomain/facet/1p_1p/analytical/problem_lowdim.hh @@ -95,8 +95,10 @@ class OnePLowDimProblem : public PorousMediumFlowProblem<TypeTag> public: OnePLowDimProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry, std::shared_ptr<typename ParentType::SpatialParams> spatialParams, + std::shared_ptr<CouplingManager> couplingManagerPtr, const std::string& paramGroup = "LowDim") : ParentType(fvGridGeometry, spatialParams, paramGroup) + , couplingManagerPtr_(couplingManagerPtr) , aperture_(getParam<Scalar>("Problem.FractureAperture")) { problemName_ = getParam<std::string>("Vtk.OutputName") + "_" + getParamFromGroup<std::string>(this->paramGroup(), "Problem.Name"); @@ -158,10 +160,6 @@ public: Scalar temperature() const { return 283.15; /*10°*/ } - //! sets the pointer to the coupling manager. - void setCouplingManager(std::shared_ptr<CouplingManager> cm) - { couplingManagerPtr_ = cm; } - //! returns reference to the coupling manager. const CouplingManager& couplingManager() const { return *couplingManagerPtr_; } diff --git a/test/multidomain/facet/1p_1p/threedomain/main.cc b/test/multidomain/facet/1p_1p/threedomain/main.cc index ddc08ac3167f245a0a9e07f043584c4390114ab1..c15870ea83ad824bd73946a14b5c70d52ca0cc9a 100644 --- a/test/multidomain/facet/1p_1p/threedomain/main.cc +++ b/test/multidomain/facet/1p_1p/threedomain/main.cc @@ -122,16 +122,20 @@ int main(int argc, char** argv) try facetFvGridGeometry->update(); edgeFvGridGeometry->update(); + // the coupling manager + using CouplingManager = typename TestTraits::CouplingManager; + auto couplingManager = std::make_shared<CouplingManager>(); + // the problems (boundary conditions) using BulkProblem = typename GET_PROP_TYPE(BulkProblemTypeTag, Problem); using FacetProblem = typename GET_PROP_TYPE(FacetProblemTypeTag, Problem); using EdgeProblem = typename GET_PROP_TYPE(EdgeProblemTypeTag, Problem); auto bulkSpatialParams = std::make_shared<typename BulkProblem::SpatialParams>(bulkFvGridGeometry, "Bulk"); - auto bulkProblem = std::make_shared<BulkProblem>(bulkFvGridGeometry, bulkSpatialParams, "Bulk"); + auto bulkProblem = std::make_shared<BulkProblem>(bulkFvGridGeometry, bulkSpatialParams, couplingManager, "Bulk"); auto facetSpatialParams = std::make_shared<typename FacetProblem::SpatialParams>(facetFvGridGeometry, "Facet"); - auto facetProblem = std::make_shared<FacetProblem>(facetFvGridGeometry, facetSpatialParams, "Facet"); + auto facetProblem = std::make_shared<FacetProblem>(facetFvGridGeometry, facetSpatialParams, couplingManager, "Facet"); auto edgeSpatialParams = std::make_shared<typename EdgeProblem::SpatialParams>(edgeFvGridGeometry, "Edge"); - auto edgeProblem = std::make_shared<EdgeProblem>(edgeFvGridGeometry, edgeSpatialParams, "Edge"); + auto edgeProblem = std::make_shared<EdgeProblem>(edgeFvGridGeometry, edgeSpatialParams, couplingManager, "Edge"); // the solution vector using Traits = typename TestTraits::MDTraits; @@ -153,16 +157,9 @@ int main(int argc, char** argv) try auto couplingMapper = std::make_shared<CouplingMapper>(); couplingMapper->update(*bulkFvGridGeometry, *facetFvGridGeometry, *edgeFvGridGeometry, gridManager.getEmbeddings()); - // the coupling manager - using CouplingManager = typename TestTraits::CouplingManager; - auto couplingManager = std::make_shared<CouplingManager>(); + // initialize the coupling manager couplingManager->init(bulkProblem, facetProblem, edgeProblem, couplingMapper, x); - // set coupling manager pointer in sub-problems - bulkProblem->setCouplingManager(couplingManager); - facetProblem->setCouplingManager(couplingManager); - edgeProblem->setCouplingManager(couplingManager); - // the grid variables using BulkGridVariables = typename GET_PROP_TYPE(BulkProblemTypeTag, GridVariables); using FacetGridVariables = typename GET_PROP_TYPE(FacetProblemTypeTag, GridVariables); diff --git a/test/multidomain/facet/1p_1p/threedomain/problem_bulk.hh b/test/multidomain/facet/1p_1p/threedomain/problem_bulk.hh index 49699ac073dfc2927d1230e5b9c61f0511c053a2..9b201894353dc7a59f15bdf075275b006e6056eb 100644 --- a/test/multidomain/facet/1p_1p/threedomain/problem_bulk.hh +++ b/test/multidomain/facet/1p_1p/threedomain/problem_bulk.hh @@ -96,8 +96,10 @@ public: //! The constructor OnePBulkProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry, std::shared_ptr<typename ParentType::SpatialParams> spatialParams, + std::shared_ptr<CouplingManager> couplingManagerPtr, const std::string& paramGroup = "Bulk") : ParentType(fvGridGeometry, spatialParams, paramGroup) + , couplingManagerPtr_(couplingManagerPtr) { problemName_ = getParam<std::string>("Vtk.OutputName") + "_" + getParamFromGroup<std::string>(this->paramGroup(), "Problem.Name"); } @@ -157,10 +159,6 @@ public: const CouplingManager& couplingManager() const { return *couplingManagerPtr_; } - //! sets the pointer to the coupling manager. - void setCouplingManager(std::shared_ptr<CouplingManager> cm) - { couplingManagerPtr_ = cm; } - private: std::string problemName_; std::shared_ptr<CouplingManager> couplingManagerPtr_; diff --git a/test/multidomain/facet/1p_1p/threedomain/problem_edge.hh b/test/multidomain/facet/1p_1p/threedomain/problem_edge.hh index 1274935d2f9acdc6b6843c6d7af9986fdb8ea235..d48f46f4ec98a16060d9268be2984ed32578096a 100644 --- a/test/multidomain/facet/1p_1p/threedomain/problem_edge.hh +++ b/test/multidomain/facet/1p_1p/threedomain/problem_edge.hh @@ -100,8 +100,10 @@ public: //! The constructor OnePEdgeProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry, std::shared_ptr<typename ParentType::SpatialParams> spatialParams, + std::shared_ptr<CouplingManager> couplingManagerPtr, const std::string& paramGroup = "Edge") : ParentType(fvGridGeometry, spatialParams, paramGroup) + , couplingManagerPtr_(couplingManagerPtr) { const auto a = getParam<Scalar>("Extrusion.Aperture"); exFactor_ = a*a; @@ -155,14 +157,10 @@ public: const CouplingManager& couplingManager() const { return *couplingManagerPtr_; } - //! sets the pointer to the coupling manager. - void setCouplingManager(std::shared_ptr<CouplingManager> cm) - { couplingManagerPtr_ = cm; } - private: - Scalar exFactor_; - std::string problemName_; std::shared_ptr<CouplingManager> couplingManagerPtr_; + std::string problemName_; + Scalar exFactor_; }; } // end namespace Dumux diff --git a/test/multidomain/facet/1p_1p/threedomain/problem_facet.hh b/test/multidomain/facet/1p_1p/threedomain/problem_facet.hh index 6da834a064c4df28e9eaa0404de63a1858f240bb..f56e7f63abd7ff2a10f9fbb3ead7779af6006836 100644 --- a/test/multidomain/facet/1p_1p/threedomain/problem_facet.hh +++ b/test/multidomain/facet/1p_1p/threedomain/problem_facet.hh @@ -100,8 +100,10 @@ public: //! The constructor OnePFacetProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry, std::shared_ptr<typename ParentType::SpatialParams> spatialParams, + std::shared_ptr<CouplingManager> couplingManagerPtr, const std::string& paramGroup = "Facet") : ParentType(fvGridGeometry, spatialParams, paramGroup) + , couplingManagerPtr_(couplingManagerPtr) , aperture_(getParam<Scalar>("Extrusion.Aperture")) { problemName_ = getParam<std::string>("Vtk.OutputName") + "_" + getParamFromGroup<std::string>(this->paramGroup(), "Problem.Name"); @@ -169,14 +171,10 @@ public: const CouplingManager& couplingManager() const { return *couplingManagerPtr_; } - //! sets the pointer to the coupling manager. - void setCouplingManager(std::shared_ptr<CouplingManager> cm) - { couplingManagerPtr_ = cm; } - private: - Scalar aperture_; - std::string problemName_; std::shared_ptr<CouplingManager> couplingManagerPtr_; + std::string problemName_; + Scalar aperture_; }; } // end namespace Dumux