From ddf0e23e9b09d593a40b4c600f0498c11ee2d10d Mon Sep 17 00:00:00 2001
From: Kilian Weishaupt <kilian.weishaupt@iws.uni-stuttgart.de>
Date: Mon, 13 Nov 2017 13:54:54 +0100
Subject: [PATCH] [staggered] Move numDofs to fvGridGeometry

---
 dumux/assembly/staggeredfvassembler.hh        | 22 +++++--------------
 .../staggered/fvgridgeometry.hh               | 10 +++++++++
 test/freeflow/staggered/doneatestproblem.hh   |  4 ++--
 .../staggered/kovasznaytestproblem.hh         |  4 ++--
 4 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/dumux/assembly/staggeredfvassembler.hh b/dumux/assembly/staggeredfvassembler.hh
index 1ab803e6c0..da1834dd3e 100644
--- a/dumux/assembly/staggeredfvassembler.hh
+++ b/dumux/assembly/staggeredfvassembler.hh
@@ -223,8 +223,8 @@ public:
     Scalar residualNorm(const SolutionVector& curSol) const
     {
         ResidualType residual;
-        residual[cellCenterIdx].resize(numCellCenterDofs());
-        residual[faceIdx].resize(numFaceDofs());
+        residual[cellCenterIdx].resize(fvGridGeometry().numCellCenterDofs());
+        residual[faceIdx].resize(fvGridGeometry().numFaceDofs());
         assembleResidual(residual, curSol);
 
         // calculate the square norm of the residual
@@ -315,8 +315,8 @@ public:
     void setJacobianPattern()
     {
         // resize the jacobian and the residual
-        const auto numDofsCC = numCellCenterDofs();
-        const auto numDofsFace = numFaceDofs();
+        const auto numDofsCC = fvGridGeometry().numCellCenterDofs();
+        const auto numDofsFace = fvGridGeometry().numFaceDofs();
 
         // convenience references
         CCToCCMatrixBlock& A11 = (*jacobian_)[cellCenterIdx][cellCenterIdx];
@@ -379,20 +379,10 @@ public:
      */
     void setResidualSize()
     {
-        (*residual_)[cellCenterIdx].resize(numCellCenterDofs());
-        (*residual_)[faceIdx].resize(numFaceDofs());
+        (*residual_)[cellCenterIdx].resize(fvGridGeometry().numCellCenterDofs());
+        (*residual_)[faceIdx].resize(fvGridGeometry().numFaceDofs());
     }
 
-    //! cell-centered schemes have one dof per cell
-    std::size_t numDofs() const
-    { return numCellCenterDofs() + numFaceDofs(); }
-
-    std::size_t numCellCenterDofs() const
-    { return gridView().size(0); }
-
-    std::size_t numFaceDofs() const
-    { return gridView().size(1); }
-
     const Problem& problem() const
     { return *problem_; }
 
diff --git a/dumux/discretization/staggered/fvgridgeometry.hh b/dumux/discretization/staggered/fvgridgeometry.hh
index 8978074e8a..5dce791e73 100644
--- a/dumux/discretization/staggered/fvgridgeometry.hh
+++ b/dumux/discretization/staggered/fvgridgeometry.hh
@@ -97,6 +97,16 @@ public:
         return intersectionMapper_.numIntersections();
     }
 
+    //! the total number of dofs
+    std::size_t numDofs() const
+    { return numCellCenterDofs() + numFaceDofs(); }
+
+    std::size_t numCellCenterDofs() const
+    { return this->gridView().size(0); }
+
+    std::size_t numFaceDofs() const
+    { return this->gridView().size(1); }
+
     // Get an element from a sub control volume contained in it
     Element element(const SubControlVolume& scv) const
     { return elementMap_.element(scv.elementIndex()); }
diff --git a/test/freeflow/staggered/doneatestproblem.hh b/test/freeflow/staggered/doneatestproblem.hh
index 963e87d00a..e9326f4b8f 100644
--- a/test/freeflow/staggered/doneatestproblem.hh
+++ b/test/freeflow/staggered/doneatestproblem.hh
@@ -376,8 +376,8 @@ private:
      */
     void createAnalyticalSolution_()
     {
-        analyticalPressure_.resize(this->fvGridGeometry().gridView().size(0));
-        analyticalVelocity_.resize(this->fvGridGeometry().gridView().size(0));
+        analyticalPressure_.resize(this->fvGridGeometry().numCellCenterDofs()));
+        analyticalVelocity_.resize(this->fvGridGeometry().numCellCenterDofs());
 
 
         for (const auto& element : elements(this->fvGridGeometry().gridView()))
diff --git a/test/freeflow/staggered/kovasznaytestproblem.hh b/test/freeflow/staggered/kovasznaytestproblem.hh
index 30371b3564..5864b28038 100644
--- a/test/freeflow/staggered/kovasznaytestproblem.hh
+++ b/test/freeflow/staggered/kovasznaytestproblem.hh
@@ -372,8 +372,8 @@ private:
      */
     void createAnalyticalSolution_()
     {
-        analyticalPressure_.resize(this->fvGridGeometry().gridView().size(0));
-        analyticalVelocity_.resize(this->fvGridGeometry().gridView().size(0));
+        analyticalPressure_.resize(this->fvGridGeometry().numCellCenterDofs());
+        analyticalVelocity_.resize(this->fvGridGeometry().numCellCenterDofs());
 
 
         for (const auto& element : elements(this->fvGridGeometry().gridView()))
-- 
GitLab