10 #ifndef __Teko_TpetraInverseOpWrapper_hpp__
11 #define __Teko_TpetraInverseOpWrapper_hpp__
13 #include "Teko_TpetraOperatorWrapper.hpp"
14 #include "Teko_ConfigDefs.hpp"
15 #include "Tpetra_MultiVector.hpp"
18 namespace TpetraHelpers {
20 class TpetraInverseOpWrapper :
public TpetraOperatorWrapper {
22 TpetraInverseOpWrapper(
const RCP<const MappingStrategy>& forwardMaps)
23 : TpetraOperatorWrapper(forwardMaps) {}
25 TpetraInverseOpWrapper(
const RCP<
const Thyra::LinearOpBase<ST> >& thyraOp)
26 : TpetraOperatorWrapper(thyraOp) {}
29 virtual void apply(
const Tpetra::MultiVector<ST, LO, GO, NT>& X,
30 Tpetra::MultiVector<ST, LO, GO, NT>& Y,
31 Teuchos::ETransp mode = Teuchos::NO_TRANS,
32 ST alpha = Teuchos::ScalarTraits<ST>::one(),
33 ST beta = Teuchos::ScalarTraits<ST>::zero())
const;
36 virtual void applyInverse(
const Tpetra::MultiVector<ST, LO, GO, NT>& X,
37 Tpetra::MultiVector<ST, LO, GO, NT>& Y,
38 Teuchos::ETransp mode = Teuchos::NO_TRANS,
39 ST alpha = Teuchos::ScalarTraits<ST>::one(),
40 ST beta = Teuchos::ScalarTraits<ST>::zero())
const;
48 TpetraInverseOpWrapper() {}