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