ML  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
List of all members
ML_Epetra::MatrixFreePreconditioner Class Reference

MatrixFreePreconditioner: a class to define preconditioners for Epetra_Operator's. More...

#include <ml_MatrixFreePreconditioner.h>

Inheritance diagram for ML_Epetra::MatrixFreePreconditioner:
Inheritance graph
[legend]
Collaboration diagram for ML_Epetra::MatrixFreePreconditioner:
Collaboration graph
[legend]

Public Member Functions

 MatrixFreePreconditioner (const Epetra_Operator &Operator, const Epetra_CrsGraph &Graph, Epetra_MultiVector &NullSpace, const Epetra_Vector &PointDiagonal, Teuchos::ParameterList &List)
 Constructor.
 
virtual ~MatrixFreePreconditioner ()
 destructor
 
int SetUseTranspose (bool UseTranspose)
 Sets the use of the transpose of the operator (NOT SUPPORTED).
 
int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Applies the operator to a std::vector (NOT SUPPORTED).
 
int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Applies the preconditioner to std::vector X, returns the result in Y.
 
double NormInf () const
 Returns the infinite norm of the operator (NOT SUPPORTED).
 
const char * Label () const
 Returns the label of this operator.
 
bool UseTranspose () const
 Returns true if the tranpose of the operator is considerd (NOT SUPPORTED).
 
bool HasNormInf () const
 Returns false.
 
const Epetra_CommComm () const
 Returns a reference to the communicator object.
 
const Epetra_MapOperatorDomainMap () const
 Returns the domain map of the operator.
 
const Epetra_MapOperatorRangeMap () const
 Returns the range map of the operator.
 
const Epetra_RowMatrixC () const
 Returns the coarser-level operator as an Epetra_RowMatrix.
 
const MultiLevelPreconditionerMLP () const
 
const Epetra_CrsMatrixR () const
 Returns the restriction operator as an Epetra_CrsMatrix.
 
ML_Comm * Comm_ML ()
 Returns the ML communicator of this object.
 
int MyPID () const
 Returns the PID of the calling processor.
 
int NumProc () const
 Returns the number of processors in the communicator.
 
bool IsComputed () const
 Returns true if the preconditioner has been successfully computed.
 
double TotalCPUTime () const
 Returns the total CPU time spent in this class.
 
bool CheckSPD (const Epetra_Operator &Op, const bool UseApply=true, const int NumChecks=1, const int NumVectors=1) const
 
int Coarsen (ML_Operator *A, ML_Aggregate **aggr, ML_Operator **P, ML_Operator **R, ML_Operator **C, int NumPDEEqns=1, int NullSpaceDim=1, double *NullSpace=NULL)
 Performs coarsening for a given operator A.
 
int GetBlockDiagonal (const Epetra_CrsGraph &Graph, std::string DiagonalColoringType)
 Probes for the block diagonal of the given operator.
 

Detailed Description

MatrixFreePreconditioner: a class to define preconditioners for Epetra_Operator's.

This file requires ML to be configured with the following options:

The following options are suggested:

This class does not support Maxwell problems. It has been tested on symmetric problems; however it can in principle be used with non-symmetric problems as well.

Author
Marzio Sala, ETHZ/D-INFK

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