template <class BlockVectorType>
void precondition_Jacobi (BlockVectorType &dst,
const BlockVectorType &src,
+ const number omega = 1.) const;
+
+ /**
+ * Apply the Jacobi
+ * preconditioner to a simple vector.
+ *
+ * The matrix must be a single
+ * square block for this.
+ */
+ template <typename number2>
+ void precondition_Jacobi (Vector<number2> &dst,
+ const Vector<number2> &src,
const number omega = 1.) const;
/**
}
+template <typename number>
+template <typename number2>
+void
+BlockSparseMatrix<number>::
+precondition_Jacobi (Vector<number2> &dst,
+ const Vector<number2> &src,
+ const number omega) const
+{
+//TODO: Insert assertions
+ // do a diagonal preconditioning. uses only
+ // the diagonal blocks of the matrix
+ this->block(0,0).precondition_Jacobi (dst, src, omega);
+}
+
+
#endif // __deal2__block_sparse_matrix_h