From 0cd96175f6adad9cc3996ab5fe415d9c399e9a49 Mon Sep 17 00:00:00 2001 From: Martin Kronbichler Date: Tue, 19 Oct 2021 15:11:23 +0200 Subject: [PATCH] Extend documentation --- include/deal.II/lac/precondition.h | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/include/deal.II/lac/precondition.h b/include/deal.II/lac/precondition.h index 2258633108..4cac9ff90e 100644 --- a/include/deal.II/lac/precondition.h +++ b/include/deal.II/lac/precondition.h @@ -1011,10 +1011,21 @@ private: * @endcode * where the two given functions run before and after the matrix-vector * product, respectively. They take as arguments a sub-range among the locally - * owned elements of the vector, and allow the matrix-vector product to return - * an index range that fulfills all the requirements. For the example of a - * class similar to the one in the step-37 tutorial program, the implementation - * is + * owned elements of the vector, defined as half-open intervals. The intervals + * are designed to be scheduled close to the time the matrix-vector product + * touches upon the entries in the `src` and `dst` vectors, respectively, with + * the requirement that + * + * The motivation for this function is to increase data locality and hence + * cache usage. For the example of a class similar to the one in the step-37 + * tutorial program, the implementation is * @code * void * vmult(LinearAlgebra::distributed::Vector & dst, @@ -1028,13 +1039,14 @@ private: * this, * dst, * src, - * operation_before_loop, - * operation_after_loop); + * operation_before_matrix_vector_product, + * operation_after_matrix_vector_product); * } * @endcode * In terms of the Chebyshev iteration, the operation before the loop will * set `dst` to zero, whereas the operation after the loop performs the - * iteration leading to $x^{n+1}$ described above. + * iteration leading to $x^{n+1}$ described above, modifying the `dst` and + * `src` vectors. */ template , typename VectorType = Vector, -- 2.39.5