diff --git a/dune/solvers/common/staticmatrixtools.hh b/dune/solvers/common/staticmatrixtools.hh
index 74c6ca37f786739c3b7e5cf6bd69c5f7f92df6af..9da8bbb7e4ba6237cf90d1c5365ca870d75efef3 100644
--- a/dune/solvers/common/staticmatrixtools.hh
+++ b/dune/solvers/common/staticmatrixtools.hh
@@ -218,6 +218,12 @@ class StaticMatrix
             return A[i][i] - A[i][j] - A[j][i] + A[j][j];
         }
 
+        template <typename FieldType, int n>
+        static FieldType simplexEdgeDiagonal(const Dune::DiagonalMatrix<FieldType,n>& A, int i, int j)
+        {
+            return A.diagonal(i) + A.diagonal(j);
+        }
+
         template <typename FieldType, int n>
         static FieldType simplexEdgeDiagonal(const Dune::ScaledIdentityMatrix<FieldType,n>& A, int i, int j)
         {
@@ -233,6 +239,12 @@ class StaticMatrix
             return A[i][i] - A[i][j];
         }
 
+        template <typename FieldType, int n>
+        static FieldType simplexEdgeResidual(const Dune::DiagonalMatrix<FieldType,n>& A, int i, int j)
+        {
+            return A.diagonal(i);
+        }
+
         template <typename FieldType, int n>
         static FieldType simplexEdgeResidual(const Dune::ScaledIdentityMatrix<FieldType,n>& A, int i, int j)
         {