Commit 09c02994 authored by Dennis Gläser's avatar Dennis Gläser
Browse files

[mpfa][iavol] define global-local data pair in base class

parent 77e83cff
......@@ -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
......
......@@ -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,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment