Ifpack2 Templated Preconditioning Package Version 1.0
Public Member Functions | Protected Member Functions | Protected Attributes
Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType > Class Template Reference

Additive Schwarz domain decomposition for Tpetra sparse matrices. More...

#include <Ifpack2_AdditiveSchwarz_decl.hpp>

Inheritance diagram for Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >:
Inheritance graph
[legend]

List of all members.

Public Types

Typedefs
typedef MatrixType::scalar_type scalar_type
 The type of the entries of the input MatrixType.
typedef
MatrixType::local_ordinal_type 
local_ordinal_type
 The type of local indices in the input MatrixType.
typedef
MatrixType::global_ordinal_type 
global_ordinal_type
 The type of global indices in the input MatrixType.
typedef MatrixType::node_type node_type
 The type of the Kokkos Node used by the input MatrixType.
typedef Teuchos::ScalarTraits
< scalar_type >::magnitudeType 
magnitude_type
 The type of the magnitude (absolute value) of a matrix entry.
typedef Tpetra::RowMatrix
< scalar_type,
local_ordinal_type,
global_ordinal_type, node_type
row_matrix_type
 The Tpetra::RowMatrix specialization matching MatrixType.

Public Member Functions

virtual Teuchos::RCP< const
row_matrix_type
getMatrix () const
 The input matrix.
template<class DomainScalar , class RangeScalar >
void applyTempl (const Tpetra::MultiVector< DomainScalar, local_ordinal_type, global_ordinal_type, node_type > &X, Tpetra::MultiVector< RangeScalar, local_ordinal_type, global_ordinal_type, node_type > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, RangeScalar alpha=Teuchos::ScalarTraits< scalar_type >::one(), RangeScalar beta=Teuchos::ScalarTraits< scalar_type >::zero()) const
 Templated version of apply().
virtual void setParameters (const Teuchos::ParameterList &List)
 Set the preconditioner's parameters.
virtual void initialize ()
 Computes all (graph-related) data necessary to initialize the preconditioner.
virtual bool isInitialized () const
 Returns true if the preconditioner has been successfully initialized, false otherwise.
virtual void compute ()
 Computes all (coefficient) data necessary to apply the preconditioner.
virtual bool isComputed () const
 Returns true if the preconditioner has been successfully computed, false otherwise.
virtual magnitude_type computeCondEst (CondestType CT=Ifpack2::Cheap, local_ordinal_type MaxIters=1550, magnitude_type Tol=1e-9, const Teuchos::Ptr< const row_matrix_type > &Matrix=Teuchos::null)
 Computes the condition number estimate and returns its value.
virtual magnitude_type getCondEst () const
 Returns the computed condition number estimate, or -1.0 if not computed.
virtual int getNumInitialize () const
 Returns the number of calls to initialize().
virtual int getNumCompute () const
 Returns the number of calls to compute().
virtual int getNumApply () const
 Returns the number of calls to apply().
virtual double getInitializeTime () const
 Returns the time spent in initialize().
virtual double getComputeTime () const
 Returns the time spent in compute().
virtual double getApplyTime () const
 Returns the time spent in apply().
virtual std::ostream & print (std::ostream &os) const
 Prints basic information on iostream. This function is used by operator<<.
virtual int getOverlapLevel () const
 Returns the level of overlap.
 AdditiveSchwarz (const Teuchos::RCP< const row_matrix_type > &A, const int overlapLevel=0)
 Constructor that takes a matrix and the level of overlap.
virtual ~AdditiveSchwarz ()
 Destructor.
Implementation of Tpetra::Operator
virtual Teuchos::RCP< const
Tpetra::Map
< local_ordinal_type,
global_ordinal_type, node_type > > 
getDomainMap () const
 The domain Map of this operator.
virtual Teuchos::RCP< const
Tpetra::Map
< local_ordinal_type,
global_ordinal_type, node_type > > 
getRangeMap () const
 The range Map of this operator.
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
 Apply the preconditioner to X, putting the result in Y.
Implementation of Teuchos::Describable
std::string description () const
 Return a simple one-line description of this object.
void describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
 Print the object with some verbosity level to an FancyOStream object.

Public Attributes

TEUCHOS_DEPRECATED typedef
MatrixType::scalar_type 
Scalar
 Preserved only for backwards compatibility. Please use "scalar_type".
TEUCHOS_DEPRECATED typedef
MatrixType::local_ordinal_type 
LocalOrdinal
 Preserved only for backwards compatibility. Please use "local_ordinal_type".
TEUCHOS_DEPRECATED typedef
MatrixType::global_ordinal_type 
GlobalOrdinal
 Preserved only for backwards compatibility. Please use "global_ordinal_type".
TEUCHOS_DEPRECATED typedef
MatrixType::node_type 
Node
 Preserved only for backwards compatibility. Please use "node_type".
TEUCHOS_DEPRECATED typedef
Teuchos::ScalarTraits
< scalar_type >::magnitudeType 
magnitudeType
 Preserved only for backwards compatibility. Please use "magnitude_type".
TEUCHOS_DEPRECATED typedef
Tpetra::RowMatrix< scalar_type,
local_ordinal_type,
global_ordinal_type, node_type
LocalMatrixType
 Preserved only for backwards compatibility. Please use "row_matrix_type".

Protected Member Functions

 AdditiveSchwarz (const AdditiveSchwarz &RHS)
 Copy constructor (unimplemented; do not use)
void setup ()
 Set up the localized matrix and the singleton filter.

Protected Attributes

const Teuchos::RCP< const
row_matrix_type
Matrix_
 The matrix to be preconditioned.
Teuchos::RCP
< Ifpack2::OverlappingRowMatrix
< row_matrix_type > > 
OverlappingMatrix_
 The overlapping matrix.
Teuchos::RCP< row_matrix_typeLocalizedMatrix_
 Localized version of Matrix_ or OverlappingMatrix_.
Teuchos::RCP
< Ifpack2::ReorderFilter
< row_matrix_type > > 
ReorderedLocalizedMatrix_
 The reordered matrix.
bool IsInitialized_
 If true, the preconditioner has been successfully initialized.
bool IsComputed_
 If true, the preconditioner has been successfully computed.
bool IsOverlapping_
 If true, overlapping is used.
int OverlapLevel_
 Level of overlap among the processors.
Teuchos::ParameterList List_
 Store a copy of the list given in setParameters()
Tpetra::CombineMode CombineMode_
 Combine mode for off-process elements (only if overlap is used)
magnitude_type Condest_
 Contains the estimated condition number.
bool ComputeCondest_
 If true, compute the condition number estimate each time Compute() is called.
bool UseReordering_
 If true, reorder the local matrix.
std::string ReorderingAlgorithm_
 Record reordering for output purposes.
bool UseSubdomain_
 If true, subdomain filtering is used.
bool FilterSingletons_
 Filter for singletons.
Teuchos::RCP
< Ifpack2::SingletonFilter
< row_matrix_type > > 
SingletonMatrix_
 filtering object.
int NumInitialize_
 Contains the number of successful calls to Initialize().
int NumCompute_
 Contains the number of successful call to Compute().
int NumApply_
 Contains the number of successful call to apply().
double InitializeTime_
 Contains the time for all successful calls to initialize().
double ComputeTime_
 Contains the time for all successful calls to compute().
double ApplyTime_
 Contains the time for all successful calls to apply().
double InitializeFlops_
 Contains the number of flops for Initialize().
double ComputeFlops_
 Contains the number of flops for Compute().
double ApplyFlops_
 Contain sthe number of flops for ApplyInverse().
Teuchos::RCP< Teuchos::TimeTime_
 Object used for timing purposes.
Teuchos::RCP< LocalInverseType > Inverse_
 Pointer to the local solver.
Teuchos::RCP< const
Tpetra::Map
< local_ordinal_type,
global_ordinal_type, node_type > > 
SerialMap_
 SerialMap for filtering multivector with no overlap.
Teuchos::RCP< const
Tpetra::Map
< local_ordinal_type,
global_ordinal_type, node_type > > 
DistributedMap_
 Distributed map for filtering multivector with no overlap.
Teuchos::RCP< const
Tpetra::Map
< local_ordinal_type,
global_ordinal_type, node_type > > 
LocalDistributedMap_
 Local distributed map for filtering multivector with no overlap.

Detailed Description

template<class MatrixType, class LocalInverseType>
class Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >

Additive Schwarz domain decomposition for Tpetra sparse matrices.

Summary

This class implements an Additive Schwarz (one-level overlapping domain decomposition) preconditioner. It operates on a given Tpetra::RowMatrix. This class implements Tpetra::Operator, like all other subclasses of Preconditioner. Thus, the apply() method applies the preconditioner to a multivector.

Algorithm

One-level overlapping domain decomposition preconditioners use local solvers of Dirichlet type. This means that the inverse of the local matrix (with minimal or wider overlap) is applied to the residual to be preconditioned.

The preconditioner can be written as:

\[ P_{AS}^{-1} = \sum_{i=1}^M P_i A_i^{-1} R_i, \]

where \(M\) is the number of subdomains (in this case, the number of processors in the computation), \(R_i\) is an operator that restricts the global vector to the vector lying on subdomain \(i\), \(P_i\) is the prolongator operator, and

\[ A_i = R_i A P_i. \]

Constructing a Schwarz preconditioner takes two steps:

  1. Definition of the restriction and prolongation operators
  2. Definition of a solver for linear systems involving \(A_i\)

The definition of the restriction and prolongation operators \(R_i\) and \(R_i^T\) depends on the level of overlap. If minimal overlap is chosen, their implementation is trivial; \(R_i\) will return all the local components. For wider overlap, Tpetra::Import and Tpetra::Export will be used to import resp. export data. The user must provide both the matrix to be preconditioned (whose which must have minimal overlap) and the matrix with wider overlap.

To solve linear systems involving \(A_i\) on each subdomain, the user can adopt any subclass of Ifpack2::Preconditioner. This can be easily accomplished, as Ifpack2::AdditiveSchwarz is templated with the solver for each subdomain.

The local matrix \(A_i\) can be filtered, to eliminate singletons, and reordered. At the present time, RCM and METIS can be used to reorder the local matrix.


Member Typedef Documentation

template<class MatrixType , class LocalInverseType >
typedef MatrixType::scalar_type Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::scalar_type

The type of the entries of the input MatrixType.

template<class MatrixType , class LocalInverseType >
typedef MatrixType::local_ordinal_type Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::local_ordinal_type

The type of local indices in the input MatrixType.

template<class MatrixType , class LocalInverseType >
typedef MatrixType::global_ordinal_type Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::global_ordinal_type

The type of global indices in the input MatrixType.

template<class MatrixType , class LocalInverseType >
typedef MatrixType::node_type Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::node_type

The type of the Kokkos Node used by the input MatrixType.

template<class MatrixType , class LocalInverseType >
typedef Teuchos::ScalarTraits<scalar_type>::magnitudeType Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::magnitude_type

The type of the magnitude (absolute value) of a matrix entry.

template<class MatrixType , class LocalInverseType >
typedef Tpetra::RowMatrix<scalar_type, local_ordinal_type, global_ordinal_type, node_type> Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::row_matrix_type

The Tpetra::RowMatrix specialization matching MatrixType.

MatrixType may be either a Tpetra::CrsMatrix specialization or a Tpetra::RowMatrix specialization. This typedef will always be a Tpetra::RowMatrix specialization which is either the same as MatrixType, or the parent class of MatrixType.


Constructor & Destructor Documentation

template<class MatrixType , class LocalInverseType >
Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::AdditiveSchwarz ( const Teuchos::RCP< const row_matrix_type > &  A,
const int  overlapLevel = 0 
)

Constructor that takes a matrix and the level of overlap.

Parameters:
Matrix[in] The matrix to be preconditioned.
overlapLevel[in] The level of overlap. Must be nonnegative. Zero means no overlap.
template<class MatrixType , class LocalInverseType >
Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::~AdditiveSchwarz ( ) [virtual]

Destructor.

template<class MatrixType , class LocalInverseType >
Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::AdditiveSchwarz ( const AdditiveSchwarz< MatrixType, LocalInverseType > &  RHS) [protected]

Copy constructor (unimplemented; do not use)


Member Function Documentation

template<class MatrixType , class LocalInverseType >
Teuchos::RCP< const Tpetra::Map< typename MatrixType::local_ordinal_type, typename MatrixType::global_ordinal_type, typename MatrixType::node_type > > Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::getDomainMap ( ) const [virtual]
template<class MatrixType , class LocalInverseType >
Teuchos::RCP< const Tpetra::Map< typename MatrixType::local_ordinal_type, typename MatrixType::global_ordinal_type, typename MatrixType::node_type > > Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::getRangeMap ( ) const [virtual]
template<class MatrixType , class LocalInverseType >
void Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::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 [virtual]
template<class MatrixType , class LocalInverseType >
Teuchos::RCP< const Tpetra::RowMatrix< typename MatrixType::scalar_type, typename MatrixType::local_ordinal_type, typename MatrixType::global_ordinal_type, typename MatrixType::node_type > > Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::getMatrix ( ) const [virtual]
template<class MatrixType , class LocalInverseType >
template<class DomainScalar , class RangeScalar >
void Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::applyTempl ( const Tpetra::MultiVector< DomainScalar, local_ordinal_type, global_ordinal_type, node_type > &  X,
Tpetra::MultiVector< RangeScalar, local_ordinal_type, global_ordinal_type, node_type > &  Y,
Teuchos::ETransp  mode = Teuchos::NO_TRANS,
RangeScalar  alpha = Teuchos::ScalarTraits<scalar_type>::one(),
RangeScalar  beta = Teuchos::ScalarTraits<scalar_type>::zero() 
) const

Templated version of apply().

template<class MatrixType , class LocalInverseType >
void Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::setParameters ( const Teuchos::ParameterList List) [virtual]

Set the preconditioner's parameters.

Accepted parameters include the following:

  • "schwarz: compute condest" (bool): If true, estimate the condition number each time compute() is called.
  • "schwarz: combine mode" (std::string): The (Tpetra) CombineMode used for combining incoming data with existing data in overlap regions. Valid values include "Add", "Insert", "Replace", and "AbsMax".
  • "schwarz: overlap level" (int): The level of overlap.
  • "schwarz: use reordering" (bool): Whether to use Zoltan2 to do reordering.
  • "schwarz: subdomain id" (int): I don't understand what this does.
  • "schwarz: filter singletons" (bool): If true, filter singletons. I don't understand what this does.

Implements Ifpack2::Preconditioner< MatrixType::scalar_type, MatrixType::local_ordinal_type, MatrixType::global_ordinal_type, MatrixType::node_type >.

template<class MatrixType , class LocalInverseType >
void Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::initialize ( ) [virtual]

Computes all (graph-related) data necessary to initialize the preconditioner.

Implements Ifpack2::Preconditioner< MatrixType::scalar_type, MatrixType::local_ordinal_type, MatrixType::global_ordinal_type, MatrixType::node_type >.

template<class MatrixType , class LocalInverseType >
bool Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::isInitialized ( ) const [virtual]

Returns true if the preconditioner has been successfully initialized, false otherwise.

Implements Ifpack2::Preconditioner< MatrixType::scalar_type, MatrixType::local_ordinal_type, MatrixType::global_ordinal_type, MatrixType::node_type >.

template<class MatrixType , class LocalInverseType >
void Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::compute ( ) [virtual]
template<class MatrixType , class LocalInverseType >
bool Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::isComputed ( ) const [virtual]

Returns true if the preconditioner has been successfully computed, false otherwise.

Implements Ifpack2::Preconditioner< MatrixType::scalar_type, MatrixType::local_ordinal_type, MatrixType::global_ordinal_type, MatrixType::node_type >.

template<class MatrixType , class LocalInverseType >
virtual magnitude_type Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::computeCondEst ( CondestType  CT = Ifpack2::Cheap,
local_ordinal_type  MaxIters = 1550,
magnitude_type  Tol = 1e-9,
const Teuchos::Ptr< const row_matrix_type > &  Matrix = Teuchos::null 
) [virtual]

Computes the condition number estimate and returns its value.

template<class MatrixType , class LocalInverseType >
Teuchos::ScalarTraits< typename MatrixType::scalar_type >::magnitudeType Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::getCondEst ( ) const [virtual]
template<class MatrixType , class LocalInverseType >
int Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::getNumInitialize ( ) const [virtual]
template<class MatrixType , class LocalInverseType >
int Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::getNumCompute ( ) const [virtual]
template<class MatrixType , class LocalInverseType >
int Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::getNumApply ( ) const [virtual]
template<class MatrixType , class LocalInverseType >
double Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::getInitializeTime ( ) const [virtual]
template<class MatrixType , class LocalInverseType >
double Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::getComputeTime ( ) const [virtual]
template<class MatrixType , class LocalInverseType >
double Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::getApplyTime ( ) const [virtual]
template<class MatrixType , class LocalInverseType >
std::string Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::description ( ) const

Return a simple one-line description of this object.

template<class MatrixType , class LocalInverseType >
void Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::describe ( Teuchos::FancyOStream out,
const Teuchos::EVerbosityLevel  verbLevel = Teuchos::Describable::verbLevel_default 
) const

Print the object with some verbosity level to an FancyOStream object.

template<class MatrixType , class LocalInverseType >
std::ostream & Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::print ( std::ostream &  os) const [virtual]

Prints basic information on iostream. This function is used by operator<<.

template<class MatrixType , class LocalInverseType >
int Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::getOverlapLevel ( ) const [virtual]

Returns the level of overlap.

template<class MatrixType , class LocalInverseType >
void Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::setup ( ) [protected]

Set up the localized matrix and the singleton filter.


Member Data Documentation

template<class MatrixType , class LocalInverseType >
TEUCHOS_DEPRECATED typedef MatrixType::scalar_type Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::Scalar

Preserved only for backwards compatibility. Please use "scalar_type".

template<class MatrixType , class LocalInverseType >
TEUCHOS_DEPRECATED typedef MatrixType::local_ordinal_type Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::LocalOrdinal

Preserved only for backwards compatibility. Please use "local_ordinal_type".

template<class MatrixType , class LocalInverseType >
TEUCHOS_DEPRECATED typedef MatrixType::global_ordinal_type Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::GlobalOrdinal

Preserved only for backwards compatibility. Please use "global_ordinal_type".

template<class MatrixType , class LocalInverseType >
TEUCHOS_DEPRECATED typedef MatrixType::node_type Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::Node

Preserved only for backwards compatibility. Please use "node_type".

template<class MatrixType , class LocalInverseType >
TEUCHOS_DEPRECATED typedef Teuchos::ScalarTraits<scalar_type>::magnitudeType Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::magnitudeType

Preserved only for backwards compatibility. Please use "magnitude_type".

Reimplemented from Ifpack2::Preconditioner< MatrixType::scalar_type, MatrixType::local_ordinal_type, MatrixType::global_ordinal_type, MatrixType::node_type >.

template<class MatrixType , class LocalInverseType >
TEUCHOS_DEPRECATED typedef Tpetra::RowMatrix<scalar_type,local_ordinal_type,global_ordinal_type,node_type> Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::LocalMatrixType

Preserved only for backwards compatibility. Please use "row_matrix_type".

template<class MatrixType , class LocalInverseType >
const Teuchos::RCP<const row_matrix_type> Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::Matrix_ [protected]

The matrix to be preconditioned.

template<class MatrixType , class LocalInverseType >
Teuchos::RCP<Ifpack2::OverlappingRowMatrix<row_matrix_type> > Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::OverlappingMatrix_ [protected]

The overlapping matrix.

template<class MatrixType , class LocalInverseType >
Teuchos::RCP<row_matrix_type> Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::LocalizedMatrix_ [protected]

Localized version of Matrix_ or OverlappingMatrix_.

template<class MatrixType , class LocalInverseType >
Teuchos::RCP<Ifpack2::ReorderFilter<row_matrix_type> > Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::ReorderedLocalizedMatrix_ [protected]

The reordered matrix.

template<class MatrixType , class LocalInverseType >
bool Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::IsInitialized_ [protected]

If true, the preconditioner has been successfully initialized.

template<class MatrixType , class LocalInverseType >
bool Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::IsComputed_ [protected]

If true, the preconditioner has been successfully computed.

template<class MatrixType , class LocalInverseType >
bool Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::IsOverlapping_ [protected]

If true, overlapping is used.

template<class MatrixType , class LocalInverseType >
int Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::OverlapLevel_ [protected]

Level of overlap among the processors.

template<class MatrixType , class LocalInverseType >
Teuchos::ParameterList Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::List_ [protected]

Store a copy of the list given in setParameters()

template<class MatrixType , class LocalInverseType >
Tpetra::CombineMode Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::CombineMode_ [protected]

Combine mode for off-process elements (only if overlap is used)

template<class MatrixType , class LocalInverseType >
magnitude_type Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::Condest_ [protected]

Contains the estimated condition number.

template<class MatrixType , class LocalInverseType >
bool Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::ComputeCondest_ [protected]

If true, compute the condition number estimate each time Compute() is called.

template<class MatrixType , class LocalInverseType >
bool Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::UseReordering_ [protected]

If true, reorder the local matrix.

template<class MatrixType , class LocalInverseType >
std::string Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::ReorderingAlgorithm_ [protected]

Record reordering for output purposes.

template<class MatrixType , class LocalInverseType >
bool Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::UseSubdomain_ [protected]

If true, subdomain filtering is used.

template<class MatrixType , class LocalInverseType >
bool Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::FilterSingletons_ [protected]

Filter for singletons.

template<class MatrixType , class LocalInverseType >
Teuchos::RCP<Ifpack2::SingletonFilter<row_matrix_type> > Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::SingletonMatrix_ [protected]

filtering object.

template<class MatrixType , class LocalInverseType >
int Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::NumInitialize_ [protected]

Contains the number of successful calls to Initialize().

template<class MatrixType , class LocalInverseType >
int Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::NumCompute_ [protected]

Contains the number of successful call to Compute().

template<class MatrixType , class LocalInverseType >
int Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::NumApply_ [mutable, protected]

Contains the number of successful call to apply().

template<class MatrixType , class LocalInverseType >
double Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::InitializeTime_ [protected]

Contains the time for all successful calls to initialize().

template<class MatrixType , class LocalInverseType >
double Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::ComputeTime_ [protected]

Contains the time for all successful calls to compute().

template<class MatrixType , class LocalInverseType >
double Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::ApplyTime_ [mutable, protected]

Contains the time for all successful calls to apply().

template<class MatrixType , class LocalInverseType >
double Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::InitializeFlops_ [protected]

Contains the number of flops for Initialize().

template<class MatrixType , class LocalInverseType >
double Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::ComputeFlops_ [protected]

Contains the number of flops for Compute().

template<class MatrixType , class LocalInverseType >
double Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::ApplyFlops_ [mutable, protected]

Contain sthe number of flops for ApplyInverse().

template<class MatrixType , class LocalInverseType >
Teuchos::RCP<Teuchos::Time> Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::Time_ [protected]

Object used for timing purposes.

template<class MatrixType , class LocalInverseType >
Teuchos::RCP<LocalInverseType> Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::Inverse_ [protected]

Pointer to the local solver.

template<class MatrixType , class LocalInverseType >
Teuchos::RCP<const Tpetra::Map<local_ordinal_type,global_ordinal_type,node_type> > Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::SerialMap_ [protected]

SerialMap for filtering multivector with no overlap.

template<class MatrixType , class LocalInverseType >
Teuchos::RCP<const Tpetra::Map<local_ordinal_type,global_ordinal_type,node_type> > Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::DistributedMap_ [protected]

Distributed map for filtering multivector with no overlap.

template<class MatrixType , class LocalInverseType >
Teuchos::RCP<const Tpetra::Map<local_ordinal_type,global_ordinal_type,node_type> > Ifpack2::AdditiveSchwarz< MatrixType, LocalInverseType >::LocalDistributedMap_ [protected]

Local distributed map for filtering multivector with no overlap.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends