42 #include "Thyra_EpetraOperatorViewExtractorStd.hpp" 43 #include "Thyra_EpetraLinearOpBase.hpp" 44 #include "Thyra_ScaledAdjointLinearOpBase.hpp" 46 class Epetra_Operator;
57 double wrappedScalar = 0.0;
62 if( !(eFwdOp = dynamic_cast<const EpetraLinearOpBase*>(wrappedFwdOp)) )
70 const Ptr<RCP<Epetra_Operator> > &epetraOp,
71 const Ptr<EOpTransp> &epetraOpTransp,
72 const Ptr<EApplyEpetraOpAs> &epetraOpApplyAs,
73 const Ptr<EAdjointEpetraOp> &epetraOpAdjointSupport,
74 const Ptr<double> &epetraOpScalar
77 TEUCHOS_TEST_FOR_EXCEPT(
true);
85 const Ptr<RCP<const Epetra_Operator> > &epetraOp,
86 const Ptr<EOpTransp> &epetraOpTransp,
87 const Ptr<EApplyEpetraOpAs> &epetraOpApplyAs,
88 const Ptr<EAdjointEpetraOp> &epetraOpAdjointSupport,
89 const Ptr<double> &epetraOpScalar
92 using Teuchos::outArg;
93 double wrappedFwdOpScalar = 0.0;
95 Teuchos::RCP<const LinearOpBase<double> > wrappedFwdOp;
96 unwrap(fwdOp,&wrappedFwdOpScalar, &wrappedFwdOpTransp, &wrappedFwdOp);
97 Teuchos::RCP<const EpetraLinearOpBase> epetraFwdOp =
101 epetraOpApplyAs, epetraOpAdjointSupport);
103 *epetraOpScalar = wrappedFwdOpScalar;
EOpTransp
Enumeration for determining how a linear operator is applied. `*.
void unwrap(const LinearOpBase< Scalar > &Op, Scalar *scalar, EOpTransp *transp, const LinearOpBase< Scalar > **origOp)
Extract the overallScalar, overallTransp and const origOp from a const LinearOpBase object...
Use the non-transposed operator.
Abstract base class for all LinearOpBase objects that can return an Epetra_Operator view of themselve...
EOpTransp real_trans(EOpTransp transp)
Return NOTRANS or TRANS for real scalar valued operators and this also is used for determining struct...
virtual void getEpetraOpView(const Ptr< RCP< const Epetra_Operator > > &epetraOp, const Ptr< EOpTransp > &epetraOpTransp, const Ptr< EApplyEpetraOpAs > &epetraOpApplyAs, const Ptr< EAdjointEpetraOp > &epetraOpAdjointSupport) const =0
Return a smart pointer to a const Epetra_Operator view of this object and how the object is applied t...
EOpTransp trans_trans(EOpTransp trans1, EOpTransp trans2)
Combine two transpose arguments.