Ifpack2 Templated Preconditioning Package  Version 1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Namespaces | Classes | Enumerations | Functions
Ifpack2 Namespace Reference

Preconditioners and smoothers for Tpetra sparse matrices. More...

Namespaces

 BlockTriDiContainerDetails
 

Classes

class  AdditiveSchwarz
 Additive Schwarz domain decomposition for Tpetra sparse matrices. More...
 
class  BandedContainer
 Store and solve a local Banded linear problem. More...
 
class  BlockRelaxation
 Block relaxation preconditioners (or smoothers) for Tpetra::RowMatrix and Tpetra::CrsMatrix sparse matrices. More...
 
class  BlockTriDiContainer
 Store and solve local block tridiagonal linear problems. More...
 
class  BlockTriDiContainer< MatrixType, BlockTriDiContainerDetails::ImplSimdTag >
 
class  BlockTriDiContainer< MatrixType, BlockTriDiContainerDetails::ImplNotAvailTag >
 
class  BorderedOperator
 Ifpack2 bordered operator. More...
 
class  Chebyshev
 Diagonally scaled Chebyshev iteration for Tpetra sparse matrices. More...
 
class  Container
 Interface for creating and solving a set of local linear problems. More...
 
class  ContainerImpl
 The implementation of the numerical features of Container (Jacobi, Gauss-Seidel, SGS). This class allows a custom scalar type (LocalScalarType) to be used for storing blocks and solving the block systems. Hiding this template parameter from the Container interface simplifies the BlockRelaxation and ContainerFactory classes. More...
 
class  ContainerFactory
 A static "factory" that provides a way to register and construct arbitrary Ifpack2::Container subclasses using string keys. More...
 
class  DatabaseSchwarz
 Overlapping Schwarz where redundant patches are not stored explicitly. More...
 
class  DenseContainer
 Store and solve a local dense linear problem. More...
 
class  DiagonalFilter
 Ifpack2_DiagonalFilter: Filter to modify the diagonal entries of a given Tpetra_RowMatrix. More...
 
class  DropFilter
 Filter based on matrix entries. More...
 
class  Factory
 "Factory" for creating Ifpack2 preconditioners. More...
 
class  Hiptmair
 Wrapper for Hiptmair smoothers. More...
 
class  IdentitySolver
 "Identity" preconditioner. More...
 
class  IlukGraph
 Construct a level filled graph for use in computing an ILU(k) incomplete factorization. More...
 
class  ILUT
 ILUT (incomplete LU factorization with threshold) of a Tpetra sparse matrix. More...
 
class  LinearPartitioner
 A class to define linear partitions. More...
 
class  LinePartitioner
 Ifpack2::LinePartitioner: A class to define partitions into a set of lines. More...
 
class  LocalFilter
 Access only local rows and columns of a sparse matrix. More...
 
class  LocalSparseTriangularSolver
 "Preconditioner" that solves local sparse triangular systems. More...
 
class  MDF
 MDF (incomplete LU factorization with minimum discarded fill reordering) of a Tpetra sparse matrix. More...
 
class  OverlapGraph
 Construct an overlapped graph from a given nonoverlapping graph. More...
 
class  OverlappingPartitioner
 Create overlapping partitions of a local graph. More...
 
class  OverlappingRowMatrix
 Sparse matrix (Tpetra::RowMatrix subclass) with ghost rows. More...
 
class  Partitioner
 Ifpack2::Partitioner: More...
 
class  Preconditioner
 Interface for all Ifpack2 preconditioners. More...
 
class  Relaxation
 Relaxation preconditioners for Tpetra::RowMatrix and Tpetra::CrsMatrix sparse matrices. More...
 
class  ReorderFilter
 Wraps a Tpetra::RowMatrix in a filter that reorders local rows and columns. More...
 
class  RILUK
 ILU(k) factorization of a given Tpetra::RowMatrix. More...
 
class  SingletonFilter
 Filter based on matrix entries. More...
 
class  SparseContainer
 Store and solve a local sparse linear problem. More...
 
class  SparsityFilter
 Drop entries of a matrix, based on the sparsity pattern. More...
 
class  TriDiContainer
 Store and solve a local TriDi linear problem. More...
 

Enumerations

enum  CondestType { Cheap, CG, GMRES }
 Ifpack2::CondestType: enum to define the type of condition number estimate. More...
 
enum  ScalingType
 Ifpack2 scaling type selector. More...
 

Functions

template<class GraphType >
Teuchos::RCP< const GraphType > createOverlapGraph (const Teuchos::RCP< const GraphType > &inputGraph, const int overlapLevel)
 Construct an overlapped graph for use with Ifpack2 preconditioners. More...
 
template<class MatrixType >
Teuchos::RCP< const MatrixType > createOverlapMatrix (const Teuchos::RCP< const MatrixType > &inputMatrix, const int overlapLevel)
 Construct an overlapped matrix for use with Ifpack2 preconditioners. More...
 
bool supportsUnsymmetric (const std::string &prec_type)
 true if the specified preconditioner type supports nonsymmetric matrices, else false. More...
 
template<typename Ordinal , typename SizeType >
void add_to_heap (const Ordinal &idx, Teuchos::Array< Ordinal > &heap, SizeType &heap_len)
 
template<typename Ordinal , typename SizeType , class Compare >
void add_to_heap (const Ordinal &idx, Teuchos::Array< Ordinal > &heap, SizeType &heap_len, Compare comp)
 
template<typename Ordinal , typename SizeType >
void rm_heap_root (Teuchos::Array< Ordinal > &heap, SizeType &heap_len)
 
template<typename Ordinal , typename SizeType , class Compare >
void rm_heap_root (Teuchos::Array< Ordinal > &heap, SizeType &heap_len, Compare comp)
 
void getValidParameters (Teuchos::ParameterList &params)
 Fills a list which contains all the parameters possibly used by Ifpack2. More...
 
template<typename T >
void getParameter (const Teuchos::ParameterList &params, const std::string &name, T &value)
 Set a value from a ParameterList if a parameter with the specified name exists. More...
 

Detailed Description

Preconditioners and smoothers for Tpetra sparse matrices.

Enumeration Type Documentation

Ifpack2::CondestType: enum to define the type of condition number estimate.

Enumerator
Cheap 

cheap estimate

CG 

Uses AztecOO's CG.

GMRES 

Uses AztecOO's GMRES.

Ifpack2 scaling type selector.

Selects the type of scaling used (if any) for Ifpack2 preconditioners.

Function Documentation

template<class GraphType >
Teuchos::RCP<const GraphType> Ifpack2::createOverlapGraph ( const Teuchos::RCP< const GraphType > &  inputGraph,
const int  overlapLevel 
)

Construct an overlapped graph for use with Ifpack2 preconditioners.

Template Parameters
GraphTypeA specialization of Tpetra::RowGraph or Tpetra::CrsGraph.
Warning
This function is an implementation detail of Ifpack2. Its interface may change or it may go away at any time.
Note
This method has only been tested with GraphType = Tpetra::CrsGraph. It should also work with GraphType = Tpetra::RowGraph, but I have not tested this case.
Parameters
inputGraph[in] The input graph. We assume that its row Map is nonoverlapping.
overlapLevel[in] The level of overlap. Zero means no overlap, in which case this function just returns the original inputGraph.
template<class MatrixType >
Teuchos::RCP<const MatrixType> Ifpack2::createOverlapMatrix ( const Teuchos::RCP< const MatrixType > &  inputMatrix,
const int  overlapLevel 
)

Construct an overlapped matrix for use with Ifpack2 preconditioners.

Template Parameters
MatrixTypeA specialization of Tpetra::CrsMatrix.
Parameters
inputMatrix[in] The input matrix. We assume that its row Map is nonoverlapping.
overlapLevel[in] The level of overlap. Zero means no overlap, in which case this function just returns the original inputMatrix.
bool Ifpack2::supportsUnsymmetric ( const std::string &  prec_type)

true if the specified preconditioner type supports nonsymmetric matrices, else false.

template<typename Ordinal , typename SizeType >
void Ifpack2::add_to_heap ( const Ordinal &  idx,
Teuchos::Array< Ordinal > &  heap,
SizeType &  heap_len 
)

Add idx to heap, don't assume heap occupies entire vector.

template<typename Ordinal , typename SizeType , class Compare >
void Ifpack2::add_to_heap ( const Ordinal &  idx,
Teuchos::Array< Ordinal > &  heap,
SizeType &  heap_len,
Compare  comp 
)

Add idx to heap, don't assume heap occupies entire vector. Also take custom comparator.

template<typename Ordinal , typename SizeType >
void Ifpack2::rm_heap_root ( Teuchos::Array< Ordinal > &  heap,
SizeType &  heap_len 
)

Remove heap root, don't shorten vector but update a heap_len parameter.

template<typename Ordinal , typename SizeType , class Compare >
void Ifpack2::rm_heap_root ( Teuchos::Array< Ordinal > &  heap,
SizeType &  heap_len,
Compare  comp 
)

Remove heap root, with custom comparator, don't assume heap occupies entire vector.

void Ifpack2::getValidParameters ( Teuchos::ParameterList params)

Fills a list which contains all the parameters possibly used by Ifpack2.

template<typename T >
void Ifpack2::getParameter ( const Teuchos::ParameterList params,
const std::string &  name,
T &  value 
)

Set a value from a ParameterList if a parameter with the specified name exists.

If the specified name does not name a parameter in the list, then 'value' is not referenced.