Ifpack2 Templated Preconditioning Package  Version 1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Ifpack2::BlockTriDiContainer< MatrixType, ImplTagType > Class Template Reference

Store and solve local block tridiagonal linear problems. More...

#include <Ifpack2_BlockTriDiContainer_decl.hpp>

Detailed Description

template<typename MatrixType, typename ImplTagType = typename BlockTriDiContainerDetails::ImplTag<typename MatrixType::scalar_type>::type>
class Ifpack2::BlockTriDiContainer< MatrixType, ImplTagType >

Store and solve local block tridiagonal linear problems.

Primary declation

Template Parameters
MatrixTypeA 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:

  1. The domain and range maps are the same.
  2. On all processes, all off-process indices in the column Map of the input matrix occur after that initial set.

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:


The documentation for this class was generated from the following file: