diff --git a/dune/matrix-vector/transformmatrix.hh b/dune/matrix-vector/transformmatrix.hh index eb74e8b064e06ee00c6a8537d716d77fae9d6a11..3a81411771a92e59069b6aaaac38ebadf4476539 100644 --- a/dune/matrix-vector/transformmatrix.hh +++ b/dune/matrix-vector/transformmatrix.hh @@ -285,20 +285,16 @@ namespace MatrixVector { const TransformationMatrix2& T2) { transformMatrixPattern(A, T1, B, T2); A = 0.0; - for (size_t k = 0; k < B.N(); ++k) { - for (auto BklIt = B[k].begin(); BklIt != B[k].end(); ++BklIt) { - size_t l = BklIt.index(); - for (auto T1kiIt = T1[k].begin(); T1kiIt != T1[k].end(); ++T1kiIt) { - size_t i = T1kiIt.index(); - for (auto T2ljIt = T2[l].begin(); T2ljIt != T2[l].end(); ++T2ljIt) { - size_t j = T2ljIt.index(); + for (size_t k = 0; k < B.N(); ++k) + for (auto BkIt = B[k].begin(); BkIt != B[k].end(); ++BkIt) { + size_t l = BkIt.index(); + for (auto T1kIt = T1[k].begin(); T1kIt != T1[k].end(); ++T1kIt) + for (auto T2lIt = T2[l].begin(); T2lIt != T2[l].end(); ++T2lIt) { MatrixBlockA Aij; - transformMatrix(Aij, *T1kiIt, *BklIt, *T2ljIt); - A[i][j] += Aij; + transformMatrix(Aij, *T1kIt, *BkIt, *T2lIt); + A[T1kIt.index()][T2lIt.index()] += Aij; } - } } - } } template <class MatrixBlockA, class TransformationMatrix1, class MatrixB, @@ -308,18 +304,13 @@ namespace MatrixVector { const MatrixB& B, const TransformationMatrix2& T2) { Dune::MatrixIndexSet indices(T1.M(), T2.M()); - for (size_t k = 0; k < B.N(); ++k) { - for (auto BklIt = B[k].begin(); BklIt != B[k].end(); ++BklIt) { - size_t l = BklIt.index(); - for (auto T1kiIt = T1[k].begin(); T1kiIt != T1[k].end(); ++T1kiIt) { - size_t i = T1kiIt.index(); - for (auto T2ljIt = T2[l].begin(); T2ljIt != T2[l].end(); ++T2ljIt) { - size_t j = T2ljIt.index(); - indices.add(i, j); - } - } + for (size_t k = 0; k < B.N(); ++k) + for (auto BIt = B[k].begin(); BIt != B[k].end(); ++BIt) { + size_t l = BIt.index(); + for (auto T1kIt = T1[k].begin(); T1kIt != T1[k].end(); ++T1kIt) + for (auto T2lIt = T2[l].begin(); T2lIt != T2[l].end(); ++T2lIt) + indices.add(T1kIt.index(), T2lIt.index()); } - } indices.exportIdx(A); } }