diff --git a/dumux/discretization/staggered/freeflow/subcontrolvolumeface.hh b/dumux/discretization/staggered/freeflow/subcontrolvolumeface.hh index 03fcac783455f64f37d0b59804974e6418fa72e4..b556ba25424058572d08db8715bc2811c7f6c388 100644 --- a/dumux/discretization/staggered/freeflow/subcontrolvolumeface.hh +++ b/dumux/discretization/staggered/freeflow/subcontrolvolumeface.hh @@ -107,8 +107,18 @@ public: dirIdx_ = geometryHelper.directionIndex(); normalInPosCoordDir_ = unitOuterNormal()[directionIndex()] > 0.0; outerNormalScalar_ = unitOuterNormal()[directionIndex()]; + isGhostFace_ = false; } + //! Constructor for a ghost face outside of the domain. Only needed to retrieve the center and scvIndices + StaggeredSubControlVolumeFace(const GlobalPosition& dofPosition, + const std::vector<IndexType>& scvIndices) + { + isGhostFace_ = true; + center_ = dofPosition; + scvIndices_ = scvIndices; + scvfIndex_ = -1; + } /*//! The copy constrcutor StaggeredSubControlVolumeFace(const StaggeredSubControlVolumeFace& other) = delete; @@ -139,6 +149,12 @@ public: return center_; } + //! The center of the sub control volume face + GlobalPosition dofPosition() const + { + return center_; + } + //! The integration point for flux evaluations in global coordinates GlobalPosition ipGlobal() const { @@ -265,6 +281,7 @@ private: int dirIdx_; bool normalInPosCoordDir_; Scalar outerNormalScalar_; + bool isGhostFace_; };