Teko Version of the Day
Loading...
Searching...
No Matches
Teko_TpetraInverseOpWrapper.hpp
1// @HEADER
2// *****************************************************************************
3// Teko: A package for block and physics based preconditioning
4//
5// Copyright 2010 NTESS and the Teko contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef __Teko_TpetraInverseOpWrapper_hpp__
11#define __Teko_TpetraInverseOpWrapper_hpp__
12
13#include "Teko_TpetraOperatorWrapper.hpp"
14#include "Teko_ConfigDefs.hpp"
15#include "Tpetra_MultiVector.hpp"
16
17namespace Teko {
18namespace TpetraHelpers {
19
20class TpetraInverseOpWrapper : public TpetraOperatorWrapper {
21 public:
22 TpetraInverseOpWrapper(const RCP<const MappingStrategy>& forwardMaps)
23 : TpetraOperatorWrapper(forwardMaps) {}
24
25 TpetraInverseOpWrapper(const RCP<const Thyra::LinearOpBase<ST> >& thyraOp)
26 : TpetraOperatorWrapper(thyraOp) {}
27
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;
34
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;
41
42 // /** */
43 // virtual const Epetra_Map& OperatorDomainMap() const;
44 //
45 // /** */
46 // virtual const Epetra_Map& OperatorRangeMap() const;
47 protected:
48 TpetraInverseOpWrapper() {}
49};
50
51} // namespace TpetraHelpers
52} // namespace Teko
53
54#endif
Implements the Epetra_Operator interface with a Thyra LinearOperator. This enables the use of absrtac...