Komplex_Operator Class Reference

Komplex_Operator: A class for using complex-valued double-precision operators stored in equivalent real formation. More...

#include <Komplex_Operator.h>

Inheritance diagram for Komplex_Operator:

[legend]
Collaboration diagram for Komplex_Operator:
[legend]
List of all members.

Public Member Functions

Constructors/Destructor.
 Komplex_Operator (Epetra_DataAccess CV, Epetra_Operator *Operator, Komplex_KForms KForm=K1)
 Komplex_Operator constructor from one object.
 Komplex_Operator (Epetra_DataAccess CV, Epetra_Operator *Real, Epetra_Operator *Imag, Komplex_KForms KForm=K1)
 Komplex_Operator constructor from two objects.
 ~Komplex_Operator ()
 Destructor.
Atribute set methods.
int SetUseTranspose (bool UseTranspose)
 If set true, the transpose of this operator will be applied.
Mathematical functions.
int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y.
int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of a Epetra_Operator inverse applied to an Epetra_MultiVector X in Y.
double NormInf () const
 Returns the infinity norm of the global matrix.
Attribute access functions
const char * Label () const
 Returns a character string describing the operator.
bool UseTranspose () const
 Returns the current UseTranspose setting.
bool HasNormInf () const
 Returns true if the this object can provide an approximate Inf-norm, false otherwise.
const Epetra_CommComm () const
 Returns a pointer to the Epetra_Comm communicator associated with this operator.
const Epetra_MapOperatorDomainMap () const
 Returns the Epetra_Map object associated with the domain of this operator.
const Epetra_MapOperatorRangeMap () const
 Returns the Epetra_Map object associated with the range of this operator.

Detailed Description

Komplex_Operator: A class for using complex-valued double-precision operators stored in equivalent real formation.

This class implements the pure virtual Epetra_Operator class.

The Komplex_Operator class enables the construction and use of equivalent real formulations of complex-valued, double-precision operators in a distributed memory environment.

Constructing Komplex_Operators

Komplex_Operator constructors have two data access modes:

  1. Copy mode - Allocates memory and makes a copy of the user-provided data. In this case, the user data is not needed after construction.
  2. View mode - Creates a "view" of the user data. In this case, the user data is required to remain intact for the life of the operator.

Warning:
View mode is extremely dangerous from a data hiding perspective. Therefore, we strongly encourage users to develop code using Copy mode first and only use the View mode in a secondary optimization phase.
There are two different Komplex_Operator constructors:


Constructor & Destructor Documentation

Komplex_Operator::Komplex_Operator Epetra_DataAccess  CV,
Epetra_Operator Operator,
Komplex_KForms  KForm = K1
 

Komplex_Operator constructor from one object.

Creates a Komplex_Operator object from one Epetra_Operator with interleaved real and imaginary values.

Parameters:
DataAccess (In) Copy or view.
Operator (In) Epetra_Operator containing the real and imaginary values interleaved.
KForm (In) The Komplex_KForms to use for this operator; by default, it is set to K1.
Returns:
Pointer to a Komplex_Operator.

Komplex_Operator::Komplex_Operator Epetra_DataAccess  CV,
Epetra_Operator Real,
Epetra_Operator Imag,
Komplex_KForms  KForm = K1
 

Komplex_Operator constructor from two objects.

Creates a Komplex_Operator object from two Epetra_Operator objects, one representing the real values and the other representing the imaginary values.

Parameters:
DataAccess (In) Copy or view.
Real (In) Epetra_Operator containing the real values.
Imag (In) Epetra_Operator containing the imaginary values.
KForm (In) The Komplex_KForms to use for this operator; by default, it is set to K1.
Returns:
Pointer to a Komplex_Operator.


Member Function Documentation

int Komplex_Operator::Apply const Epetra_MultiVector X,
Epetra_MultiVector Y
const [virtual]
 

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

Parameters:
X (In) A Epetra_MultiVector of dimension NumVectors to multiply with the operator.
Y (Out) A Epetra_MultiVector of dimension NumVectors containing the result.
Returns:
Integer error code, set to 0 if successful.

Implements Epetra_Operator.

int Komplex_Operator::ApplyInverse const Epetra_MultiVector X,
Epetra_MultiVector Y
const [virtual]
 

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

Parameters:
X (In) A Epetra_MultiVector of dimension NumVectors to multiply with the inverse of the operator.
Y (Out) A Epetra_MultiVector of dimension NumVectors containing the result.
Returns:
Integer error code, set to 0 if successful.
Warning:
In order to work with AztecOO, any implementation of this method must support the case where X and Y are the same object.

Implements Epetra_Operator.

int Komplex_Operator::SetUseTranspose bool  UseTranspose  )  [virtual]
 

If set true, the 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:
UseTranspose (In) If true, multiply by the transpose of the operator, otherwise just use the operator.
Returns:
Integer error code, set to 0 if successful. Set to -1 if this implementation does not support transpose.

Implements Epetra_Operator.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:40:24 2008 for Komplex by doxygen 1.3.9.1