diff --git a/dumux/porousmediumflow/boxdfm/subcontrolvolume.hh b/dumux/porousmediumflow/boxdfm/subcontrolvolume.hh index 38a7c2d5d092ff3bc40adad0ddb337a37d4d417d..9a9409e5f88237773ea9c1832859f04917fce0dd 100644 --- a/dumux/porousmediumflow/boxdfm/subcontrolvolume.hh +++ b/dumux/porousmediumflow/boxdfm/subcontrolvolume.hh @@ -93,6 +93,7 @@ public: , elemLocalScvIdx_(scvIdx) , dofIndex_(dofIndex) , facetIdx_(0) + , indexInIntersection_(0) { auto corners = geometryHelper.getScvCorners(scvIdx); dofPosition_ = corners[0]; @@ -132,6 +133,7 @@ public: , elemLocalScvIdx_(elemLocalScvIdx) , dofIndex_(dofIndex) , facetIdx_(elemLocalFacetIdx) + , indexInIntersection_(indexInIntersection) { auto corners = geometryHelper.getBoundaryScvfCorners(intersection.indexInInside(), indexInIntersection); dofPosition_ = corners[0]; @@ -166,6 +168,10 @@ public: LocalIndexType facetIndexInElement() const { assert(isFractureScv_); return facetIdx_; } + //! The local vertex index in the intersection + LocalIndexType indexInsideIntersection() const + { assert(isFractureScv_); return indexInIntersection_; } + //! The index of the dof this scv is embedded in GridIndexType dofIndex() const { return dofIndex_; } @@ -194,6 +200,7 @@ private: // for fracture scvs only! LocalIndexType facetIdx_; + LocalIndexType indexInIntersection_; }; } // end namespace diff --git a/dumux/porousmediumflow/boxdfm/subcontrolvolumeface.hh b/dumux/porousmediumflow/boxdfm/subcontrolvolumeface.hh index 4fecd088bc627df4c0c25cfadac36377140c2d63..312f2702a309b41cb6409ce4394a7d7d03be4e7e 100644 --- a/dumux/porousmediumflow/boxdfm/subcontrolvolumeface.hh +++ b/dumux/porousmediumflow/boxdfm/subcontrolvolumeface.hh @@ -95,6 +95,7 @@ public: , isFractureScvf_(false) , boundaryFlag_{} , facetIdx_(0) + , indexInIntersection_(0) { auto corners = geometryHelper.getScvfCorners(scvfIndex); unitOuterNormal_ = geometryHelper.normal(corners, scvIndices_); @@ -123,6 +124,7 @@ public: , isFractureScvf_(false) , boundaryFlag_{intersection} , facetIdx_(0) + , indexInIntersection_(0) { auto corners = geometryHelper.getBoundaryScvfCorners(intersection.indexInInside(), indexInIntersection); area_ = Dumux::convexPolytopeVolume<T::dim-1>( @@ -149,6 +151,7 @@ public: , isFractureScvf_(true) , boundaryFlag_{intersection} , facetIdx_(intersection.indexInInside()) + , indexInIntersection_(indexInIntersection) { auto corners = geometryHelper.getFractureScvfCorners(intersection.indexInInside(), indexInIntersection); // The area here is given in meters. In order to @@ -200,6 +203,10 @@ public: LocalIndexType facetIndexInElement() const { assert(isFractureScvf_); return facetIdx_; } + //! The local edge index inside the intersection + LocalIndexType indexInIntersection() const + { assert(isFractureScvf_); return indexInIntersection_; } + //! Returns the boundary flag typename BoundaryFlag::value_type boundaryFlag() const { return boundaryFlag_.get(); } @@ -232,6 +239,7 @@ private: bool isFractureScvf_; BoundaryFlag boundaryFlag_; LocalIndexType facetIdx_; + LocalIndexType indexInIntersection_; }; } // end namespace Dumux