

Public Member Functions | |
| def | SetUseTranspose |
| def | Apply |
| def | ApplyInverse |
| def | NormInf |
| def | Label |
| def | UseTranspose |
| def | HasNormInf |
| def | Comm |
| def | OperatorDomainMap |
| def | OperatorRangeMap |
| def | __init__ |
| def | __disown__ |
Public Attributes | |
| this | |
For cross-language polymorphism to work in python, you must call this
constructor::
from PyTrilinos import Epetra
class MyOperator(Epetra.Operator):
def __init__(self):
Epetra.Operator.__init__(self)
Other than that, the Epetra.Operator class is much more forgiving than
its C++ counterpart. Often, you can override just the Label() and
Apply() methods.
| def PyTrilinos.Epetra.Operator.__init__ | ( | self, | |
| args | |||
| ) |
__init__(Epetra_Operator self) -> Operator
Reimplemented in PyTrilinos.Epetra.JadMatrix, PyTrilinos.Epetra.FEVbrMatrix, PyTrilinos.Epetra.VbrMatrix, PyTrilinos.Epetra.FECrsMatrix, PyTrilinos.Epetra.CrsMatrix, PyTrilinos.Epetra.BasicRowMatrix, PyTrilinos.Epetra.RowMatrix, PyTrilinos.Epetra.InvOperator, PyTrilinos.IFPACK.Amesos, PyTrilinos.IFPACK.PointRelaxation, PyTrilinos.ML.EpetraBaseOperator, PyTrilinos.IFPACK.ILUT, PyTrilinos.IFPACK.ILU, PyTrilinos.Anasazi.EpetraSymOp, PyTrilinos.ML.MultiLevelPreconditioner, PyTrilinos.Anasazi.EpetraGenOp, PyTrilinos.IFPACK.ICT, and PyTrilinos.IFPACK.IC.
| def PyTrilinos.Epetra.Operator.Apply | ( | self, | |
| args | |||
| ) |
Apply(self, MultiVector x, MultiVector y) -> int
In C++, the Apply() method is pure virtual, thus intended to be
overridden by derived classes. In python, cross-language polymorphism
is supported, and you are expected to derive classes from this base
class and redefine the Apply() method. C++ code (e.g., AztecOO
solvers) can call back to your Apply() method as needed. You must
support two arguments, labeled here MultiVector x and MultiVector y.
These will be converted from Epetra_MultiVector C++ objects to
numpy-hybrid Epetra.MultiVector objects before they are passed to you.
Thus, it is legal to use slice indexing and other numpy features to
compute y from x.
If application of your operator is successful, return 0; else return
some non-zero error code.
It is strongly suggested that you prevent Apply() from raising any
exceptions. Accidental errors can be prevented by wrapping your code
in a try block:
try:
# Your code goes here...
except Exception, e:
print 'A python exception was raised by method Apply:'
print e
return -1
By returning a -1, you inform the calling routine that Apply() was
unsuccessful.
virtual int
Epetra_Operator::Apply(const Epetra_MultiVector &X, Epetra_MultiVector
&Y) const =0
Returns the result of a Epetra_Operator applied to a
Epetra_MultiVector X in Y.
Parameters:
-----------
In: X - A Epetra_MultiVector of dimension NumVectors to multiply with
matrix.
Out: Y -A Epetra_MultiVector of dimension NumVectors containing
result.
Integer error code, set to 0 if successful.
Reimplemented in PyTrilinos.Epetra.VbrMatrix, PyTrilinos.Epetra.CrsMatrix, PyTrilinos.Epetra.BasicRowMatrix, PyTrilinos.Epetra.InvOperator, PyTrilinos.IFPACK.Amesos, PyTrilinos.IFPACK.PointRelaxation, PyTrilinos.IFPACK.ILUT, PyTrilinos.ML.EpetraBaseOperator, PyTrilinos.IFPACK.ILU, PyTrilinos.Anasazi.EpetraSymOp, PyTrilinos.ML.MultiLevelPreconditioner, PyTrilinos.Anasazi.EpetraGenOp, PyTrilinos.IFPACK.ICT, and PyTrilinos.IFPACK.IC.
| def PyTrilinos.Epetra.Operator.ApplyInverse | ( | self, | |
| args | |||
| ) |
ApplyInverse(self, MultiVector x, MultiVector y) -> int
In C++, the ApplyInverse() method is pure virtual, thus intended to be
overridden by derived classes. In python, cross-language polymorphism
is supported, and you are expected to derive classes from this base
class and redefine the ApplyInverse() method. C++ code (e.g., AztecOO
solvers) can call back to your ApplyInverse() method as needed. You
must support two arguments, labeled here MultiVector x and MultiVector
y. These will be converted from Epetra_MultiVector C++ objects to
numpy-hybrid Epetra.MultiVector objects before they are passed to you.
Thus, it is legal to use slice indexing and other numpy features to
compute y from x.
If application of your operator is successful, return 0; else return
some non-zero error code.
It is strongly suggested that you prevent ApplyInverse() from raising
any exceptions. Accidental errors can be prevented by wrapping your
code in a try block:
try:
# Your code goes here...
except Exception, e:
print 'A python exception was raised by method ApplyInverse:'
print e
return -1
By returning a -1, you inform the calling routine that ApplyInverse()
was unsuccessful.
virtual int
Epetra_Operator::ApplyInverse(const Epetra_MultiVector &X,
Epetra_MultiVector &Y) const =0
Returns the result of a Epetra_Operator inverse applied to an
Epetra_MultiVector X in Y.
Parameters:
-----------
In: X - A Epetra_MultiVector of dimension NumVectors to solve for.
Out: Y -A Epetra_MultiVector of dimension NumVectors containing
result.
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.
Reimplemented in PyTrilinos.Epetra.VbrMatrix, PyTrilinos.Epetra.CrsMatrix, PyTrilinos.Epetra.BasicRowMatrix, PyTrilinos.Epetra.InvOperator, PyTrilinos.IFPACK.Amesos, PyTrilinos.IFPACK.PointRelaxation, PyTrilinos.IFPACK.ILUT, PyTrilinos.ML.EpetraBaseOperator, PyTrilinos.IFPACK.ILU, PyTrilinos.Anasazi.EpetraSymOp, PyTrilinos.ML.MultiLevelPreconditioner, PyTrilinos.Anasazi.EpetraGenOp, PyTrilinos.IFPACK.ICT, PyTrilinos.IFPACK.IC, and PyTrilinos.IFPACK.Preconditioner.
| def PyTrilinos.Epetra.Operator.Comm | ( | self, | |
| args | |||
| ) |
Comm(Operator self) -> Comm virtual const Epetra_Comm& Epetra_Operator::Comm() const =0 Returns a pointer to the Epetra_Comm communicator associated with this operator.
Reimplemented in PyTrilinos.Epetra.VbrMatrix, PyTrilinos.Epetra.CrsMatrix, PyTrilinos.Epetra.BasicRowMatrix, PyTrilinos.Epetra.InvOperator, PyTrilinos.IFPACK.Amesos, PyTrilinos.IFPACK.PointRelaxation, PyTrilinos.IFPACK.ILUT, PyTrilinos.ML.EpetraBaseOperator, PyTrilinos.IFPACK.ILU, PyTrilinos.Anasazi.EpetraSymOp, PyTrilinos.ML.MultiLevelPreconditioner, PyTrilinos.Anasazi.EpetraGenOp, PyTrilinos.IFPACK.ICT, and PyTrilinos.IFPACK.IC.
| def PyTrilinos.Epetra.Operator.HasNormInf | ( | self, | |
| args | |||
| ) |
HasNormInf(Operator self) -> bool virtual bool Epetra_Operator::HasNormInf() const =0 Returns true if the this object can provide an approximate Inf-norm, false otherwise.
Reimplemented in PyTrilinos.Epetra.VbrMatrix, PyTrilinos.Epetra.CrsMatrix, PyTrilinos.Epetra.BasicRowMatrix, PyTrilinos.Epetra.InvOperator, PyTrilinos.IFPACK.Amesos, PyTrilinos.IFPACK.PointRelaxation, PyTrilinos.IFPACK.ILUT, PyTrilinos.ML.EpetraBaseOperator, PyTrilinos.IFPACK.ILU, PyTrilinos.Anasazi.EpetraSymOp, PyTrilinos.ML.MultiLevelPreconditioner, PyTrilinos.Anasazi.EpetraGenOp, PyTrilinos.IFPACK.ICT, and PyTrilinos.IFPACK.IC.
| def PyTrilinos.Epetra.Operator.Label | ( | self, | |
| args | |||
| ) |
Label(Operator self) -> char const * virtual const char* Epetra_Operator::Label() const =0 Returns a character string describing the operator.
Reimplemented in PyTrilinos.Epetra.VbrMatrix, PyTrilinos.Epetra.CrsMatrix, PyTrilinos.Epetra.BasicRowMatrix, PyTrilinos.Epetra.InvOperator, PyTrilinos.IFPACK.Amesos, PyTrilinos.IFPACK.PointRelaxation, PyTrilinos.IFPACK.ILUT, PyTrilinos.ML.EpetraBaseOperator, PyTrilinos.IFPACK.ILU, PyTrilinos.Anasazi.EpetraSymOp, PyTrilinos.Anasazi.EpetraGenOp, PyTrilinos.ML.MultiLevelPreconditioner, PyTrilinos.IFPACK.ICT, and PyTrilinos.IFPACK.IC.
| def PyTrilinos.Epetra.Operator.NormInf | ( | self, | |
| args | |||
| ) |
NormInf(Operator self) -> double virtual double Epetra_Operator::NormInf() const =0 Returns the infinity norm of the global matrix.
Reimplemented in PyTrilinos.Epetra.VbrMatrix, PyTrilinos.Epetra.CrsMatrix, PyTrilinos.Epetra.BasicRowMatrix, PyTrilinos.Epetra.RowMatrix, PyTrilinos.Epetra.InvOperator, PyTrilinos.IFPACK.Amesos, PyTrilinos.IFPACK.PointRelaxation, PyTrilinos.IFPACK.ILUT, PyTrilinos.ML.EpetraBaseOperator, PyTrilinos.IFPACK.ILU, PyTrilinos.Anasazi.EpetraSymOp, PyTrilinos.ML.MultiLevelPreconditioner, PyTrilinos.Anasazi.EpetraGenOp, PyTrilinos.IFPACK.ICT, and PyTrilinos.IFPACK.IC.
| def PyTrilinos.Epetra.Operator.OperatorDomainMap | ( | self, | |
| args | |||
| ) |
OperatorDomainMap(Operator self) -> Map virtual const Epetra_Map& Epetra_Operator::OperatorDomainMap() const =0 Returns the Epetra_Map object associated with the domain of this operator.
Reimplemented in PyTrilinos.Epetra.VbrMatrix, PyTrilinos.Epetra.CrsMatrix, PyTrilinos.Epetra.BasicRowMatrix, PyTrilinos.Epetra.InvOperator, PyTrilinos.IFPACK.Amesos, PyTrilinos.IFPACK.PointRelaxation, PyTrilinos.IFPACK.ILUT, PyTrilinos.ML.EpetraBaseOperator, PyTrilinos.IFPACK.ILU, PyTrilinos.Anasazi.EpetraSymOp, PyTrilinos.ML.MultiLevelPreconditioner, PyTrilinos.Anasazi.EpetraGenOp, PyTrilinos.IFPACK.ICT, and PyTrilinos.IFPACK.IC.
| def PyTrilinos.Epetra.Operator.OperatorRangeMap | ( | self, | |
| args | |||
| ) |
OperatorRangeMap(Operator self) -> Map virtual const Epetra_Map& Epetra_Operator::OperatorRangeMap() const =0 Returns the Epetra_Map object associated with the range of this operator.
Reimplemented in PyTrilinos.Epetra.VbrMatrix, PyTrilinos.Epetra.CrsMatrix, PyTrilinos.Epetra.BasicRowMatrix, PyTrilinos.Epetra.InvOperator, PyTrilinos.IFPACK.Amesos, PyTrilinos.IFPACK.PointRelaxation, PyTrilinos.IFPACK.ILUT, PyTrilinos.ML.EpetraBaseOperator, PyTrilinos.IFPACK.ILU, PyTrilinos.Anasazi.EpetraSymOp, PyTrilinos.ML.MultiLevelPreconditioner, PyTrilinos.Anasazi.EpetraGenOp, PyTrilinos.IFPACK.ICT, and PyTrilinos.IFPACK.IC.
| def PyTrilinos.Epetra.Operator.SetUseTranspose | ( | self, | |
| args | |||
| ) |
SetUseTranspose(Operator self, bool UseTranspose) -> int virtual int Epetra_Operator::SetUseTranspose(bool UseTranspose)=0 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: ----------- In: UseTranspose -If true, multiply by the transpose of operator, otherwise just use operator. Integer error code, set to 0 if successful. Set to -1 if this implementation does not support transpose.
Reimplemented in PyTrilinos.Epetra.VbrMatrix, PyTrilinos.Epetra.CrsMatrix, PyTrilinos.Epetra.BasicRowMatrix, PyTrilinos.Epetra.InvOperator, PyTrilinos.IFPACK.Amesos, PyTrilinos.IFPACK.PointRelaxation, PyTrilinos.IFPACK.ILUT, PyTrilinos.ML.EpetraBaseOperator, PyTrilinos.Anasazi.EpetraSymOp, PyTrilinos.IFPACK.ILU, PyTrilinos.ML.MultiLevelPreconditioner, PyTrilinos.Anasazi.EpetraGenOp, PyTrilinos.IFPACK.ICT, and PyTrilinos.IFPACK.IC.
| def PyTrilinos.Epetra.Operator.UseTranspose | ( | self, | |
| args | |||
| ) |
UseTranspose(Operator self) -> bool virtual bool Epetra_Operator::UseTranspose() const =0 Returns the current UseTranspose setting.
Reimplemented in PyTrilinos.Epetra.VbrMatrix, PyTrilinos.Epetra.CrsMatrix, PyTrilinos.Epetra.BasicRowMatrix, PyTrilinos.Epetra.InvOperator, PyTrilinos.IFPACK.Amesos, PyTrilinos.IFPACK.PointRelaxation, PyTrilinos.IFPACK.ILUT, PyTrilinos.ML.EpetraBaseOperator, PyTrilinos.IFPACK.ILU, PyTrilinos.Anasazi.EpetraSymOp, PyTrilinos.ML.MultiLevelPreconditioner, PyTrilinos.Anasazi.EpetraGenOp, PyTrilinos.IFPACK.ICT, and PyTrilinos.IFPACK.IC.
1.7.6.1