LinearOpBase adapter subclass for Epetra_Operator object.
More...
#include <Thyra_EpetraLinearOp.hpp>
Inheritance diagram for Thyra::EpetraLinearOp:
Public types | |
| typedef double | Scalar |
| | |
Constructors / initializers / accessors | |
| EpetraLinearOp () | |
| Construct to uninitialized. | |
| EpetraLinearOp (const Teuchos::RefCountPtr< Epetra_Operator > &op, ETransp opTrans=NOTRANS, EApplyEpetraOpAs applyAs=EPETRA_OP_APPLY_APPLY, EAdjointEpetraOp adjointSupport=EPETRA_OP_ADJOINT_SUPPORTED, const Teuchos::RefCountPtr< const SpmdVectorSpaceBase< Scalar > > &spmdRange=Teuchos::null, const Teuchos::RefCountPtr< const SpmdVectorSpaceBase< Scalar > > &spmdDomain=Teuchos::null) | |
Calls initialize(). | |
| void | initialize (const Teuchos::RefCountPtr< Epetra_Operator > &op, ETransp opTrans=NOTRANS, EApplyEpetraOpAs applyAs=EPETRA_OP_APPLY_APPLY, EAdjointEpetraOp adjointSupport=EPETRA_OP_ADJOINT_SUPPORTED, const Teuchos::RefCountPtr< const SpmdVectorSpaceBase< Scalar > > &spmdRange=Teuchos::null, const Teuchos::RefCountPtr< const SpmdVectorSpaceBase< Scalar > > &spmdDomain=Teuchos::null) |
| Initialize. | |
| void | uninitialize (Teuchos::RefCountPtr< Epetra_Operator > *op=NULL, ETransp *opTrans=NULL, EApplyEpetraOpAs *applyAs=NULL, EAdjointEpetraOp *adjointSupport=NULL, Teuchos::RefCountPtr< const SpmdVectorSpaceBase< Scalar > > *spmdRange=NULL, Teuchos::RefCountPtr< const SpmdVectorSpaceBase< Scalar > > *spmdDomain=NULL) |
| Set to uninitialized and optionally return the current state. | |
| Teuchos::RefCountPtr< const SpmdVectorSpaceBase< Scalar > > | spmdRange () const |
| Return a smart pointer to the SpmdVectorSpaceBase object for the range. | |
| Teuchos::RefCountPtr< const SpmdVectorSpaceBase< Scalar > > | spmdDomain () const |
| Return a smart pointer to the SpmdVectorSpaceBase object for the domain. | |
| Teuchos::RefCountPtr< Epetra_Operator > | epetra_op () |
| | |
| Teuchos::RefCountPtr< const Epetra_Operator > | epetra_op () const |
| | |
Overridden from EpetraLinearOpBase | |
| void | getEpetraOpView (Teuchos::RefCountPtr< Epetra_Operator > *epetraOp, ETransp *epetraOpTransp, EApplyEpetraOpAs *epetraOpApplyAs, EAdjointEpetraOp *epetraOpAdjointSupport) |
| | |
| void | getEpetraOpView (Teuchos::RefCountPtr< const Epetra_Operator > *epetraOp, ETransp *epetraOpTransp, EApplyEpetraOpAs *epetraOpApplyAs, EAdjointEpetraOp *epetraOpAdjointSupport) const |
| | |
Overridden from SingleScalarLinearOpBase | |
| bool | opSupported (ETransp M_trans) const |
| | |
Overridden from EuclideanLinearOpBase | |
| Teuchos::RefCountPtr< const ScalarProdVectorSpaceBase< Scalar > > | rangeScalarProdVecSpc () const |
Returns this->spmdRange(). | |
| Teuchos::RefCountPtr< const ScalarProdVectorSpaceBase< Scalar > > | domainScalarProdVecSpc () const |
Returns this->spmdDomain(). | |
| void | euclideanApply (const ETransp M_trans, const MultiVectorBase< Scalar > &X, MultiVectorBase< Scalar > *Y, const Scalar alpha, const Scalar beta) const |
| | |
Overridden from LinearOpBase | |
| Teuchos::RefCountPtr< const LinearOpBase< Scalar > > | clone () const |
| | |
Overridden from Teuchos::Describable | |
| std::string | description () const |
| | |
| void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const |
| | |
Allocators for domain and range spaces | |
| virtual Teuchos::RefCountPtr< const SpmdVectorSpaceBase< Scalar > > | allocateDomain (const Teuchos::RefCountPtr< Epetra_Operator > &op, ETransp op_trans) const |
| Allocate the domain space of the operator. | |
| virtual Teuchos::RefCountPtr< const SpmdVectorSpaceBase< Scalar > > | allocateRange (const Teuchos::RefCountPtr< Epetra_Operator > &op, ETransp op_trans) const |
| Allocate the range space of the operator. | |
LinearOpBase adapter subclass for Epetra_Operator object.
This subclass can be used to represent the non-transposed operator or transposed operator defined by an Epetra_Operator object. This class can implement apply() using either Epetra_Operator::Apply() or Epetra_Operator::ApplyInverse(). In addition, the user can specify whether adjoints are supported or not.
Partial Automatic Change Propagation: This class shall maintain no state with respect to the values of the internally stored Epetra_Operator object. Therefore, as long as the domain and range maps do not change, the the Epetra_Operator can be changed and this will automatically update *this object. This simplifies some types of update operations. Since this is a simple concrete class, this is harmless. However, if the range and domain maps change, then one must call the this->initialize() function.
sillyCgSolve_epetra.cpp, sillyPowerMethod_epetra.cpp, and test_epetra_adapters.cpp.
Definition at line 58 of file Thyra_EpetraLinearOp.hpp.
|
|
Definition at line 68 of file Thyra_EpetraLinearOp.hpp. |
|
|
Construct to uninitialized.
See the postconditions for Definition at line 43 of file Thyra_EpetraLinearOp.cpp. |
|
||||||||||||||||||||||||||||
|
Calls
Definition at line 46 of file Thyra_EpetraLinearOp.cpp. |
|
||||||||||||||||||||||||||||
|
Initialize.
Postconditions:
Definition at line 58 of file Thyra_EpetraLinearOp.cpp. |
|
||||||||||||||||||||||||||||
|
Set to uninitialized and optionally return the current state. Postconditions: Definition at line 94 of file Thyra_EpetraLinearOp.cpp. |
|
|
Return a smart pointer to the SpmdVectorSpaceBase object for the range. Postconditions:
Definition at line 123 of file Thyra_EpetraLinearOp.cpp. |
|
|
Return a smart pointer to the SpmdVectorSpaceBase object for the domain. Postconditions:
Definition at line 129 of file Thyra_EpetraLinearOp.cpp. |
|
|
Definition at line 135 of file Thyra_EpetraLinearOp.cpp. |
|
|
Definition at line 141 of file Thyra_EpetraLinearOp.cpp. |
|
||||||||||||||||||||
|
Implements Thyra::EpetraLinearOpBase. Definition at line 148 of file Thyra_EpetraLinearOp.cpp. |
|
||||||||||||||||||||
|
Implements Thyra::EpetraLinearOpBase. Definition at line 167 of file Thyra_EpetraLinearOp.cpp. |
|
|
Implements Thyra::SingleScalarEuclideanLinearOpBase< double >. Definition at line 188 of file Thyra_EpetraLinearOp.cpp. |
|
|
Returns
Implements Thyra::EuclideanLinearOpBase< double >. Definition at line 196 of file Thyra_EpetraLinearOp.cpp. |
|
|
Returns
Implements Thyra::EuclideanLinearOpBase< double >. Definition at line 202 of file Thyra_EpetraLinearOp.cpp. |
|
||||||||||||||||||||||||
|
Definition at line 207 of file Thyra_EpetraLinearOp.cpp. |
|
|
Definition at line 297 of file Thyra_EpetraLinearOp.cpp. |
|
|
Definition at line 305 of file Thyra_EpetraLinearOp.cpp. |
|
||||||||||||
|
Reimplemented from Thyra::LinearOpDefaultBase< RangeScalar, DomainScalar >. Definition at line 320 of file Thyra_EpetraLinearOp.cpp. |
|
||||||||||||
|
Allocate the domain space of the operator. Purpose: In TSFExtended, both EpetraLinearOp and EpetraVectorSpace are extended from the Thyra versions by inheritance, and the TSFExtended operator subclasses expect to work with an extended vector space subclass. Thus, it is necessary for the base operator class to never directly allocate vector space objects, and allocation is delegated to a virtual allocator function. Definition at line 366 of file Thyra_EpetraLinearOp.cpp. |
|
||||||||||||
|
Allocate the range space of the operator. Purpose: In TSFExtended, both EpetraLinearOp and EpetraVectorSpace are extended from the Thyra versions by inheritance, and the TSFExtended operator subclasses expect to work with an extended vector space subclass. Thus, it is necessary for the base operator class to never directly allocate vector space objects, and allocation is delegated to a virtual allocator function. Definition at line 376 of file Thyra_EpetraLinearOp.cpp. |
1.3.9.1