Ifpack2 Templated Preconditioning Package
Version 1.0
|
#include <Ifpack2_BlockTriDiContainer_decl.hpp>
Public Member Functions | |
void | setParameters (const Teuchos::ParameterList &List) override |
Set parameters, if any. More... | |
void | initialize () override |
Do all set-up operations that only require matrix structure. More... | |
void | compute () override |
Extract the local diagonal blocks and prepare the solver. More... | |
std::ostream & | print (std::ostream &os) const override |
Print basic information about the container to os . More... | |
Public Member Functions inherited from Ifpack2::Container< MatrixType > | |
Container (const Teuchos::RCP< const row_matrix_type > &matrix, const Teuchos::Array< Teuchos::Array< LO > > &partitions, bool pointIndexed) | |
Constructor. More... | |
virtual | ~Container () |
Destructor. More... | |
Teuchos::ArrayView< const LO > | getBlockRows (int blockIndex) const |
Local indices of the rows of the input matrix that belong to this block. More... | |
void | setBlockSizes (const Teuchos::Array< Teuchos::Array< LO > > &partitions) |
Initialize arrays with information about block sizes. More... | |
bool | isInitialized () const |
Whether the container has been successfully initialized. More... | |
bool | isComputed () const |
Whether the container has been successfully computed. More... | |
virtual void | apply (HostView X, HostView Y, int blockIndex, Teuchos::ETransp mode=Teuchos::NO_TRANS, SC alpha=Teuchos::ScalarTraits< SC >::one(), SC beta=Teuchos::ScalarTraits< SC >::zero()) const =0 |
Compute Y := alpha * M^{-1} X + beta*Y . More... | |
virtual void | weightedApply (HostView X, HostView Y, HostView D, int blockIndex, Teuchos::ETransp mode=Teuchos::NO_TRANS, SC alpha=Teuchos::ScalarTraits< SC >::one(), SC beta=Teuchos::ScalarTraits< SC >::zero()) const =0 |
Compute Y := alpha * diag(D) * M^{-1} (diag(D) * X) + beta*Y . More... | |
virtual void | applyInverseJacobi (const mv_type &, mv_type &, SC dampingFactor, bool, int) const =0 |
Compute Y := (1 - a) Y + a D^{-1} (X - R*Y) . More... | |
virtual void | applyMV (mv_type &X, mv_type &Y) const |
Wrapper for apply with MultiVector. More... | |
virtual void | weightedApplyMV (mv_type &X, mv_type &Y, vector_type &W) const |
Wrapper for weightedApply with MultiVector. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from Ifpack2::Container< MatrixType > | |
static std::string | getName () |
Protected Types inherited from Ifpack2::Container< MatrixType > | |
using | ISC = typename Kokkos::Details::ArithTraits< SC >::val_type |
Internal representation of Scalar in Kokkos::View. More... | |
using | HostView = typename mv_type::dual_view_type::t_host |
Protected Member Functions inherited from Ifpack2::Container< MatrixType > | |
virtual void | DoGSBlock (HostView X, HostView Y, HostView Y2, HostView Resid, SC dampingFactor, LO i) const |
Do one step of Gauss-Seidel on block i (used by DoGaussSeidel and DoSGS) More... | |
Protected Attributes inherited from Ifpack2::Container< MatrixType > | |
Teuchos::RCP< const row_matrix_type > | inputMatrix_ |
The input matrix to the constructor. More... | |
Teuchos::RCP< const crs_matrix_type > | inputCrsMatrix_ |
The input matrix, dynamic cast to CrsMatrix. May be null. More... | |
Teuchos::RCP< const block_crs_matrix_type > | inputBlockMatrix_ |
The input matrix, dynamic cast to BlockCrsMatrix. May be null. More... | |
int | numBlocks_ |
The number of blocks (partitions) in the container. More... | |
Teuchos::Array< LO > | blockRows_ |
Local indices of the rows of the input matrix that belong to this block. More... | |
Teuchos::Array< LO > | blockSizes_ |
Number of rows in each block. More... | |
Teuchos::Array< LO > | blockOffsets_ |
Starting index in blockRows_ of local row indices for each block. More... | |
Teuchos::RCP< vector_type > | Diag_ |
Diagonal elements. More... | |
bool | IsParallel_ |
Whether the problem is distributed across multiple MPI processes. More... | |
LO | NumLocalRows_ |
Number of local rows in input matrix. More... | |
GO | NumGlobalRows_ |
Number of global rows in input matrix. More... | |
GO | NumGlobalNonzeros_ |
Number of nonzeros in input matrix. More... | |
bool | hasBlockCrs_ |
Whether the input matrix is a BlockCRS matrix. More... | |
int | bcrsBlockSize_ |
If hasBlockCrs_, the number of DOFs per vertex. Otherwise 1. More... | |
bool | pointIndexed_ |
(If hasBlockCrs_) Whether the blocks are described using sub-block row indices instead of full block rows. More... | |
LO | scalarsPerRow_ |
bool | IsInitialized_ |
If true , the container has been successfully initialized. More... | |
bool | IsComputed_ |
If true , the container has been successfully computed. More... | |
ImplNotAvailTag This container does not support UQ types; however, the UQ types are required for Stokhos ETI. To prevent linking errors, we provide an empty implementation with ImplNotAvailTag. Upon the request to support UQ types, we need to specialize the impl function and interface with ImplSacadoTag.
|
inlineoverridevirtual |
Set parameters, if any.
Implements Ifpack2::Container< MatrixType >.
|
inlineoverridevirtual |
Do all set-up operations that only require matrix structure.
If the input matrix's structure changes, you must call this method before you may call compute(). You must then call compute() before you may call apply() or weightedApply().
"Structure" refers to the graph of the matrix: the local and global dimensions, and the populated entries in each row.
Implements Ifpack2::Container< MatrixType >.
|
inlineoverridevirtual |
Extract the local diagonal blocks and prepare the solver.
If any entries' values in the input matrix have changed, you must call this method before you may call apply() or weightedApply().
If DOF decoupling is to be used, it must be enabled with enableDecoupling() before calling compute().
Implements Ifpack2::Container< MatrixType >.
|
inlineoverridevirtual |
Print basic information about the container to os
.
Implements Ifpack2::Container< MatrixType >.