Ifpack2 Templated Preconditioning Package
Version 1.0
|
Store and solve local block tridiagonal linear problems. More...
#include <Ifpack2_BlockTriDiContainer_decl.hpp>
Store and solve local block tridiagonal linear problems.
Primary declation
MatrixType | A specialization of Tpetra::RowMatrix. |
This class can be used as a Container for BlockRelaxation, in which case please refer to the documentation of the Container interface, or standalone. In standalone use, there are special constructor, compute
, and applyInverseJacobi
functions that may be called, with extra non-ParameterList inputs.
If the partitioner returns an empty set of partitions, then this class performs pure block-Jacobi, i.e., where the preconditioner is the diagonal of little blocks or, in other words, block tridiagonal matrices of size one block.
BlockTriDiContainer requires the Tpetra::RowMatrix to be Tpetra::BlockCrsMatrix.
This class currently assumes the following about the column and row Maps of the input matrix:
These assumptions may be violated if the input matrix was constructed with a user-provided column Map.
Currently, this class is expected to perform well on conventional CPU and Intel Xeon Phi (reaching the ceiling of the bandwidth utilization) and perform reasonably well on GPU (comparable to Intel Xeon Phi performance). The main performance issue on GPU is block sparse matrix vector multiplication which does not use a SIMD format.
Implementation specific comments: