From 854a47be6a2686ee0b1307e132563060766f33da Mon Sep 17 00:00:00 2001
From: Kilian Weishaupt <kilian.weishaupt@iws.uni-stuttgart.de>
Date: Thu, 5 Mar 2020 18:58:40 +0100
Subject: [PATCH] [md][stokesdarcy] Clean-up couplingmapper

Remove dependency on coupling traits
---
 .../boundary/stokesdarcy/couplingmanager.hh   |  2 +-
 .../boundary/stokesdarcy/couplingmapper.hh    | 19 +++----------------
 2 files changed, 4 insertions(+), 17 deletions(-)

diff --git a/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh b/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh
index 47c20dd3b5..ca7712ae35 100644
--- a/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh
+++ b/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh
@@ -94,7 +94,7 @@ private:
 
     using VelocityVector = typename Element<stokesIdx>::Geometry::GlobalCoordinate;
 
-    using CouplingMapper = StokesDarcyCouplingMapper<MDTraits>;
+    using CouplingMapper = StokesDarcyCouplingMapper;
 
     struct StationaryStokesCouplingContext
     {
diff --git a/dumux/multidomain/boundary/stokesdarcy/couplingmapper.hh b/dumux/multidomain/boundary/stokesdarcy/couplingmapper.hh
index 748060bf98..19568f399e 100644
--- a/dumux/multidomain/boundary/stokesdarcy/couplingmapper.hh
+++ b/dumux/multidomain/boundary/stokesdarcy/couplingmapper.hh
@@ -29,7 +29,6 @@
 #include <unordered_map>
 #include <vector>
 
-#include <dune/common/exceptions.hh>
 #include <dumux/discretization/method.hh>
 
 namespace Dumux {
@@ -38,20 +37,8 @@ namespace Dumux {
  * \ingroup StokesDarcyCoupling
  * \brief Coupling mapper for Stokes and Darcy domains with equal dimension.
  */
-template<class MDTraits>
 class StokesDarcyCouplingMapper
 {
-    using Scalar = typename MDTraits::Scalar;
-
-public:
-    static constexpr auto stokesCellCenterIdx = typename MDTraits::template SubDomain<0>::Index();
-    static constexpr auto stokesFaceIdx = typename MDTraits::template SubDomain<1>::Index();
-    static constexpr auto cellCenterIdx = typename MDTraits::template SubDomain<0>::Index();
-    static constexpr auto faceIdx = typename MDTraits::template SubDomain<1>::Index();
-    static constexpr auto stokesIdx = stokesCellCenterIdx;
-    static constexpr auto darcyIdx = typename MDTraits::template SubDomain<2>::Index();
-
-private:
     struct ElementMapInfo
     {
         std::size_t eIdx;
@@ -71,8 +58,8 @@ public:
                                         Stencils& stokesCellCenterToDarcyStencils,
                                         Stencils& stokesFaceToDarcyStencils)
     {
-        const auto& stokesFvGridGeometry = couplingManager.problem(stokesIdx).gridGeometry();
-        const auto& darcyFvGridGeometry = couplingManager.problem(darcyIdx).gridGeometry();
+        const auto& stokesFvGridGeometry = couplingManager.problem(CouplingManager::stokesIdx).gridGeometry();
+        const auto& darcyFvGridGeometry = couplingManager.problem(CouplingManager::darcyIdx).gridGeometry();
 
         static_assert(std::decay_t<decltype(stokesFvGridGeometry)>::discMethod == DiscretizationMethod::staggered,
                       "The free flow domain must use the staggered discretization");
@@ -126,7 +113,7 @@ public:
                 // find the corresponding Darcy sub control volume face
                 for (const auto& darcyScvf : scvfs(darcyFvGeometry))
                 {
-                    const Scalar distance = (darcyScvf.center() - scvf.center()).two_norm();
+                    const auto distance = (darcyScvf.center() - scvf.center()).two_norm();
 
                     if (distance < eps)
                     {
-- 
GitLab