47 #ifndef __Teko_TpetraInverseOpWrapper_hpp__
48 #define __Teko_TpetraInverseOpWrapper_hpp__
50 #include "Teko_TpetraOperatorWrapper.hpp"
51 #include "Teko_ConfigDefs.hpp"
52 #include "Tpetra_MultiVector.hpp"
55 namespace TpetraHelpers {
57 class TpetraInverseOpWrapper :
public TpetraOperatorWrapper {
59 TpetraInverseOpWrapper(
const RCP<const MappingStrategy>& forwardMaps)
60 : TpetraOperatorWrapper(forwardMaps) {}
62 TpetraInverseOpWrapper(
const RCP<
const Thyra::LinearOpBase<ST> >& thyraOp)
63 : TpetraOperatorWrapper(thyraOp) {}
66 virtual void apply(
const Tpetra::MultiVector<ST, LO, GO, NT>& X,
67 Tpetra::MultiVector<ST, LO, GO, NT>& Y,
68 Teuchos::ETransp mode = Teuchos::NO_TRANS,
69 ST alpha = Teuchos::ScalarTraits<ST>::one(),
70 ST beta = Teuchos::ScalarTraits<ST>::zero())
const;
73 virtual void applyInverse(
const Tpetra::MultiVector<ST, LO, GO, NT>& X,
74 Tpetra::MultiVector<ST, LO, GO, NT>& Y,
75 Teuchos::ETransp mode = Teuchos::NO_TRANS,
76 ST alpha = Teuchos::ScalarTraits<ST>::one(),
77 ST beta = Teuchos::ScalarTraits<ST>::zero())
const;
85 TpetraInverseOpWrapper() {}