diff --git a/dumux/discretization/staggered/staggeredgeometryhelper.hh b/dumux/discretization/staggered/staggeredgeometryhelper.hh index 46baf40989958b9987cf9dbc85947f4a15e6c078..614507c36c30fa0e13b104888af74a2842c0a6e4 100644 --- a/dumux/discretization/staggered/staggeredgeometryhelper.hh +++ b/dumux/discretization/staggered/staggeredgeometryhelper.hh @@ -36,7 +36,8 @@ namespace Dumux template<class Scalar> struct PairData { - int outerParallel; + int outerParallelFaceDofIdx; + int outerParallelElementDofIdx; std::pair<int,int> normalPair; int globalCommonEntIdx; Scalar parallelDistance; @@ -131,7 +132,8 @@ public: // initialize values that could remain unitialized if the intersection lies on a boundary for(auto& data : pairData_) { - data.outerParallel = 0; + data.outerParallelFaceDofIdx = 0; + data.outerParallelElementDofIdx = 0; data.normalDistance = 0; data.parallelDistance = 0; } @@ -204,7 +206,8 @@ public: { if(globalCommonEntIdx == pairData_[pairIdx].globalCommonEntIdx) { - pairData_[pairIdx].outerParallel = gridView_.indexSet().subIndex(diagonalNeighbor, dIs.indexInInside(), dim-1) + offset_; + pairData_[pairIdx].outerParallelFaceDofIdx = gridView_.indexSet().subIndex(diagonalNeighbor, dIs.indexInInside(), dim-1) + offset_; + pairData_[pairIdx].outerParallelElementDofIdx = dIs.indexInOutside(); const auto& selfFacet = element_.template subEntity <1> (indexInInside); const auto& parallelFacet = diagonalNeighbor.template subEntity <1> (dIs.indexInInside()); pairData_[pairIdx].parallelDistance = (selfFacet.geometry().center() - parallelFacet.geometry().center()).two_norm(); diff --git a/test/discretization/staggered/test_staggered.cc b/test/discretization/staggered/test_staggered.cc index 9195ad767417527ea2cd20b9d6a9a5eba99de07d..dabcd115e0a78909fe41ba85c63f2d4ac5c54f9d 100644 --- a/test/discretization/staggered/test_staggered.cc +++ b/test/discretization/staggered/test_staggered.cc @@ -148,8 +148,8 @@ int main (int argc, char *argv[]) try << "; dist self/oppo " << std::setw(3) << scvf.selfToOppositeDistance() << ", norm1 in/out " << std::setw(3) << scvf.pairData(0).normalPair.first << "/" << std::setw(3) << scvf.pairData(0).normalPair.second << ", norm2 in/out " << std::setw(3) << scvf.pairData(1).normalPair.first << "/" << std::setw(3) << scvf.pairData(1).normalPair.second - << ", par1 in/out " << std::setw(3) << scvf.dofIndexSelf() << "/" << std::setw(3) << scvf.pairData(0).outerParallel - << ", par2 in/out " << std::setw(3) << scvf.dofIndexSelf() << "/" << std::setw(3) << scvf.pairData(1).outerParallel + << ", par1 in/out " << std::setw(3) << scvf.dofIndexSelf() << "/" << std::setw(3) << scvf.pairData(0).outerParallelFaceDofIdx + << ", par2 in/out " << std::setw(3) << scvf.dofIndexSelf() << "/" << std::setw(3) << scvf.pairData(1).outerParallelFaceDofIdx << ", normDist1 " << std::setw(3) << scvf.pairData(0).normalDistance << ", normDist2 " << std::setw(3) << scvf.pairData(1).normalDistance << ", parDist1 " << std::setw(3) << scvf.pairData(0).parallelDistance