diff --git a/dumux/porousmediumflow/implicit/darcyfluxvariables.hh b/dumux/porousmediumflow/implicit/darcyfluxvariables.hh
index 405eee464a80ee8bd9434cacf898d87bbb8496cf..1456395d4351371481a9fe16e4deed3d5f88fb20 100644
--- a/dumux/porousmediumflow/implicit/darcyfluxvariables.hh
+++ b/dumux/porousmediumflow/implicit/darcyfluxvariables.hh
@@ -360,6 +360,10 @@ protected:
         }// loop all phases
     }
 
+    // set const reference to the fvGeometry
+    const void setFVGeometryPtr_(const FVElementGeometry& fvGeometry)
+    { fvGeometryPtr_ = &fvGeometry; }
+
     // return const reference to the fvGeometry
     const FVElementGeometry& fvGeometry_() const
     { return *fvGeometryPtr_; }
diff --git a/dumux/porousmediumflow/implicit/forchheimerfluxvariables.hh b/dumux/porousmediumflow/implicit/forchheimerfluxvariables.hh
index 812ed0895395c1914466224644b6116e6ce6e6a3..0561b2d091fe9efd462eecb9d874afc1e1360d19 100644
--- a/dumux/porousmediumflow/implicit/forchheimerfluxvariables.hh
+++ b/dumux/porousmediumflow/implicit/forchheimerfluxvariables.hh
@@ -82,6 +82,7 @@ class ImplicitForchheimerFluxVariables
 {
     friend class ImplicitDarcyFluxVariables<TypeTag>; // be friends with parent
     typedef ImplicitDarcyFluxVariables<TypeTag> ParentType;
+    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) Implementation;
     typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
     typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
     typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
@@ -126,6 +127,32 @@ public:
      */
     ImplicitForchheimerFluxVariables() = default;
 
+    /*! \copydoc ParentType::update() */
+    void update(const Problem &problem,
+                const Element &element,
+                const FVElementGeometry &fvGeometry,
+                const int fIdx,
+                const ElementVolumeVariables &elemVolVars,
+                const bool onBoundary = false)
+    {
+        ParentType::setFVGeometryPtr_(fvGeometry);
+        ParentType::onBoundary_ = onBoundary;
+        ParentType::faceIdx_ = fIdx;
+
+        ParentType::mobilityUpwindWeight_ = GET_PARAM_FROM_GROUP(TypeTag, Scalar, Implicit, MobilityUpwindWeight);
+        asImp_().calculateGradients_(problem, element, elemVolVars);
+        asImp_().calculateNormalVelocity_(problem, element, elemVolVars);
+    }
+
+private:
+    //! Returns the implementation of the flux variables (i.e. static polymorphism)
+    Implementation &asImp_()
+    { return *static_cast<Implementation *>(this); }
+
+    //! \copydoc asImp_()
+    const Implementation &asImp_() const
+    { return *static_cast<const Implementation *>(this); }
+
 protected:
     /*!
      * \brief Function for calculation of velocities.