Ifpack2 Templated Preconditioning Package
Version 1.0
|
Partial specialization with the non-stub implementation, for LocalScalarType types that LAPACK supports. More...
#include <Ifpack2_DenseContainer_decl.hpp>
Public Types | |
Public typedefs | |
typedef MatrixType | matrix_type |
The first template parameter of this class. More... | |
typedef LocalScalarType | local_scalar_type |
The second template parameter of this class. More... | |
typedef MatrixType::scalar_type | scalar_type |
The type of entries in the input (global) matrix. More... | |
typedef MatrixType::local_ordinal_type | local_ordinal_type |
The type of local indices in the input (global) matrix. More... | |
typedef MatrixType::global_ordinal_type | global_ordinal_type |
The type of global indices in the input (global) matrix. More... | |
typedef MatrixType::node_type | node_type |
The Node type of the input (global) matrix. More... | |
typedef Container< MatrixType >::row_matrix_type | row_matrix_type |
The (base class) type of the input matrix. More... | |
typedef Tpetra::Experimental::BlockCrsMatrix< scalar_type, local_ordinal_type, global_ordinal_type, node_type > | block_crs_matrix_type |
Public Member Functions | |
Constructor and destructor | |
DenseContainer (const Teuchos::RCP< const row_matrix_type > &matrix, const Teuchos::ArrayView< const local_ordinal_type > &localRows) | |
Constructor. More... | |
virtual | ~DenseContainer () |
Destructor (declared virtual for memory safety of derived classes). More... | |
Get and set methods | |
virtual size_t | getNumRows () const |
The number of rows in the local matrix on the calling process. More... | |
virtual bool | isInitialized () const |
Whether the container has been successfully initialized. More... | |
virtual bool | isComputed () const |
Whether the container has been successfully computed. More... | |
virtual void | setParameters (const Teuchos::ParameterList &List) |
Set all necessary parameters. More... | |
Mathematical functions | |
virtual void | initialize () |
Do all set-up operations that only require matrix structure. More... | |
virtual void | compute () |
Extract the local diagonal block and prepare the solver. More... | |
virtual void | applyBlockCrs (const Tpetra::MultiVector< scalar_type, local_ordinal_type, global_ordinal_type, node_type > &X, Tpetra::MultiVector< scalar_type, local_ordinal_type, global_ordinal_type, node_type > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, scalar_type alpha=Teuchos::ScalarTraits< scalar_type >::one(), scalar_type beta=Teuchos::ScalarTraits< scalar_type >::zero()) const |
Compute Y := alpha * M^{-1} X + beta*Y . More... | |
virtual void | apply (const Tpetra::MultiVector< scalar_type, local_ordinal_type, global_ordinal_type, node_type > &X, Tpetra::MultiVector< scalar_type, local_ordinal_type, global_ordinal_type, node_type > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, scalar_type alpha=Teuchos::ScalarTraits< scalar_type >::one(), scalar_type beta=Teuchos::ScalarTraits< scalar_type >::zero()) const |
Compute Y := alpha * M^{-1} X + beta*Y . More... | |
virtual void | weightedApply (const Tpetra::MultiVector< scalar_type, local_ordinal_type, global_ordinal_type, node_type > &X, Tpetra::MultiVector< scalar_type, local_ordinal_type, global_ordinal_type, node_type > &Y, const Tpetra::Vector< scalar_type, local_ordinal_type, global_ordinal_type, node_type > &D, Teuchos::ETransp mode=Teuchos::NO_TRANS, scalar_type alpha=Teuchos::ScalarTraits< scalar_type >::one(), scalar_type beta=Teuchos::ScalarTraits< scalar_type >::zero()) const |
Compute Y := alpha * diag(D) * M^{-1} (diag(D) * X) + beta*Y . More... | |
Miscellaneous methods | |
virtual std::ostream & | print (std::ostream &os) const |
Print information about this object to the given output stream. More... | |
Implementation of Teuchos::Describable | |
virtual std::string | description () const |
A one-line description of this object. More... | |
virtual void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const |
Print the object with some verbosity level to the given FancyOStream. More... | |
![]() | |
Container (const Teuchos::RCP< const row_matrix_type > &matrix, const Teuchos::ArrayView< const local_ordinal_type > &localRows) | |
Constructor. More... | |
virtual | ~Container () |
Destructor. More... | |
Teuchos::RCP< const row_matrix_type > | getMatrix () const |
The input matrix to the constructor. More... | |
Teuchos::ArrayView< const local_ordinal_type > | getLocalRows () const |
Local indices of the rows of the input matrix that belong to this block. More... | |
Partial specialization with the non-stub implementation, for LocalScalarType types that LAPACK supports.
typedef MatrixType Ifpack2::DenseContainer< MatrixType, LocalScalarType, true >::matrix_type |
The first template parameter of this class.
This must be either a Tpetra::RowMatrix specialization or a Tpetra::CrsMatrix specialization. It may have entirely different template parameters (e.g., scalar_type
) than InverseType
.
typedef LocalScalarType Ifpack2::DenseContainer< MatrixType, LocalScalarType, true >::local_scalar_type |
The second template parameter of this class.
typedef MatrixType::scalar_type Ifpack2::DenseContainer< MatrixType, LocalScalarType, true >::scalar_type |
The type of entries in the input (global) matrix.
typedef MatrixType::local_ordinal_type Ifpack2::DenseContainer< MatrixType, LocalScalarType, true >::local_ordinal_type |
The type of local indices in the input (global) matrix.
typedef MatrixType::global_ordinal_type Ifpack2::DenseContainer< MatrixType, LocalScalarType, true >::global_ordinal_type |
The type of global indices in the input (global) matrix.
typedef MatrixType::node_type Ifpack2::DenseContainer< MatrixType, LocalScalarType, true >::node_type |
The Node type of the input (global) matrix.
typedef Container<MatrixType>::row_matrix_type Ifpack2::DenseContainer< MatrixType, LocalScalarType, true >::row_matrix_type |
The (base class) type of the input matrix.
The input matrix to the constructor may be either a Tpetra::RowMatrix specialization or a Tpetra::CrsMatrix specialization. However, we want to make the constructor as general as possible, so we always accept the matrix as a Tpetra::RowMatrix. This typedef is the appropriate specialization of Tpetra::RowMatrix.
Ifpack2::DenseContainer< MatrixType, LocalScalarType, true >::DenseContainer | ( | const Teuchos::RCP< const row_matrix_type > & | matrix, |
const Teuchos::ArrayView< const local_ordinal_type > & | localRows | ||
) |
Constructor.
matrix [in] The original input matrix. This Container will construct a local diagonal block from the rows given by localRows
.
localRows | [in] The set of (local) rows assigned to this container. localRows[i] == j , where i (from 0 to getNumRows() - 1 ) indicates the SparseContainer's row, and j indicates the local row in the calling process. localRows.size() gives the number of rows in the local matrix on each process. This may be different on different processes. |
|
virtual |
Destructor (declared virtual for memory safety of derived classes).
|
inlinevirtual |
The number of rows in the local matrix on the calling process.
Local matrices must be square. Each process has exactly one matrix. Those matrices may vary in dimensions.
Implements Ifpack2::Container< MatrixType >.
|
inlinevirtual |
Whether the container has been successfully initialized.
Implements Ifpack2::Container< MatrixType >.
|
inlinevirtual |
Whether the container has been successfully computed.
Implements Ifpack2::Container< MatrixType >.
|
virtual |
Set all necessary parameters.
Implements Ifpack2::Container< MatrixType >.
|
virtual |
Do all set-up operations that only require matrix structure.
Implements Ifpack2::Container< MatrixType >.
|
virtual |
Extract the local diagonal block and prepare the solver.
Implements Ifpack2::Container< MatrixType >.
|
virtual |
Compute Y := alpha * M^{-1} X + beta*Y
.
|
virtual |
Compute Y := alpha * M^{-1} X + beta*Y
.
Implements Ifpack2::Container< MatrixType >.
|
virtual |
Compute Y := alpha * diag(D) * M^{-1} (diag(D) * X) + beta*Y
.
Implements Ifpack2::Container< MatrixType >.
|
virtual |
Print information about this object to the given output stream.
operator<< uses this method.
Implements Ifpack2::Container< MatrixType >.
|
virtual |
A one-line description of this object.
|
virtual |
Print the object with some verbosity level to the given FancyOStream.