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) {