diff --git a/CHANGELOG.md b/CHANGELOG.md
index 91506957eb6c7be0a4558da039621f237425c1d0..0af0739ed7e447a6c095584318dfac707aaa140a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -34,6 +34,9 @@ Differences Between DuMuX 2.10 and DuMuX 2.11
     - In the TwoPTwoC model, the indices are no longer dependent on the
       formulation. Further, the values of "nPhaseOnly" and "bothPhases"
       have been harmonized with those in TwoPNC
+	- In the NC models, the initial phase presence is now set by the function
+	  initialPhasePresenceAtPos(globalPos) instead of 
+	  initialPhasePresence(vertex, vIdxGlobal, globalPos) in the problem file.
 
 * Deprecated PROPERTY and PARAMETER NAMES, to be removed after 2.11: BEWARE: The
   compiler will not print any warning if a deprecated property or parameter name
diff --git a/dumux/implicit/problem.hh b/dumux/implicit/problem.hh
index 0d1ad8fc23fcaf3dfc4deeacf4a12442238bc921..08b0e93759e312c14a1aae0702c20f8ea5a3ac78 100644
--- a/dumux/implicit/problem.hh
+++ b/dumux/implicit/problem.hh
@@ -538,33 +538,6 @@ public:
                    "a initialAtPos() method.");
     }
 
-    /*!
-     * \brief Evaluate the initial phase state inside a control volume.
-     *
-     * \param vertex The vertex
-     * \param vIdxGlobal The global index of the vertex
-     * \param globalPos The global position
-     */
-    int initialPhasePresence(const Vertex &vertex,
-                             int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
-    {
-        // forward to generic interface
-        return asImp_().initialPhasePresenceAtPos(globalPos);
-    }
-
-    /*!
-     * \brief Evaluate the initial value for a control volume.
-     *
-     * \param globalPos The global position
-     */
-    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
-    {
-        DUNE_THROW(Dune::InvalidStateException,
-                   "The problem does not provide a initialPhasePresenceAtPos() method.");
-        return 0;
-    }
-
     /*!
      * \brief Return how much the domain is extruded at a given sub-control volume.
      *
diff --git a/dumux/porousmediumflow/2p1c/implicit/model.hh b/dumux/porousmediumflow/2p1c/implicit/model.hh
index 0ec78078c25bc6ad6d20375d57715ea7fcff2146..54eed461568d3e8de952ce84f8363a794ae26248 100644
--- a/dumux/porousmediumflow/2p1c/implicit/model.hh
+++ b/dumux/porousmediumflow/2p1c/implicit/model.hh
@@ -127,38 +127,25 @@ public:
 
         setSwitched_(false);
 
-        if (isBox)
-        {
-            for(const auto& vertex: vertices(this->gridView_()))
-            {
-                int globalIdx = this->dofMapper().index(vertex);
-                const GlobalPosition &globalPos = vertex.geometry().corner(0);
-
-                // initialize phase presence
-                staticDat_[globalIdx].phasePresence
-                    = this->problem_().initialPhasePresence(vertex, globalIdx,
-                                                        globalPos);
-                staticDat_[globalIdx].wasSwitched = false;
+        FVElementGeometry fvGeometry;
 
-                staticDat_[globalIdx].oldPhasePresence
-                    = staticDat_[globalIdx].phasePresence;
-            }
-        }
-        else
+        for (const auto& element : elements(this->gridView_()))
         {
-            for (const auto& element : elements(this->gridView_()))
+            // deal with the current element
+            fvGeometry.update(this->gridView_(), element);
+
+            // loop over all element vertices, i.e. sub control volumes
+            for (int scvIdx = 0; scvIdx < fvGeometry.numScv; scvIdx++)
             {
-                int globalIdx = this->dofMapper().index(element);
-                const GlobalPosition &globalPos = element.geometry().center();
+                // get the global index of the degree of freedom
+                int dofIdxGlobal = this->dofMapper().subIndex(element, scvIdx, dofCodim);
 
                 // initialize phase presence
-                staticDat_[globalIdx].phasePresence
-                    = this->problem_().initialPhasePresence(*this->gridView_().template begin<dim> (),
-                                                            globalIdx, globalPos);
-                staticDat_[globalIdx].wasSwitched = false;
+                staticDat_[dofIdxGlobal].phasePresence = this->problem_().initialPhasePresence(element, fvGeometry, scvIdx);
+
+                staticDat_[dofIdxGlobal].wasSwitched = false;
 
-                staticDat_[globalIdx].oldPhasePresence
-                    = staticDat_[globalIdx].phasePresence;
+                staticDat_[dofIdxGlobal].oldPhasePresence = staticDat_[dofIdxGlobal].phasePresence;
             }
         }
     }
diff --git a/dumux/porousmediumflow/2p2c/implicit/model.hh b/dumux/porousmediumflow/2p2c/implicit/model.hh
index 3a01803085d6ee1f8fa6906db5692bd9103c5bab..e551673bdd8715a06214d830865a2b058ba6a866 100644
--- a/dumux/porousmediumflow/2p2c/implicit/model.hh
+++ b/dumux/porousmediumflow/2p2c/implicit/model.hh
@@ -147,46 +147,29 @@ public:
     {
         ParentType::init(problem);
 
-        unsigned numDofs = this->numDofs();
-
-        staticDat_.resize(numDofs);
+        staticDat_.resize(this->numDofs());
 
         setSwitched_(false);
 
-        // check, if velocity output can be used (works only for cubes so far)
+        FVElementGeometry fvGeometry;
+
         for (const auto& element : elements(this->gridView_()))
         {
-            if (!isBox) // i.e. cell-centered discretization
-            {
-                int eIdxGlobal = this->dofMapper().index(element);
-                const GlobalPosition &globalPos = element.geometry().center();
-
-                // initialize phase presence
-                staticDat_[eIdxGlobal].phasePresence
-                    = this->problem_().initialPhasePresence(*(this->gridView_().template begin<dim>()),
-                                                            eIdxGlobal, globalPos);
-                staticDat_[eIdxGlobal].wasSwitched = false;
-
-                staticDat_[eIdxGlobal].oldPhasePresence
-                    = staticDat_[eIdxGlobal].phasePresence;
-            }
-        }
+            // deal with the current element
+            fvGeometry.update(this->gridView_(), element);
 
-        if (isBox) // i.e. vertex-centered discretization
-        {
-            for (const auto& vertex : vertices(this->gridView_()))
+            // loop over all element vertices, i.e. sub control volumes
+            for (int scvIdx = 0; scvIdx < fvGeometry.numScv; scvIdx++)
             {
-                int vIdxGlobal = this->dofMapper().index(vertex);
-                const GlobalPosition &globalPos = vertex.geometry().corner(0);
+                // get the global index of the degree of freedom
+                int dofIdxGlobal = this->dofMapper().subIndex(element, scvIdx, dofCodim);
 
                 // initialize phase presence
-                staticDat_[vIdxGlobal].phasePresence
-                    = this->problem_().initialPhasePresence(vertex, vIdxGlobal,
-                                                            globalPos);
-                staticDat_[vIdxGlobal].wasSwitched = false;
+                staticDat_[dofIdxGlobal].phasePresence = this->problem_().initialPhasePresence(element, fvGeometry, scvIdx);
+
+                staticDat_[dofIdxGlobal].wasSwitched = false;
 
-                staticDat_[vIdxGlobal].oldPhasePresence
-                    = staticDat_[vIdxGlobal].phasePresence;
+                staticDat_[dofIdxGlobal].oldPhasePresence = staticDat_[dofIdxGlobal].phasePresence;
             }
         }
     }
diff --git a/dumux/porousmediumflow/3p3c/implicit/model.hh b/dumux/porousmediumflow/3p3c/implicit/model.hh
index daa976dcc510fc7b91385fafe18b67c6c0cbe286..070f224ce079d205acb04eea484aeac55d0017c7 100644
--- a/dumux/porousmediumflow/3p3c/implicit/model.hh
+++ b/dumux/porousmediumflow/3p3c/implicit/model.hh
@@ -153,39 +153,25 @@ public:
 
         setSwitched_(false);
 
-        if (isBox)
-        {
-            for (const auto& vertex : vertices(this->gridView_()))
-            {
-                int vIdxGlobal = this->dofMapper().index(vertex);
-
-                const GlobalPosition &globalPos = vertex.geometry().corner(0);
+        FVElementGeometry fvGeometry;
 
-                // initialize phase presence
-                staticDat_[vIdxGlobal].phasePresence
-                    = this->problem_().initialPhasePresence(vertex, vIdxGlobal,
-                                                        globalPos);
-                staticDat_[vIdxGlobal].wasSwitched = false;
-
-                staticDat_[vIdxGlobal].oldPhasePresence
-                    = staticDat_[vIdxGlobal].phasePresence;
-            }
-        }
-        else
+        for (const auto& element : elements(this->gridView_()))
         {
-            for (const auto& element : elements(this->gridView_()))
+            // deal with the current element
+            fvGeometry.update(this->gridView_(), element);
+
+            // loop over all element vertices, i.e. sub control volumes
+            for (int scvIdx = 0; scvIdx < fvGeometry.numScv; scvIdx++)
             {
-                int eIdxGlobal = this->dofMapper().index(element);
-                const GlobalPosition &globalPos = element.geometry().center();
+                // get the global index of the degree of freedom
+                int dofIdxGlobal = this->dofMapper().subIndex(element, scvIdx, dofCodim);
 
                 // initialize phase presence
-                staticDat_[eIdxGlobal].phasePresence
-                    = this->problem_().initialPhasePresence(*this->gridView_().template begin<dim> (),
-                                                            eIdxGlobal, globalPos);
-                staticDat_[eIdxGlobal].wasSwitched = false;
+                staticDat_[dofIdxGlobal].phasePresence = this->problem_().initialPhasePresence(element, fvGeometry, scvIdx);
+
+                staticDat_[dofIdxGlobal].wasSwitched = false;
 
-                staticDat_[eIdxGlobal].oldPhasePresence
-                    = staticDat_[eIdxGlobal].phasePresence;
+                staticDat_[dofIdxGlobal].oldPhasePresence = staticDat_[dofIdxGlobal].phasePresence;
             }
         }
     }
diff --git a/dumux/porousmediumflow/3pwateroil/model.hh b/dumux/porousmediumflow/3pwateroil/model.hh
index 02d0582309e5bcb8f5d33c042980b6c67bbecf5f..5a30c8825e3a3bce7bdf0319c16ea4b67e3ddf1f 100644
--- a/dumux/porousmediumflow/3pwateroil/model.hh
+++ b/dumux/porousmediumflow/3pwateroil/model.hh
@@ -152,38 +152,25 @@ public:
 
         setSwitched_(false);
 
-        if (isBox)
-        {
-            for (const auto& vertex : vertices(this->gridView_()))
-            {
-                int globalIdx = this->dofMapper().index(vertex);
-                const GlobalPosition &globalPos = vertex.geometry().corner(0);
-
-                // initialize phase presence
-                staticDat_[globalIdx].phasePresence
-                    = this->problem_().initialPhasePresence(vertex, globalIdx,
-                                                        globalPos);
-                staticDat_[globalIdx].wasSwitched = false;
+        FVElementGeometry fvGeometry;
 
-                staticDat_[globalIdx].oldPhasePresence
-                    = staticDat_[globalIdx].phasePresence;
-            }
-        }
-        else
+        for (const auto& element : elements(this->gridView_()))
         {
-            for (const auto& element : elements(this->gridView_()))
+            // deal with the current element
+            fvGeometry.update(this->gridView_(), element);
+
+            // loop over all element vertices, i.e. sub control volumes
+            for (int scvIdx = 0; scvIdx < fvGeometry.numScv; scvIdx++)
             {
-                int globalIdx = this->dofMapper().index(element);
-                const GlobalPosition &globalPos = element.geometry().center();
+                // get the global index of the degree of freedom
+                int dofIdxGlobal = this->dofMapper().subIndex(element, scvIdx, dofCodim);
 
                 // initialize phase presence
-                staticDat_[globalIdx].phasePresence
-                    = this->problem_().initialPhasePresence(*this->gridView_().template begin<dim> (),
-                                                            globalIdx, globalPos);
-                staticDat_[globalIdx].wasSwitched = false;
+                staticDat_[dofIdxGlobal].phasePresence = this->problem_().initialPhasePresence(element, fvGeometry, scvIdx);
+
+                staticDat_[dofIdxGlobal].wasSwitched = false;
 
-                staticDat_[globalIdx].oldPhasePresence
-                    = staticDat_[globalIdx].phasePresence;
+                staticDat_[dofIdxGlobal].oldPhasePresence = staticDat_[dofIdxGlobal].phasePresence;
             }
         }
     }
diff --git a/dumux/porousmediumflow/implicit/problem.hh b/dumux/porousmediumflow/implicit/problem.hh
index af5e0c2e7da4e589666e9f2e76f007238c18b2a2..9d3bea81e13fd1d7c237f93324fc54e4473a1f1e 100644
--- a/dumux/porousmediumflow/implicit/problem.hh
+++ b/dumux/porousmediumflow/implicit/problem.hh
@@ -86,6 +86,34 @@ public:
      */
     // \{
 
+     /*!
+     * \brief Evaluate the initial phase state inside a control volume.
+     *
+     * \param element The element
+     * \param fvGeometry The fvGeometry
+     * \param scvIdx The scvIdx
+     */
+    int initialPhasePresence(const Element &element,
+                             const FVElementGeometry &fvGeometry,
+                             const int scvIdx) const
+    {
+        // forward to generic interface
+        return asImp_().initialPhasePresenceAtPos(fvGeometry.subContVol[scvIdx].global);
+    }
+
+     /*!
+     * \brief Evaluate the initial value for a control volume.
+     *
+     * \param globalPos The global position
+     */
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
+    {
+        DUNE_THROW(Dune::InvalidStateException,
+                   "The problem does not provide a initialPhasePresenceAtPos() method.");
+        return 0;
+    }
+
+
     /*!
      * \brief Returns the temperature \f$\mathrm{[K]}\f$ at a given global position.
      *
diff --git a/test/material/fluidmatrixinteractions/2p/thermalconductivityjohansenproblem.hh b/test/material/fluidmatrixinteractions/2p/thermalconductivityjohansenproblem.hh
index d4445d09dcc438f61a1e9d0245eb3a3970bf97e0..ecc2f40e300e8f2763fe1555c9945e60d7d33a55 100644
--- a/test/material/fluidmatrixinteractions/2p/thermalconductivityjohansenproblem.hh
+++ b/test/material/fluidmatrixinteractions/2p/thermalconductivityjohansenproblem.hh
@@ -192,15 +192,11 @@ public:
 
 
     /*!
-    * \brief Returns the initial phase state for a control volume.
-    *
-    * \param vertex The vertex
-    * \param vIdxGlobal The global index of the vertex
-    * \param globalPos The position of the center of the element
-    */
-    int initialPhasePresence(const Vertex &vertex,
-                             int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+     * \brief Return the initial phase state inside a control volume.
+     *
+     * \param globalPos The global position
+     */
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         return wPhaseOnly;
     }
diff --git a/test/material/fluidmatrixinteractions/2p/thermalconductivitysomertonproblem.hh b/test/material/fluidmatrixinteractions/2p/thermalconductivitysomertonproblem.hh
index b24e34303cdc48201ff6ff7d5d498ddacf98d468..d683bfe99ed6a5da9562458419eec6c4bf836590 100644
--- a/test/material/fluidmatrixinteractions/2p/thermalconductivitysomertonproblem.hh
+++ b/test/material/fluidmatrixinteractions/2p/thermalconductivitysomertonproblem.hh
@@ -192,15 +192,11 @@ public:
 
 
     /*!
-    * \brief Returns the initial phase state for a control volume.
-    *
-    * \param vertex The vertex
-    * \param vIdxGlobal The global index of the vertex
-    * \param globalPos The position of the center of the element
-    */
-    int initialPhasePresence(const Vertex &vertex,
-                             int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+     * \brief Return the initial phase state inside a control volume.
+     *
+     * \param globalPos The global position
+     */
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         return wPhaseOnly;
     }
diff --git a/test/material/fluidmatrixinteractions/effectivediffusivityconstantproblem.hh b/test/material/fluidmatrixinteractions/effectivediffusivityconstantproblem.hh
index be5b5a09a38062b96219214e3f3542ca1303c2a4..885e7627d6b7d5eba45b0962cfe27093e68e8305 100644
--- a/test/material/fluidmatrixinteractions/effectivediffusivityconstantproblem.hh
+++ b/test/material/fluidmatrixinteractions/effectivediffusivityconstantproblem.hh
@@ -192,15 +192,11 @@ public:
 
 
     /*!
-    * \brief Returns the initial phase state for a control volume.
-    *
-    * \param vertex The vertex
-    * \param vIdxGlobal The global index of the vertex
-    * \param globalPos The position of the center of the element
-    */
-    int initialPhasePresence(const Vertex &vertex,
-                             int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+     * \brief Return the initial phase state inside a control volume.
+     *
+     * \param globalPos The global position
+     */
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         return wPhaseOnly;
     }
diff --git a/test/material/fluidmatrixinteractions/effectivediffusivityconstanttauproblem.hh b/test/material/fluidmatrixinteractions/effectivediffusivityconstanttauproblem.hh
index 12e89d7f26173c3b0aa41e6d8b688e0b199debb4..07e187fc70db7d16ded2b90f904222fa13cc9ac7 100644
--- a/test/material/fluidmatrixinteractions/effectivediffusivityconstanttauproblem.hh
+++ b/test/material/fluidmatrixinteractions/effectivediffusivityconstanttauproblem.hh
@@ -192,15 +192,11 @@ public:
 
 
     /*!
-    * \brief Returns the initial phase state for a control volume.
-    *
-    * \param vertex The vertex
-    * \param vIdxGlobal The global index of the vertex
-    * \param globalPos The position of the center of the element
-    */
-    int initialPhasePresence(const Vertex &vertex,
-                             int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+     * \brief Return the initial phase state inside a control volume.
+     *
+     * \param globalPos The global position
+     */
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         return wPhaseOnly;
     }
diff --git a/test/material/fluidmatrixinteractions/effectivediffusivitymillingtonquirkproblem.hh b/test/material/fluidmatrixinteractions/effectivediffusivitymillingtonquirkproblem.hh
index 4b298e1e13b39bed896f2ac788ce108ca56017f3..1e24bc8788c4410eaff67eabd3b49b683915a038 100644
--- a/test/material/fluidmatrixinteractions/effectivediffusivitymillingtonquirkproblem.hh
+++ b/test/material/fluidmatrixinteractions/effectivediffusivitymillingtonquirkproblem.hh
@@ -192,15 +192,11 @@ public:
 
 
     /*!
-    * \brief Returns the initial phase state for a control volume.
-    *
-    * \param vertex The vertex
-    * \param vIdxGlobal The global index of the vertex
-    * \param globalPos The position of the center of the element
-    */
-    int initialPhasePresence(const Vertex &vertex,
-                             int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+     * \brief Return the initial phase state inside a control volume.
+     *
+     * \param globalPos The global position
+     */
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         return wPhaseOnly;
     }
diff --git a/test/multidomain/2cnistokes2p2cni/2p2cnisubproblem.hh b/test/multidomain/2cnistokes2p2cni/2p2cnisubproblem.hh
index 4682537c38fcabe7be99dce4d323cc0613b84310..5d09135f5946c319db6d5ed2daaf7606f65aa0ec 100644
--- a/test/multidomain/2cnistokes2p2cni/2p2cnisubproblem.hh
+++ b/test/multidomain/2cnistokes2p2cni/2p2cnisubproblem.hh
@@ -334,13 +334,9 @@ public:
     /*!
      * \brief Return the initial phase state inside a control volume.
      *
-     * \param vertex The vertex
-     * \param vIdxGlobal The global index of the vertex
      * \param globalPos The global position
      */
-    int initialPhasePresence(const Vertex &vertex,
-                             const int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         return bothPhases;
     }
diff --git a/test/multidomain/2cnizeroeq2p2cni/2p2cnisubproblem.hh b/test/multidomain/2cnizeroeq2p2cni/2p2cnisubproblem.hh
index 8b89135c31e8daa95ca5922a0466a7f8e2004e86..e2a3ca10827ed3b5ebef2b9da5b22240059c4d1a 100644
--- a/test/multidomain/2cnizeroeq2p2cni/2p2cnisubproblem.hh
+++ b/test/multidomain/2cnizeroeq2p2cni/2p2cnisubproblem.hh
@@ -279,13 +279,9 @@ public:
     /*!
      * \brief Return the initial phase state inside a control volume.
      *
-     * \param vertex The vertex
-     * \param vIdxGlobal The global index of the vertex
      * \param globalPos The global position
      */
-    int initialPhasePresence(const Vertex &vertex,
-                             const int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         return bothPhases;
     }
diff --git a/test/multidomain/2cstokes2p2c/2p2csubproblem.hh b/test/multidomain/2cstokes2p2c/2p2csubproblem.hh
index cbae1065eb39957d6c5fe1c5ac8cf805db542977..f35317a7d46f2e5837823f16c5c09685badae834 100644
--- a/test/multidomain/2cstokes2p2c/2p2csubproblem.hh
+++ b/test/multidomain/2cstokes2p2c/2p2csubproblem.hh
@@ -311,13 +311,9 @@ public:
     /*!
      * \brief Return the initial phase state inside a control volume.
      *
-     * \param vertex The vertex
-     * \param vIdxGlobal The global index of the vertex
      * \param globalPos The global position
      */
-    int initialPhasePresence(const Vertex &vertex,
-                             const int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         return bothPhases;
     }
diff --git a/test/multidomain/2czeroeq2p2c/2p2csubproblem.hh b/test/multidomain/2czeroeq2p2c/2p2csubproblem.hh
index 0a2dc0111ccb9805f9ffea4db7c94196a5044f97..acd98c59740cb48b95fa45f993ef29dd39d84986 100644
--- a/test/multidomain/2czeroeq2p2c/2p2csubproblem.hh
+++ b/test/multidomain/2czeroeq2p2c/2p2csubproblem.hh
@@ -277,13 +277,9 @@ public:
     /*!
      * \brief Return the initial phase state inside a control volume.
      *
-     * \param vertex The vertex
-     * \param vIdxGlobal The global index of the vertex
      * \param globalPos The global position
      */
-    int initialPhasePresence(const Vertex &vertex,
-                             const int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         return bothPhases;
     }
diff --git a/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh b/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh
index 97a3347bd0eba5a200f2ec79e9a2983240d388ad..a0d2fe0c65315135bd7a979d2728830ee4ac3033 100644
--- a/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh
+++ b/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh
@@ -249,13 +249,9 @@ public:
     /*!
      * \brief Return the initial phase state inside a control volume.
      *
-     * \param vert The vertex
-     * \param globalIdx The index of the global vertex
      * \param globalPos The global position
      */
-    int initialPhasePresence(const Vertex &vert,
-                             int &globalIdx,
-                             const GlobalPosition &globalPos) const
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         return wPhaseOnly;
     }
diff --git a/test/porousmediumflow/2p2c/implicit/injectionproblem.hh b/test/porousmediumflow/2p2c/implicit/injectionproblem.hh
index 23e41f822c2bafc7af742462805dcbc78febba5e..8e8d26c5f4e9abf6417cfd9d6746d4d680b832a8 100644
--- a/test/porousmediumflow/2p2c/implicit/injectionproblem.hh
+++ b/test/porousmediumflow/2p2c/implicit/injectionproblem.hh
@@ -329,15 +329,11 @@ public:
     }
 
     /*!
-     * \brief Returns the initial phase state for a control volume.
+     * \brief Return the initial phase state inside a control volume.
      *
-     * \param vertex The vertex
-     * \param vIdxGlobal The global index of the vertex
      * \param globalPos The global position
      */
-    int initialPhasePresence(const Vertex &vertex,
-                             int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     { return Indices::wPhaseOnly; }
 
     // \}
diff --git a/test/porousmediumflow/2p2c/implicit/waterairproblem.hh b/test/porousmediumflow/2p2c/implicit/waterairproblem.hh
index 5fee95755f2436e78c6b01a7d4f74d1939598ecb..cd5d2118724b2154dd13d6a48cfcf53bdd6e218d 100644
--- a/test/porousmediumflow/2p2c/implicit/waterairproblem.hh
+++ b/test/porousmediumflow/2p2c/implicit/waterairproblem.hh
@@ -326,13 +326,9 @@ public:
     /*!
      * \brief Return the initial phase state inside a control volume.
      *
-     * \param vertex The vertex
-     * \param vIdxGlobal The global index of the vertex
      * \param globalPos The global position
      */
-    int initialPhasePresence(const Vertex &vertex,
-                             int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         return wPhaseOnly;
     }
diff --git a/test/porousmediumflow/3p3c/implicit/columnxylolproblem.hh b/test/porousmediumflow/3p3c/implicit/columnxylolproblem.hh
index 2f7313849d03d8e883d44f3bc6e5eef22fff72f4..2f5dfc85650f06662b73ac4bdffc291c663d195e 100644
--- a/test/porousmediumflow/3p3c/implicit/columnxylolproblem.hh
+++ b/test/porousmediumflow/3p3c/implicit/columnxylolproblem.hh
@@ -263,13 +263,9 @@ public:
     /*!
      * \brief Return the initial phase state inside a control volume.
      *
-     * \param vertex The vertex
-     * \param vIdxGlobal The global index of the vertex
      * \param globalPos The global position
      */
-    int initialPhasePresence(const Vertex &vertex,
-                             int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         return threePhases;
     }
diff --git a/test/porousmediumflow/3p3c/implicit/infiltrationproblem.hh b/test/porousmediumflow/3p3c/implicit/infiltrationproblem.hh
index feec2c4e298e1f6643289da902df2dd53eadc7de..86d5379a543fce5462e5d9e644b8dde27068bb44 100644
--- a/test/porousmediumflow/3p3c/implicit/infiltrationproblem.hh
+++ b/test/porousmediumflow/3p3c/implicit/infiltrationproblem.hh
@@ -321,13 +321,9 @@ public:
     /*!
      * \brief Return the initial phase state inside a control volume.
      *
-     * \param vertex The vertex
-     * \param vIdxGlobal The global index of the vertex
      * \param globalPos The global position
      */
-    int initialPhasePresence(const Vertex &vertex,
-                             int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         return wgPhaseOnly;
     }
diff --git a/test/porousmediumflow/3p3c/implicit/kuevetteproblem.hh b/test/porousmediumflow/3p3c/implicit/kuevetteproblem.hh
index 836c372ccb9c23469cfa2105630aba10f6cd14b1..42e07d7655e8663281a59140d16f3eeec2492a0a 100644
--- a/test/porousmediumflow/3p3c/implicit/kuevetteproblem.hh
+++ b/test/porousmediumflow/3p3c/implicit/kuevetteproblem.hh
@@ -270,13 +270,9 @@ public:
     /*!
      * \brief Return the initial phase state inside a control volume.
      *
-     * \param vertex The vertex
-     * \param vIdxGlobal The global index of the vertex
      * \param globalPos The global position
      */
-    int initialPhasePresence(const Vertex &vertex,
-                             const int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         if (isInContaminationZone(globalPos))
             return threePhases;
diff --git a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh
index ff9675705640436873d372a9536a36a024705e88..0602f0da37b8b0779cd2cf33ec1bff2e842dba21 100644
--- a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh
+++ b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh
@@ -406,13 +406,9 @@ public:
     /*!
      * \brief Return the initial phase state inside a control volume.
      *
-     * \param vert The vertex
-     * \param globalIdx The index of the global vertex
      * \param globalPos The global position
      */
-    int initialPhasePresence(const Vertex &vert,
-                             int &globalIdx,
-                             const GlobalPosition &globalPos) const
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     {
         return wnPhaseOnly;
     }
diff --git a/test/porousmediumflow/co2/implicit/heterogeneousproblem.hh b/test/porousmediumflow/co2/implicit/heterogeneousproblem.hh
index dd260e8cc7e08355632daa16a3706f5889b4e5d4..0fdbe1a1a83bf6030ad08b0346de00fb9c90190d 100644
--- a/test/porousmediumflow/co2/implicit/heterogeneousproblem.hh
+++ b/test/porousmediumflow/co2/implicit/heterogeneousproblem.hh
@@ -431,15 +431,11 @@ public:
     }
 
     /*!
-     * \brief Returns the initial phase state for a control volume.
+     * \brief Return the initial phase state inside a control volume.
      *
-     * \param vertex The vertex
-     * \param vIdxGlobal The global index of the vertex
      * \param globalPos The global position
      */
-    int initialPhasePresence(const Vertex &vertex,
-                             int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     { return Indices::wPhaseOnly; }
 
     // \}
diff --git a/test/porousmediumflow/co2/implicit/heterogeneousproblemni.hh b/test/porousmediumflow/co2/implicit/heterogeneousproblemni.hh
index dc7934dea2fc5a65ae9426302394ded8d6443bc5..027c5b5b5e599f20e593a68746155ce1b4765448 100644
--- a/test/porousmediumflow/co2/implicit/heterogeneousproblemni.hh
+++ b/test/porousmediumflow/co2/implicit/heterogeneousproblemni.hh
@@ -448,15 +448,11 @@ public:
     }
 
     /*!
-     * \brief Returns the initial phase state for a control volume.
+     * \brief Return the initial phase state inside a control volume.
      *
-     * \param vertex The vertex
-     * \param vIdxGlobal The global index of the vertex
      * \param globalPos The global position
      */
-    int initialPhasePresence(const Vertex &vertex,
-                             int &vIdxGlobal,
-                             const GlobalPosition &globalPos) const
+    int initialPhasePresenceAtPos(const GlobalPosition &globalPos) const
     { return Indices::wPhaseOnly; }
 
     // \}