From 09c029940a003040d21a43a0e5ebcba08be58c2a Mon Sep 17 00:00:00 2001
From: DennisGlaeser <dennis.glaeser@iws.uni-stuttgart.de>
Date: Fri, 3 Feb 2017 17:53:45 +0100
Subject: [PATCH] [mpfa][iavol] define global-local data pair in base class

---
 .../cellcentered/mpfa/interactionvolumebase.hh         | 10 ++++++----
 .../cellcentered/mpfa/omethod/interactionvolume.hh     |  4 +---
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/dumux/discretization/cellcentered/mpfa/interactionvolumebase.hh b/dumux/discretization/cellcentered/mpfa/interactionvolumebase.hh
index 32af446ad2..144e7881fb 100644
--- a/dumux/discretization/cellcentered/mpfa/interactionvolumebase.hh
+++ b/dumux/discretization/cellcentered/mpfa/interactionvolumebase.hh
@@ -91,6 +91,8 @@ public:
           isOutside(isOut) {}
     };
 
+    using GlobalLocalFaceDataPair = std::pair<const SubControlVolumeFace*, LocalFaceData>;
+
     //! solves the local equation system for the computation of the transmissibilities
     template<typename GetTensorFunction>
     void solveLocalSystem(const GetTensorFunction& getTensor)
@@ -104,10 +106,6 @@ public:
     const PositionVector& volVarsPositions() const
     { DUNE_THROW(Dune::NotImplemented, "Actual interaction volume implementation does not provide a volVarsPositions() method."); }
 
-    //! returns a list of global scvf indices that are connected to this interaction volume
-    const GlobalIndexSet& globalScvfs() const
-    { DUNE_THROW(Dune::NotImplemented, "Actual interaction volume implementation does not provide a globalScvfs() method."); }
-
     //! returns the local index of an scvf in the IV and a boolean whether or not it is on the negative side of the local scvf (flux has to be inverted)
     LocalFaceData getLocalFaceData(const SubControlVolumeFace& scvf) const
     { DUNE_THROW(Dune::NotImplemented, "Actual interaction volume implementation does not provide a getLocalFaceData() method."); }
@@ -128,6 +126,10 @@ public:
         assert(it != vector.end() && "could not find local index in the vector for the given global index!");
         return std::distance(vector.begin(), it);
     }
+
+    //! returns GlobalLocalFaceDataPair objects for the scvfs involved in this interaction volume
+    const std::vector<GlobalLocalFaceDataPair>& globalLocalScvfPairedData() const
+    { DUNE_THROW(Dune::NotImplemented, "Actual interaction volume implementation does not provide a globalLocalScvfPairedData() method."); }
 };
 
 } // end namespace
diff --git a/dumux/discretization/cellcentered/mpfa/omethod/interactionvolume.hh b/dumux/discretization/cellcentered/mpfa/omethod/interactionvolume.hh
index 444fc6a823..73991700b7 100644
--- a/dumux/discretization/cellcentered/mpfa/omethod/interactionvolume.hh
+++ b/dumux/discretization/cellcentered/mpfa/omethod/interactionvolume.hh
@@ -128,6 +128,7 @@ class CCMpfaOInteractionVolume : public CCMpfaInteractionVolumeBase<TypeTag, Tra
     using LocalScvfType = typename Traits::LocalScvfType;
 
 public:
+    using typename ParentType::GlobalLocalFaceDataPair;
     using typename ParentType::LocalIndexType;
     using typename ParentType::LocalIndexSet;
     using typename ParentType::LocalFaceData;
@@ -135,9 +136,6 @@ public:
     using typename ParentType::PositionVector;
     using typename ParentType::Seed;
 
-    // structure to store global and local face data
-    using GlobalLocalFaceDataPair = std::pair<const SubControlVolumeFace*, LocalFaceData>;
-
     CCMpfaOInteractionVolume(const Seed& seed,
                              const Problem& problem,
                              const FVElementGeometry& fvGeometry,
-- 
GitLab