number l1_norm () const;
/**
- * Return the
- * <i>l<sub>∞</sub></i>-norm
- * of the matrix, where
+ * Return the $l_\infty$-norm of
+ * the matrix, where
* $||M||_\infty = \max_i \sum_j
* |M_{ij}|$ (maximum of the sums
* over rows).
#ifdef DEAL_II_USE_PETSC
-/*! @addtogroup PETSc
- *@{
- */
namespace PETScWrappers
{
+/*! @addtogroup PETScWrappers
+ *@{
+ */
/**
* Blocked sparse matrix based on the PETScWrappers::SparseMatrix class. This
#ifdef DEAL_II_USE_PETSC
-/*! @addtogroup PETScWrappers
- *@{
- */
namespace PETScWrappers
{
+/*! @addtogroup PETScWrappers
+ *@{
+ */
/**
* An implementation of block vectors based on the vector class implemented in
-/*! @addtogroup PETScWrappers
- *@{
- */
-
/**
* Global function which overloads the default implementation
* of the C++ standard library which uses a temporary object. The
* function simply exchanges the data of the two vectors.
*
- * @relates BlockVector
+ * @ingroup PETScWrappers
+ * @relates PETScWrappers::BlockVector
* @author Wolfgang Bangerth, 2000
*/
inline
{
u.swap (v);
}
-
-
-/*@}*/
}
#ifdef DEAL_II_USE_PETSC
-/*! @addtogroup PETSc
- *@{
- */
namespace PETScWrappers
{
namespace MPI
{
-
+
+/*! @addtogroup PETScWrappers
+ *@{
+ */
/**
* Blocked sparse matrix based on the PETScWrappers::SparseMatrix class. This
#ifdef DEAL_II_USE_PETSC
-/*! @addtogroup PETScWrappers
- *@{
- */
-
namespace PETScWrappers
{
// forward declaration
namespace MPI
{
+
+/*! @addtogroup PETScWrappers
+ *@{
+ */
/**
* An implementation of block vectors based on the parallel vector class
this->components[i].swap (v.components[i]);
::swap (this->block_indices, v.block_indices);
}
-
-/*! @addtogroup PETScWrappers
- *@{
- */
/**
* Global function which overloads the default implementation
* of the C++ standard library which uses a temporary object. The
* function simply exchanges the data of the two vectors.
*
- * @relates BlockVector
+ * @ingroup PETScWrappers
+ * @relates PETScWrappers::MPI::BlockVector
* @author Wolfgang Bangerth, 2000
*/
inline
{
u.swap (v);
}
-
-
-/*@}*/
-
+
}
}
};
-#ifndef DOXYGEN
// ------------------ template and inline functions -------------
* of the C++ standard library which uses a temporary object. The
* function simply exchanges the data of the two vectors.
*
+ * @ingroup PETScWrappers
+ * @relates PETScWrappers::MPI::Vector
* @author Wolfgang Bangerth, 2004
*/
inline
}
+#ifndef DOXYGEN
template <typename number>
Vector::Vector (const MPI_Comm &communicator,
namespace PETScWrappers
{
+/*! @addtogroup PETScWrappers
+ *@{
+ */
+
/**
* Implementation of a sequential vector class based on PETSC. All the
* functionality is actually in the base class, except for the calls to
* functions). Only the functions creating a vector of specific type differ,
* and are implemented in this particular class.
*
- * @ingroup PETScWrappers
* @author Wolfgang Bangerth, 2004
*/
class Vector : public VectorBase
void create_vector (const unsigned int n);
};
+/*@}*/
-#ifndef DOXYGEN
// ------------------ template and inline functions -------------
* of the C++ standard library which uses a temporary object. The
* function simply exchanges the data of the two vectors.
*
+ * @ingroup PETScWrappers
+ * @relates PETScWrappers::Vector
* @author Wolfgang Bangerth, 2004
*/
inline
}
+#ifndef DOXYGEN
template <typename number>
Vector::Vector (const ::Vector<number> &v)
* function simply exchanges the data of the two vectors.
*
* @ingroup PETScWrappers
+ * @relates PETScWrappers::VectorBase
* @author Wolfgang Bangerth, 2004
*/
inline