#include <lac/petsc_matrix_base.h>
+
+namespace PETScWrappers
+{
/*! @addtogroup PETSc
*@{
*/
-
-namespace PETScWrappers
-{
/**
* Implementation of a sequential dense matrix class based on PETSC. All the
* functionality is actually in the base class, except for the calls to
FullMatrix (const unsigned int m,
const unsigned int n);
};
-}
-
+
/*@}*/
+}
#endif // DEAL_II_USE_PETSC
#include <boost/shared_ptr.hpp>
#include <vector>
-/*! @addtogroup PETSc
- *@{
- */
-
namespace PETScWrappers
{
// forward declarations
* surprisingly only shows the nonzero elements of the matrix, not all
* elements.
*
+ * @ingroup PETSc
+ * @brief Matrix iterator
* @author Guido Kanschat, Roy Stogner, Wolfgang Bangerth, 2004
*/
class const_iterator
* call SparseMatrix::compress() once at the end of the assembly stage and
* before the matrix is actively used.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class MatrixBase
-
+/// @if NoDoc
// -------------------------- inline and template functions ----------------------
Assert (r < m(), ExcIndexRange(r, 0, m()));
return const_iterator(this, r+1, 0);
}
-
+/// @endif
}
-/*@}*/
#endif // DEAL_II_USE_PETSC
#include <vector>
-/*! @addtogroup PETSc
- *@{
- */
-
namespace PETScWrappers
{
* to individual elements in the documentation to the parallel vector
* class. These comments apply here as well.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class SparseMatrix : public MatrixBase
};
}
-
}
-/*@}*/
-
#endif // DEAL_II_USE_PETSC
/*---------------------------- petsc_parallel_sparse_matrix.h ---------------------------*/
* wants to set every element of the
* vector to zero, but instead, what
* happens is this call:
- * <tt>v=Vector<number>(0);</tt>, i.e. the
+ * <tt>v=Vector@<number@>(0);</tt>, i.e. the
* vector is replaced by one of
* length zero.
*/
};
-
+/// @if NoDoc
// ------------------ template and inline functions -------------
return *this;
}
+/// @endif
}
-/*@}*/
}
#include <petscpc.h>
-/*! @addtogroup PETSc
- *@{
- */
-
-
namespace PETScWrappers
{
// forward declarations
* only to allow a similar interface than already used for the deal.II solver
* and preconditioner classes.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class PreconditionerBase
* A class that implements the interface to use the PETSc Jacobi
* preconditioner.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class PreconditionJacobi : public PreconditionerBase
* the matrix for preconditioning. This can be changed, as is explained in the
* relevant section of the PETSc manual, but is not implemented here.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class PreconditionBlockJacobi : public PreconditionerBase
* A class that implements the interface to use the PETSc SOR
* preconditioner.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class PreconditionSOR : public PreconditionerBase
* A class that implements the interface to use the PETSc SSOR
* preconditioner.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class PreconditionSSOR : public PreconditionerBase
* A class that implements the interface to use the PETSc Eisenstat
* preconditioner.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class PreconditionEisenstat : public PreconditionerBase
* A class that implements the interface to use the PETSc Incomplete Cholesky
* preconditioner.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class PreconditionICC : public PreconditionerBase
* A class that implements the interface to use the PETSc ILU
* preconditioner.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class PreconditionILU : public PreconditionerBase
}
-/*@}*/
-
#endif // DEAL_II_USE_PETSC
/*---------------------------- petsc_precondition.h ---------------------------*/
#include <petscksp.h>
-/*! @addtogroup PETSc
- *@{
- */
-
namespace PETScWrappers
{
// forward declarations
* classes simply set the right flags to select one solver or another, or to
* set certain parameters for individual solvers.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class SolverBase
* An implementation of the solver interface using the PETSc Richardson
* solver.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class SolverRichardson : public SolverBase
* An implementation of the solver interface using the PETSc Chebychev
* solver.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class SolverChebychev : public SolverBase
* An implementation of the solver interface using the PETSc CG
* solver.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class SolverCG : public SolverBase
* An implementation of the solver interface using the PETSc BiCG
* solver.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class SolverBiCG : public SolverBase
* An implementation of the solver interface using the PETSc BiCGStab
* solver.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class SolverBicgstab : public SolverBase
* An implementation of the solver interface using the PETSc CG Squared
* solver.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class SolverCGS : public SolverBase
* An implementation of the solver interface using the PETSc TFQMR
* solver.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class SolverTFQMR : public SolverBase
* with an error indicating failure to converge with PETSc 2.1.6 and
* prior. This should be fixed in later versions of PETSc, though.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class SolverTCQMR : public SolverBase
* An implementation of the solver interface using the PETSc CR
* solver.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class SolverCR : public SolverBase
* An implementation of the solver interface using the PETSc Least Squares
* solver.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class SolverLSQR : public SolverBase
}
-/*@}*/
-
#endif // DEAL_II_USE_PETSC
/*---------------------------- petsc_solver.h ---------------------------*/
#include <vector>
-/*! @addtogroup PETSc
- *@{
- */
-
-
namespace PETScWrappers
{
/**
* virtual functions). Only the functions creating a matrix of specific type
* differ, and are implemented in this particular class.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class SparseMatrix : public MatrixBase
};
-
+/// @if NoDoc
// -------- template and inline functions ----------
inline
{
MatrixBase::reinit ();
}
-
+///@endif
}
-/*@}*/
-
#endif // DEAL_II_USE_PETSC
/*---------------------------- petsc_sparse_matrix.h ---------------------------*/
* <tt>v=0;</tt>. Presumably, the user wants
* to set every element of the vector to
* zero, but instead, what happens is
- * this call: <tt>v=Vector<number>(0);</tt>,
+ * this call: <tt>v=Vector@<number@>(0);</tt>,
* i.e. the vector is replaced by one of
* length zero.
*/
#include <utility>
-/*! @addtogroup PETSc
- *@{
- */
// forward declaration
template <typename number> class Vector;
/**
* A namespace in which wrapper classes for PETSc objects reside.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
namespace PETScWrappers
/**
* A namespace for internal implementation details of the PETScWrapper
* members.
+ * @ingroup PETSc
*/
namespace internal
{
* scalar value of this element. It also
* has a variety of assignment operator
* for writing to this one element.
+ * @ingroup PETSc
*/
class VectorReference
{
* after vector assembly. Therefore, you need to call Vector::compress()
* before you actually use the vector.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
class VectorBase
* of the C++ standard library which uses a temporary object. The
* function simply exchanges the data of the two vectors.
*
+ * @ingroup PETSc
* @author Wolfgang Bangerth, 2004
*/
inline
u.swap (v);
}
-
+///@if NoDoc
namespace internal
{
inline
}
-
+///@endif
}
-/*@}*/
-
#endif // DEAL_II_USE_PETSC
/*---------------------------- petsc_vector_base.h ---------------------------*/
};
/*@}*/
+
+/// @if NoDoc
/*---------------------- Inline functions -----------------------------------*/
return end();
}
-
+/// @endif
/*---------------------------- sparse_matrix.h ---------------------------*/