ML Version of the Day
Loading...
Searching...
No Matches
Public Member Functions | 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.
 
virtual int SetUseTranspose (bool UseTranspose)=0
 
virtual int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const=0
 
virtual int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const=0
 
virtual double NormInf () const=0
 
virtual const char * Label () const=0
 
virtual bool UseTranspose () const=0
 
virtual bool HasNormInf () const=0
 
virtual const Epetra_CommComm () const=0
 
virtual const Epetra_MapOperatorDomainMap () const=0
 
virtual const Epetra_MapOperatorRangeMap () const=0
 
virtual int SetUseTranspose (bool UseTranspose)=0
 
virtual int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const=0
 
virtual int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const=0
 
virtual double NormInf () const=0
 
virtual const char * Label () const=0
 
virtual bool UseTranspose () const=0
 
virtual bool HasNormInf () const=0
 
virtual const Epetra_CommComm () const=0
 
virtual const Epetra_MapOperatorDomainMap () const=0
 
virtual const Epetra_MapOperatorRangeMap () const=0
 

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

Member Function Documentation

◆ Apply()

int ML_Epetra::MatrixFreePreconditioner::Apply ( const Epetra_MultiVector X,
Epetra_MultiVector Y 
) const
virtual

Applies the operator to a std::vector (NOT SUPPORTED).

Implements Epetra_Operator.

◆ ApplyInverse()

int ML_Epetra::MatrixFreePreconditioner::ApplyInverse ( const Epetra_MultiVector X,
Epetra_MultiVector Y 
) const
virtual

Applies the preconditioner to std::vector X, returns the result in Y.

Implements Epetra_Operator.

◆ Comm()

const Epetra_Comm & ML_Epetra::MatrixFreePreconditioner::Comm ( ) const
inlinevirtual

Returns a reference to the communicator object.

Implements Epetra_Operator.

Referenced by MyPID(), and NumProc().

◆ HasNormInf()

bool ML_Epetra::MatrixFreePreconditioner::HasNormInf ( ) const
inlinevirtual

Returns false.

Implements Epetra_Operator.

◆ Label()

const char * ML_Epetra::MatrixFreePreconditioner::Label ( ) const
inlinevirtual

Returns the label of this operator.

Implements Epetra_Operator.

◆ NormInf()

double ML_Epetra::MatrixFreePreconditioner::NormInf ( ) const
inlinevirtual

Returns the infinite norm of the operator (NOT SUPPORTED).

Implements Epetra_Operator.

◆ OperatorDomainMap()

const Epetra_Map & ML_Epetra::MatrixFreePreconditioner::OperatorDomainMap ( ) const
inlinevirtual

Returns the domain map of the operator.

Implements Epetra_Operator.

References Epetra_Operator::OperatorDomainMap().

◆ OperatorRangeMap()

const Epetra_Map & ML_Epetra::MatrixFreePreconditioner::OperatorRangeMap ( ) const
inlinevirtual

Returns the range map of the operator.

Implements Epetra_Operator.

References Epetra_Operator::OperatorRangeMap().

◆ SetUseTranspose()

int ML_Epetra::MatrixFreePreconditioner::SetUseTranspose ( bool  UseTranspose)
virtual

Sets the use of the transpose of the operator (NOT SUPPORTED).

Implements Epetra_Operator.

◆ UseTranspose()

bool ML_Epetra::MatrixFreePreconditioner::UseTranspose ( ) const
inlinevirtual

Returns true if the tranpose of the operator is considerd (NOT SUPPORTED).

Implements Epetra_Operator.


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