Epetra Package Browser (Single Doxygen Collection)  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Protected Attributes | List of all members
Epetra_InvOperator Class Reference

Epetra_InvOperator: An implementation of the Epetra_Operator class that reverses the role of Apply() and ApplyInverse() methods. More...

#include <Epetra_InvOperator.h>

Inheritance diagram for Epetra_InvOperator:
Inheritance graph
[legend]

Protected Attributes

Epetra_Operatoroperator_
 
std::string Label_
 

Constructor

 Epetra_InvOperator (Epetra_Operator *operatorIn)
 Uses an Epetra_Operator instance to implement the Epetra_Operator interface. More...
 
virtual ~Epetra_InvOperator ()
 Destructor. More...
 

Attribute set methods

int SetUseTranspose (bool UseTranspose_in)
 If set true, transpose of this operator will be applied. More...
 

Mathematical functions

int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of a Epetra_InvOperator applied to a Epetra_MultiVector X in Y. More...
 
int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of a Epetra_InvOperator inverse applied to an Epetra_MultiVector X in Y. More...
 
double NormInf () const
 Returns the infinity norm of the global matrix. More...
 

Attribute access functions

const char * Label () const
 Returns a character std::string describing the operator. More...
 
Epetra_OperatorOperator () const
 Returns a pointer to the Epetra_Operator operator object that was used to create this Epetra_InvOperator object. More...
 
bool UseTranspose () const
 Returns the current UseTranspose setting. More...
 
bool HasNormInf () const
 Returns true if the this object can provide an approximate Inf-norm, false otherwise. More...
 
const Epetra_CommComm () const
 Returns a pointer to the Epetra_Comm communicator associated with this operator. More...
 
const Epetra_MapOperatorDomainMap () const
 Returns the Epetra_BlockMap object associated with the domain of this matrix operator. More...
 
const Epetra_MapOperatorRangeMap () const
 Returns the Epetra_BlockMap object associated with the range of this matrix operator. More...
 

Detailed Description

Epetra_InvOperator: An implementation of the Epetra_Operator class that reverses the role of Apply() and ApplyInverse() methods.

The Epetra_InvOperator class implements Epetra_Operator using another pre-constructed Epetra_Operator object. Once constructed, an Epetra_InvOperator can be used as the inverse of the input operator object as long as the appropriate Apply and ApplyInverse methods are implemented in the original Epetra_Operator object.

Definition at line 67 of file Epetra_InvOperator.h.

Constructor & Destructor Documentation

Epetra_InvOperator::Epetra_InvOperator ( Epetra_Operator operatorIn)
inline

Uses an Epetra_Operator instance to implement the Epetra_Operator interface.

Facilitates the use of an Epetra_Operator instance as an inverse operator.

Parameters
In- A fully-constructed Epetra_Operator object.

Definition at line 77 of file Epetra_InvOperator.h.

Epetra_InvOperator::~Epetra_InvOperator ( )
inlinevirtual

Destructor.

Definition at line 83 of file Epetra_InvOperator.h.

Member Function Documentation

int Epetra_InvOperator::SetUseTranspose ( bool  UseTranspose_in)
inlinevirtual

If set true, transpose of this operator will be applied.

  This flag allows the transpose of the given operator to be used implicitly.  Setting this flag
  affects only the Apply() and ApplyInverse() methods.  If the implementation of this interface

does not support transpose use, this method should return a value of -1.

Parameters
InUseTranspose_in - If true, multiply by the transpose of operator, otherwise just use operator.
Warning
- This method has no effect and returns -1 as error code.

Implements Epetra_Operator.

Definition at line 99 of file Epetra_InvOperator.h.

int Epetra_InvOperator::Apply ( const Epetra_MultiVector X,
Epetra_MultiVector Y 
) const
inlinevirtual

Returns the result of a Epetra_InvOperator applied to a Epetra_MultiVector X in Y.

Parameters
InX - A Epetra_MultiVector of dimension NumVectors to multiply with matrix.
OutY -A Epetra_MultiVector of dimension NumVectors containing result.
Warning
- This method has no effect and returns -1 as error code.

Implements Epetra_Operator.

Definition at line 114 of file Epetra_InvOperator.h.

int Epetra_InvOperator::ApplyInverse ( const Epetra_MultiVector X,
Epetra_MultiVector Y 
) const
inlinevirtual

Returns the result of a Epetra_InvOperator inverse applied to an Epetra_MultiVector X in Y.

Parameters
InX - A Epetra_MultiVector of dimension NumVectors to solve for.
OutY -A Epetra_MultiVector of dimension NumVectors containing result.
Returns
Integer error code, set to 0 if successful.

Implements Epetra_Operator.

Definition at line 125 of file Epetra_InvOperator.h.

double Epetra_InvOperator::NormInf ( ) const
inlinevirtual

Returns the infinity norm of the global matrix.

Implements Epetra_Operator.

Definition at line 133 of file Epetra_InvOperator.h.

const char* Epetra_InvOperator::Label ( ) const
inlinevirtual

Returns a character std::string describing the operator.

Implements Epetra_Operator.

Definition at line 139 of file Epetra_InvOperator.h.

Epetra_Operator* Epetra_InvOperator::Operator ( ) const
inline

Returns a pointer to the Epetra_Operator operator object that was used to create this Epetra_InvOperator object.

Definition at line 142 of file Epetra_InvOperator.h.

bool Epetra_InvOperator::UseTranspose ( ) const
inlinevirtual

Returns the current UseTranspose setting.

Implements Epetra_Operator.

Definition at line 146 of file Epetra_InvOperator.h.

bool Epetra_InvOperator::HasNormInf ( ) const
inlinevirtual

Returns true if the this object can provide an approximate Inf-norm, false otherwise.

Implements Epetra_Operator.

Definition at line 149 of file Epetra_InvOperator.h.

const Epetra_Comm& Epetra_InvOperator::Comm ( ) const
inlinevirtual

Returns a pointer to the Epetra_Comm communicator associated with this operator.

Implements Epetra_Operator.

Definition at line 152 of file Epetra_InvOperator.h.

const Epetra_Map& Epetra_InvOperator::OperatorDomainMap ( ) const
inlinevirtual

Returns the Epetra_BlockMap object associated with the domain of this matrix operator.

Implements Epetra_Operator.

Definition at line 155 of file Epetra_InvOperator.h.

const Epetra_Map& Epetra_InvOperator::OperatorRangeMap ( ) const
inlinevirtual

Returns the Epetra_BlockMap object associated with the range of this matrix operator.

Implements Epetra_Operator.

Definition at line 162 of file Epetra_InvOperator.h.

Member Data Documentation

Epetra_Operator* Epetra_InvOperator::operator_
protected

Definition at line 171 of file Epetra_InvOperator.h.

std::string Epetra_InvOperator::Label_
protected

Definition at line 172 of file Epetra_InvOperator.h.


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