Ifpack Package Browser (Single Doxygen Collection)
Development
|
Ifpack_AdditiveSchwarz: a class to define Additive Schwarz preconditioners of Epetra_RowMatrix's. More...
#include <Ifpack_AdditiveSchwarz.h>
Public Member Functions | |
virtual bool | IsInitialized () const |
Returns true if the preconditioner has been successfully initialized. More... | |
virtual bool | IsComputed () const |
Returns true if the preconditioner has been successfully computed. More... | |
virtual int | SetParameters (Teuchos::ParameterList &List) |
Sets the parameters. More... | |
Ifpack_AdditiveSchwarz (Epetra_RowMatrix *Matrix_in, int OverlapLevel_in=0) | |
Ifpack_AdditiveSchwarz constructor with given Epetra_RowMatrix. More... | |
virtual | ~Ifpack_AdditiveSchwarz () |
Destructor. More... | |
virtual int | SetUseTranspose (bool UseTranspose_in) |
If set true, transpose of this operator will be applied (not implemented). More... | |
virtual int | Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
Applies the matrix to X, returns the result in Y. More... | |
virtual int | ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
Applies the preconditioner to X, returns the result in Y. More... | |
virtual double | NormInf () const |
Returns the infinity norm of the global matrix (not implemented) More... | |
virtual const char * | Label () const |
Returns a character string describing the operator. More... | |
virtual bool | UseTranspose () const |
Returns the current UseTranspose setting. More... | |
virtual bool | HasNormInf () const |
Returns true if the this object can provide an approximate Inf-norm, false otherwise. More... | |
virtual const Epetra_Comm & | Comm () const |
Returns a pointer to the Epetra_Comm communicator associated with this operator. More... | |
virtual const Epetra_Map & | OperatorDomainMap () const |
Returns the Epetra_Map object associated with the domain of this operator. More... | |
virtual const Epetra_Map & | OperatorRangeMap () const |
Returns the Epetra_Map object associated with the range of this operator. More... | |
virtual int | Initialize () |
Initialized the preconditioner. More... | |
virtual int | Compute () |
Computes the preconditioner. More... | |
virtual double | Condest (const Ifpack_CondestType CT=Ifpack_Cheap, const int MaxIters=1550, const double Tol=1e-9, Epetra_RowMatrix *Matrix_in=0) |
Computes the estimated condition number and returns its value. More... | |
virtual double | Condest () const |
Returns the estimated condition number, or -1.0 if not computed. More... | |
virtual const Epetra_RowMatrix & | Matrix () const |
Returns a refernence to the internally stored matrix. More... | |
virtual bool | IsOverlapping () const |
Returns true is an overlapping matrix is present. More... | |
virtual std::ostream & | Print (std::ostream &) const |
Prints major information about this preconditioner. More... | |
virtual const T * | Inverse () const |
virtual int | NumInitialize () const |
Returns the number of calls to Initialize(). More... | |
virtual int | NumCompute () const |
Returns the number of calls to Compute(). More... | |
virtual int | NumApplyInverse () const |
Returns the number of calls to ApplyInverse(). More... | |
virtual double | InitializeTime () const |
Returns the time spent in Initialize(). More... | |
virtual double | ComputeTime () const |
Returns the time spent in Compute(). More... | |
virtual double | ApplyInverseTime () const |
Returns the time spent in ApplyInverse(). More... | |
virtual double | InitializeFlops () const |
Returns the number of flops in the initialization phase. More... | |
virtual double | ComputeFlops () const |
Returns the number of flops in the computation phase. More... | |
virtual double | ApplyInverseFlops () const |
Returns the number of flops in the application of the preconditioner. More... | |
virtual int | OverlapLevel () const |
Returns the level of overlap. More... | |
virtual const Teuchos::ParameterList & | List () const |
Returns a reference to the internally stored list. More... | |
Ifpack_AdditiveSchwarz (const Ifpack_AdditiveSchwarz &RHS) | |
Copy constructor (should never be used) More... | |
int | Setup () |
Sets up the localized matrix and the singleton filter. More... | |
Teuchos::RefCountPtr< const Epetra_RowMatrix > | Matrix_ |
Pointers to the matrix to be preconditioned. More... | |
Teuchos::RefCountPtr < Ifpack_OverlappingRowMatrix > | OverlappingMatrix_ |
Pointers to the overlapping matrix. More... | |
Teuchos::RefCountPtr < Ifpack_LocalFilter > | LocalizedMatrix_ |
Localized version of Matrix_ or OverlappingMatrix_. More... | |
std::string | Label_ |
Contains the label of this object. More... | |
bool | IsInitialized_ |
If true, the preconditioner has been successfully initialized. More... | |
bool | IsComputed_ |
If true, the preconditioner has been successfully computed. More... | |
bool | UseTranspose_ |
If true , solve with the transpose (not supported by all solvers). More... | |
bool | IsOverlapping_ |
If true, overlapping is used. More... | |
int | OverlapLevel_ |
Level of overlap among the processors. More... | |
Teuchos::ParameterList | List_ |
Stores a copy of the list given in SetParameters() More... | |
Epetra_CombineMode | CombineMode_ |
Combine mode for off-process elements (only if overlap is used) More... | |
double | Condest_ |
Contains the estimated condition number. More... | |
bool | ComputeCondest_ |
If true , compute the condition number estimate each time Compute() is called. More... | |
bool | UseReordering_ |
If true , reorder the local matrix. More... | |
std::string | ReorderingType_ |
Type of reordering of the local matrix. More... | |
Teuchos::RefCountPtr < Ifpack_Reordering > | Reordering_ |
Pointer to a reordering object. More... | |
Teuchos::RefCountPtr < Ifpack_ReorderFilter > | ReorderedLocalizedMatrix_ |
Pointer to the reorderd matrix. More... | |
bool | FilterSingletons_ |
Filter for singletons. More... | |
Teuchos::RefCountPtr < Ifpack_SingletonFilter > | SingletonFilter_ |
filtering object. More... | |
int | NumInitialize_ |
Contains the number of successful calls to Initialize(). More... | |
int | NumCompute_ |
Contains the number of successful call to Compute(). More... | |
int | NumApplyInverse_ |
Contains the number of successful call to ApplyInverse(). More... | |
double | InitializeTime_ |
Contains the time for all successful calls to Initialize(). More... | |
double | ComputeTime_ |
Contains the time for all successful calls to Compute(). More... | |
double | ApplyInverseTime_ |
Contains the time for all successful calls to ApplyInverse(). More... | |
double | InitializeFlops_ |
Contains the number of flops for Initialize(). More... | |
double | ComputeFlops_ |
Contains the number of flops for Compute(). More... | |
double | ApplyInverseFlops_ |
Contain sthe number of flops for ApplyInverse(). More... | |
Teuchos::RefCountPtr< Epetra_Time > | Time_ |
Object used for timing purposes. More... | |
Teuchos::RefCountPtr< T > | Inverse_ |
Pointer to the local solver. More... | |
Ifpack_AdditiveSchwarz: a class to define Additive Schwarz preconditioners of Epetra_RowMatrix's.
Class Ifpack_AdditiveSchwarz enables the construction of Additive Schwarz (one-level overlapping domain decomposition) preconditioners, for a given Epetra_RowMatrix. Ifpack_AdditiveSchwarz is derived from Ifpack_Preconditioner, itself derived from Epetra_Operator. An application of the Additive Schwarz preconditioner can be obtained by calling method ApplyInverse().
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:
where is the number of subdomains (that is, the number of processors in the computation), is an operator that restricts the global vector to the vector lying on subdomain , is the prolongator operator, and
The construction of Schwarz preconditioners is mainly composed by two steps:
The local matrix can be filtered, to eliminate singletons, and reordered. At the present time, RCM and METIS can be used to reorder the local matrix.
The complete list of supported parameters is reported in page ifp_params.
Definition at line 148 of file Ifpack_AdditiveSchwarz.h.
Ifpack_AdditiveSchwarz< T >::Ifpack_AdditiveSchwarz | ( | Epetra_RowMatrix * | Matrix_in, |
int | OverlapLevel_in = 0 |
||
) |
Ifpack_AdditiveSchwarz constructor with given Epetra_RowMatrix.
Creates an Ifpack_AdditiveSchwarz preconditioner with overlap. To use minimal-overlap, OverlappingMatrix is omitted (as defaulted to 0).
Matrix | - (In) Pointer to matrix to be preconditioned |
OverlappingMatrix | - (In) Pointer to the matrix extended with the desired level of overlap. |
Definition at line 515 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Destructor.
Definition at line 169 of file Ifpack_AdditiveSchwarz.h.
|
inlineprotected |
Copy constructor (should never be used)
Definition at line 388 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
If set true, transpose of this operator will be applied (not implemented).
This flag allows the transpose of the given operator to be used
implicitly.
UseTranspose_in | - (In) If true, multiply by the transpose of operator, otherwise just use operator. |
Implements Epetra_Operator.
Definition at line 937 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
Applies the matrix to X, returns the result in Y.
X | - (In) A Epetra_MultiVector of dimension NumVectors to multiply with matrix. |
Y | -(Out) A Epetra_MultiVector of dimension NumVectors containing the result. |
Implements Epetra_Operator.
Definition at line 952 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
Applies the preconditioner to X, returns the result in Y.
X | - (In) A Epetra_MultiVector of dimension NumVectors to be preconditioned. |
Y | -(Out) A Epetra_MultiVector of dimension NumVectors containing result. |
Implements Ifpack_Preconditioner.
Definition at line 1010 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
Returns the infinity norm of the global matrix (not implemented)
Implements Epetra_Operator.
Definition at line 960 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
Returns a character string describing the operator.
Implements Epetra_Operator.
Definition at line 967 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
Returns the current UseTranspose setting.
Implements Epetra_Operator.
Definition at line 974 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
Returns true if the this object can provide an approximate Inf-norm, false otherwise.
Implements Epetra_Operator.
Definition at line 981 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
Returns a pointer to the Epetra_Comm communicator associated with this operator.
Implements Epetra_Operator.
Definition at line 988 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
Returns the Epetra_Map object associated with the domain of this operator.
Implements Epetra_Operator.
Definition at line 995 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
Returns the Epetra_Map object associated with the range of this operator.
Implements Epetra_Operator.
Definition at line 1002 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns true
if the preconditioner has been successfully initialized.
Implements Ifpack_Preconditioner.
Definition at line 242 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns true
if the preconditioner has been successfully computed.
Implements Ifpack_Preconditioner.
Definition at line 248 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
Sets the parameters.
Sets the parameter for the additive Schwarz preconditioner, as well as for all the preconditioners that may need to be defined on each subblock. Parameters accepted by List are:
"schwarz: combine mode"
: It must be an Epetra_CombineMode. Default: Zero
. It Can be assume of the following values:"schwarz: compute condest"
: if true
, Compute()
will estimate the condition number of the preconditioner. Default: true
. Implements Ifpack_Preconditioner.
Definition at line 725 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
Initialized the preconditioner.
Implements Ifpack_Preconditioner.
Definition at line 803 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
Computes the preconditioner.
Implements Ifpack_Preconditioner.
Definition at line 895 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
Computes the estimated condition number and returns its value.
Implements Ifpack_Preconditioner.
Definition at line 1230 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns the estimated condition number, or -1.0 if not computed.
Implements Ifpack_Preconditioner.
Definition at line 292 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns a refernence to the internally stored matrix.
Implements Ifpack_Preconditioner.
Definition at line 298 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns true
is an overlapping matrix is present.
Definition at line 304 of file Ifpack_AdditiveSchwarz.h.
|
virtual |
Prints major information about this preconditioner.
Implements Ifpack_Preconditioner.
Definition at line 1149 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Definition at line 312 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns the number of calls to Initialize().
Implements Ifpack_Preconditioner.
Definition at line 318 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns the number of calls to Compute().
Implements Ifpack_Preconditioner.
Definition at line 324 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns the number of calls to ApplyInverse().
Implements Ifpack_Preconditioner.
Definition at line 330 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns the time spent in Initialize().
Implements Ifpack_Preconditioner.
Definition at line 336 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns the time spent in Compute().
Implements Ifpack_Preconditioner.
Definition at line 342 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns the time spent in ApplyInverse().
Implements Ifpack_Preconditioner.
Definition at line 348 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns the number of flops in the initialization phase.
Implements Ifpack_Preconditioner.
Definition at line 354 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns the number of flops in the computation phase.
Implements Ifpack_Preconditioner.
Definition at line 359 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns the number of flops in the application of the preconditioner.
Implements Ifpack_Preconditioner.
Definition at line 364 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns the level of overlap.
Definition at line 370 of file Ifpack_AdditiveSchwarz.h.
|
inlinevirtual |
Returns a reference to the internally stored list.
Definition at line 376 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Sets up the localized matrix and the singleton filter.
Definition at line 564 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Pointers to the matrix to be preconditioned.
Definition at line 399 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Pointers to the overlapping matrix.
Definition at line 401 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Localized version of Matrix_ or OverlappingMatrix_.
Definition at line 430 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Contains the label of this
object.
Definition at line 447 of file Ifpack_AdditiveSchwarz.h.
|
protected |
If true, the preconditioner has been successfully initialized.
Definition at line 449 of file Ifpack_AdditiveSchwarz.h.
|
protected |
If true, the preconditioner has been successfully computed.
Definition at line 451 of file Ifpack_AdditiveSchwarz.h.
|
protected |
If true
, solve with the transpose (not supported by all solvers).
Definition at line 453 of file Ifpack_AdditiveSchwarz.h.
|
protected |
If true, overlapping is used.
Definition at line 455 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Level of overlap among the processors.
Definition at line 457 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Stores a copy of the list given in SetParameters()
Definition at line 459 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Combine mode for off-process elements (only if overlap is used)
Definition at line 461 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Contains the estimated condition number.
Definition at line 463 of file Ifpack_AdditiveSchwarz.h.
|
protected |
If true
, compute the condition number estimate each time Compute() is called.
Definition at line 465 of file Ifpack_AdditiveSchwarz.h.
|
protected |
If true
, reorder the local matrix.
Definition at line 467 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Type of reordering of the local matrix.
Definition at line 469 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Pointer to a reordering object.
Definition at line 471 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Pointer to the reorderd matrix.
Definition at line 473 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Filter for singletons.
Definition at line 475 of file Ifpack_AdditiveSchwarz.h.
|
protected |
filtering object.
Definition at line 477 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Contains the number of successful calls to Initialize().
Definition at line 479 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Contains the number of successful call to Compute().
Definition at line 481 of file Ifpack_AdditiveSchwarz.h.
|
mutableprotected |
Contains the number of successful call to ApplyInverse().
Definition at line 483 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Contains the time for all successful calls to Initialize().
Definition at line 485 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Contains the time for all successful calls to Compute().
Definition at line 487 of file Ifpack_AdditiveSchwarz.h.
|
mutableprotected |
Contains the time for all successful calls to ApplyInverse().
Definition at line 489 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Contains the number of flops for Initialize().
Definition at line 491 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Contains the number of flops for Compute().
Definition at line 493 of file Ifpack_AdditiveSchwarz.h.
|
mutableprotected |
Contain sthe number of flops for ApplyInverse().
Definition at line 495 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Object used for timing purposes.
Definition at line 497 of file Ifpack_AdditiveSchwarz.h.
|
protected |
Pointer to the local solver.
Definition at line 499 of file Ifpack_AdditiveSchwarz.h.