Ifpack2 Templated Preconditioning Package  Version 1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
List of all members
Ifpack2::ContainerFactory< MatrixType > Class Template Reference

A static "factory" that provides a way to register and construct arbitrary Ifpack2::Container subclasses using string keys. More...

#include <Ifpack2_ContainerFactory_decl.hpp>

Public Types

Typedefs
typedef MatrixType::scalar_type scalar_type
 The type of the entries of the input MatrixType. More...
 
typedef
MatrixType::local_ordinal_type 
local_ordinal_type
 The local_ordinal_type from the input MatrixType. More...
 
typedef
MatrixType::global_ordinal_type 
global_ordinal_type
 The global_ordinal_type from the input MatrixType. More...
 
typedef MatrixType::node_type node_type
 The node_type from the input MatrixType. More...
 
typedef Tpetra::RowMatrix
< scalar_type,
local_ordinal_type,
global_ordinal_type, node_type
row_matrix_type
 Tpetra::RowMatrix specialization (superclass of MatrixType) More...
 
typedef Tpetra::Import
< local_ordinal_type,
global_ordinal_type, node_type
import_type
 Tpetra::Importer specialization for use with MatrixType and compatible MultiVectors. More...
 
typedef Ifpack2::Container
< MatrixType > 
BaseContainer
 

Static Public Member Functions

template<typename ContainerType >
static void registerContainer (std::string containerType)
 Registers a specialization of Ifpack2::Container by binding a key (string) to it. More...
 
static Teuchos::RCP
< BaseContainer
build (std::string containerType, const Teuchos::RCP< const MatrixType > &A, const Teuchos::Array< Teuchos::Array< local_ordinal_type >> &partitions, const Teuchos::RCP< const import_type > importer, bool pointIndexed)
 Build a specialization of Ifpack2::Container given a key that has been registered. More...
 
static void deregisterContainer (std::string containerType)
 Registers a specialization of Ifpack2::Container by binding a key (string) to it. More...
 

Detailed Description

template<typename MatrixType>
class Ifpack2::ContainerFactory< MatrixType >

A static "factory" that provides a way to register and construct arbitrary Ifpack2::Container subclasses using string keys.

Template Parameters
MatrixTypeA specialization of Tpetra::RowMatrix.

Member Typedef Documentation

template<typename MatrixType >
typedef MatrixType::scalar_type Ifpack2::ContainerFactory< MatrixType >::scalar_type

The type of the entries of the input MatrixType.

template<typename MatrixType >
typedef MatrixType::local_ordinal_type Ifpack2::ContainerFactory< MatrixType >::local_ordinal_type

The local_ordinal_type from the input MatrixType.

template<typename MatrixType >
typedef MatrixType::global_ordinal_type Ifpack2::ContainerFactory< MatrixType >::global_ordinal_type

The global_ordinal_type from the input MatrixType.

template<typename MatrixType >
typedef MatrixType::node_type Ifpack2::ContainerFactory< MatrixType >::node_type

The node_type from the input MatrixType.

template<typename MatrixType >
typedef Tpetra::RowMatrix<scalar_type, local_ordinal_type, global_ordinal_type, node_type> Ifpack2::ContainerFactory< MatrixType >::row_matrix_type

Tpetra::RowMatrix specialization (superclass of MatrixType)

template<typename MatrixType >
typedef Tpetra::Import<local_ordinal_type, global_ordinal_type, node_type> Ifpack2::ContainerFactory< MatrixType >::import_type

Tpetra::Importer specialization for use with MatrixType and compatible MultiVectors.

Member Function Documentation

template<typename MatrixType >
template<typename ContainerType >
void Ifpack2::ContainerFactory< MatrixType >::registerContainer ( std::string  containerType)
static

Registers a specialization of Ifpack2::Container by binding a key (string) to it.

Template Parameters
ContainerTypeThe Container specialization to register.
Parameters
containerTypeThe key to pair with ContainerType. After registering, the key can be used to construct a ContainerType.
template<typename MatrixType >
Teuchos::RCP< typename ContainerFactory< MatrixType >::BaseContainer > Ifpack2::ContainerFactory< MatrixType >::build ( std::string  containerType,
const Teuchos::RCP< const MatrixType > &  A,
const Teuchos::Array< Teuchos::Array< local_ordinal_type >> &  partitions,
const Teuchos::RCP< const import_type importer,
bool  pointIndexed 
)
static

Build a specialization of Ifpack2::Container given a key that has been registered.

Parameters
containerTypeThe key for looking up the Container specialization. If this key hasn't been registered, an exception is thrown.
AThe problem matrix.
partitionsThe rows that correspond to each block. The outer list contains blocks, and the inner list contains rows. In BlockRelaxation, this is retrieved from a Partitioner.
importerThe importer that is used to import off-process rows (used by overlapping BlockRelaxation).
pointIndexedIf A is a BlockCrsMatrix, whether partitions contains the indices of individual DOFs instead of nodes/blocks.
template<typename MatrixType >
void Ifpack2::ContainerFactory< MatrixType >::deregisterContainer ( std::string  containerType)
static

Registers a specialization of Ifpack2::Container by binding a key (string) to it.

Parameters
containerTypeThe key to deregister. If it wasn't registered before, the call has no effect.

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