Komplex  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
List of all members
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:
Inheritance graph
[legend]
Collaboration diagram for Komplex_Operator:
Collaboration graph
[legend]

Public Member Functions

 Komplex_Operator (Epetra_DataAccess CV, Epetra_Operator *Operator, Komplex_KForms KForm=K1)
 Komplex_Operator constructor from one object. More...
 
 Komplex_Operator (Epetra_DataAccess CV, Epetra_Operator *Real, Epetra_Operator *Imag, Komplex_KForms KForm=K1)
 Komplex_Operator constructor from two objects. More...
 
 ~Komplex_Operator ()
 Destructor.
 
int SetUseTranspose (bool UseTranspose)
 If set true, the transpose of this operator will be applied. More...
 
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. More...
 
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. More...
 
double NormInf () const
 Returns the infinity norm of the global matrix.
 
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: