From: Matthias Maier Date: Wed, 8 Apr 2015 13:23:30 +0000 (+0200) Subject: Documentation update X-Git-Tag: v8.3.0-rc1~242^2~15 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d1b284d358c173b243c6f77e1e466f6ab8f93aba;p=dealii.git Documentation update --- diff --git a/include/deal.II/lac/linear_operator.h b/include/deal.II/lac/linear_operator.h index e08f06c17f..fb5c1d9028 100644 --- a/include/deal.II/lac/linear_operator.h +++ b/include/deal.II/lac/linear_operator.h @@ -20,15 +20,16 @@ #include #include -#include - #ifdef DEAL_II_WITH_CXX11 +#include + DEAL_II_NAMESPACE_OPEN // Forward declarations: template class Vector; +template class BlockVector; template class LinearOperator; template , @@ -39,11 +40,26 @@ LinearOperator linop(const Matrix &matrix); /** * A class to store the abstract concept of a linear operator. * - * This is achieved by storing the concept of such operations in an - * "abstract" class LinearOperator that only holds knowledge of how to - * apply a linear operation via an std::function object vmult (vmult_add, - * Tvmult, Tvmult_add), as well as, information on how to create an - * appropriate Domain and Range vector. + * The class essentially consists of std::function objects * that + * store the knowledge of how to apply the linear operator by implementing the + * abstract @ref Matrix interface: + * @code + * std::function vmult; + * std::function vmult_add; + * std::function Tvmult; + * std::function Tvmult_add; + * @endcode + * + * But, in contrast to a usual matrix object, the domain and range of the linear + * operator are also bound to the LinearOperator class on the type + * level. Because of this, the LinearOperator has two + * additional function objects + * @code + * std::function reinit_range_vector; + * std::function reinit_domain_vector; + * @endcode + * that store the knowledge how to initialize (resize + internal data structures) + * an arbitrary vector of the Range and Domain space. * * The primary purpose of this class is to provide syntactic sugar for * complex matrix-vector operations and free the user from having to @@ -67,7 +83,7 @@ LinearOperator linop(const Matrix &matrix); * const auto op = (op_a + k * op_b) * op_c; * @endcode * - * This class is only available if deal.II was configured with C++11 + * @note: This class is only available if deal.II was configured with C++11 * support, i.e., if DEAL_II_WITH_CXX11 is enabled during * cmake configure. * @@ -567,8 +583,9 @@ inverse_linop(Solver &solver, /** - * A factory class that is responsible to create a reinit_range_vector - * object for a given pair of vector type Range and matrix type Matrix. + * A factory class that is responsible for the creation of a + * reinit_range_vector object for a given pair of vector type Range and matrix + * type Matrix. * * The generic version of this class just calls Range::reinit() with the * result of Matrix::m(). This class is specialized for more complicated @@ -592,8 +609,9 @@ public: /** - * A factory class that is responsible to create a reinit_domain_vector - * object for a given pair of vector type Domain and matrix type Matrix. + * A factory class that is responsible for the creation of a + * reinit_domain_vector object for a given pair of vector type Domain and + * matrix type Matrix. * * The generic version of this class just calls Domain::reinit() with the * result of Matrix::n(). This class is specialized for more complicated