diff --git a/dumux/assembly/partialreassembler.hh b/dumux/assembly/partialreassembler.hh
index 92eeee578a20b3edca87118ec08b908b06ff73e2..0daad5cb67e5b75bbcbf14f5fd0e4233e3dccbec 100644
--- a/dumux/assembly/partialreassembler.hh
+++ b/dumux/assembly/partialreassembler.hh
@@ -446,12 +446,11 @@ public:
     /*!
      * \brief called by the assembler after successful assembly
      */
-    void finalizeAssembly(const FVGridGeometry& fvGridGeometry, std::ostream& outStream)
+    template <class Communication>
+    void report(const Communication& comm, std::ostream& outStream)
     {
-        const auto& gridView = fvGridGeometry.gridView();
-
-        if (gridView.comm().size() > 1)
-            greenElems_ = gridView.comm().sum(greenElems_);
+        if (comm.size() > 1)
+            greenElems_ = comm.sum(greenElems_);
 
         auto reassembledElems = totalElems_ - greenElems_;
         auto width = std::to_string(totalElems_).size();
diff --git a/dumux/nonlinear/newtonsolver.hh b/dumux/nonlinear/newtonsolver.hh
index e1c6901b725a0461c2d74406d3218b9c8186b641..aa7dfb5eb60fcd2142f6f2717565cc4fc2017bc4 100644
--- a/dumux/nonlinear/newtonsolver.hh
+++ b/dumux/nonlinear/newtonsolver.hh
@@ -393,8 +393,7 @@ public:
         assembleLinearSystem_(uCurrentIter);
 
         if (enablePartialReassembly_)
-            partialReassembler_->finalizeAssembly(assembler_->fvGridGeometry(),
-                                                  endIterMsgStream_);
+            partialReassembler_->report(comm_, endIterMsgStream_);
     }
 
     /*!