Reference documentation for deal.II version 9.2.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Modules
Linear algebra classes

This module contains classes that involve linear algebra, i.e., those associated with matrices, vectors, and the solution of linear systems. More...

Collaboration diagram for Linear algebra classes:

Modules

 Linear Operators
 
 Matrix classes
 deal.II comes with a number of different matrix classes, tailored to the various purposes for which matrices are used. For example, there are full matrices, sparse matrices using different storage schemes, matrices composed of individual blocks, and matrices implemented as interfaces to other linear algebra classes. As far as possible, all these implementations share a common interface that contains at least the operations necessary to write iterative linear solvers (see Linear solver classes), but also element-wise access to read from and write to a matrix.
 
 PETScWrappers
 The classes in this module are wrappers around functionality provided by the PETSc library. They provide a modern object-oriented interface that is compatible with the interfaces of the other linear algebra classes in deal.II. All classes and functions in this group reside in a namespace PETScWrappers.
 
 Preconditioners and Relaxation Operators
 
 SLEPcWrappers
 The classes in this module are wrappers around functionality provided by the SLEPc library. All classes and functions in this group reside in a namespace PETScWrappers.
 
 Linear solver classes
 This module groups iterative and direct solvers, eigenvalue solvers, and some control classes. All these classes operate on objects of the matrix and vector classes defined in deal.II.
 
 Sparsity patterns
 Almost all finite element formulations lead to matrices that are "sparse", i.e., for which the number of nonzero elements per row is (i) relatively small compared to the overall size of the matrix, and (ii) bounded by a fixed number that does not grow if the mesh is refined. For such cases, it is more efficient to not store all elements of the matrix, but only those that are actually (or may be) nonzero. This requires storing, for each row, the column indices of the nonzero entries (we call this the "sparsity pattern") as well as the actual values of these nonzero entries. (In practice, it sometimes happens that some of the nonzero values are, in fact, zero. Sparsity patterns and sparse matrices only intend to provision space for entries that may be nonzero, and do so at a time when we don't know yet what values these entries will ultimately have; they may have a zero value if a coefficient or cell happens to have particular values.)
 
 TrilinosWrappers
 The classes in this module are wrappers around functionality provided by the Trilinos library. They provide a modern object-oriented interface that is compatible with the interfaces of the other linear algebra classes in deal.II. All classes and functions in this group reside in a namespace TrilinosWrappers.
 
 Vector memory management
 This module groups a few classes that are used to avoid allocating and deallocating vectors over and over in iterative procedures. These methods all use an object of the base class VectorMemory to get their auxiliary vectors.
 
 Vector classes
 Here, we list all the classes that satisfy the VectorType concept and may be used in linear solvers (see Linear solver classes) and for matrix-vector operations.
 

Detailed Description

This module contains classes that involve linear algebra, i.e., those associated with matrices, vectors, and the solution of linear systems.

The description of individual groups of classes can be found in sub-modules.

The files implementing linear algebra functionality are in the lac subdirectory, an abbreviation for Linear Algebra Classes.