diff --git a/dune/gfe/tensor3.hh b/dune/gfe/tensor3.hh
index 2bae4f07881b07fdaa08751841a9223c954c14dd..f1a90deb4186e59b6d6145c1eae9eba3433e372a 100644
--- a/dune/gfe/tensor3.hh
+++ b/dune/gfe/tensor3.hh
@@ -46,6 +46,18 @@ class Tensor3
             return std::sqrt(norm);
         }
 
+        /** \brief The squared Frobenius norm, i.e., the sum of squared entries */
+        T frobenius_norm2() const
+        {
+            T norm = 0;
+            for (int i=0; i<N1; i++)
+                for (int j=0; j<N2; j++)
+                    for (int k=0; k<N3; k++)
+                        norm += (*this)[i][j][k] * (*this)[i][j][k];
+
+            return norm;
+        }
+
         Tensor3<T,N1,N2,N3>& axpy(const T& alpha, const Tensor3<T,N1,N2,N3>& other)
         {
             for (int i=0; i<N1; i++)