Thyra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Thyra_LinearOpTransformerBase.hpp
1 // @HEADER
2 // *****************************************************************************
3 // Thyra: Interfaces and Support for Abstract Numerical Algorithms
4 //
5 // Copyright 2004 NTESS and the Thyra contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef THYRA_LINEAR_OP_TRANSFORMER_BASE_HPP
11 #define THYRA_LINEAR_OP_TRANSFORMER_BASE_HPP
12 
13 
14 #include "Thyra_LinearOpBase.hpp"
15 #include "Teuchos_VerboseObject.hpp"
16 
17 
18 namespace Thyra {
19 
20 
22 template<class Scalar>
24  : virtual public Teuchos::Describable,
25  virtual public Teuchos::VerboseObject<LinearOpTransformerBase<Scalar> >
26 {
27 public:
28 
30  virtual bool isCompatible(const LinearOpBase<Scalar> &op_in) const = 0;
31 
33  virtual RCP<LinearOpBase<Scalar> > createOutputOp() const = 0;
34 
48  virtual void transform(
49  const LinearOpBase<Scalar> &op_in,
50  const Ptr<LinearOpBase<Scalar> > &op_inout
51  ) const = 0;
52 
53 };
54 
55 
56 } // namespace Thyra
57 
58 
59 #endif // THYRA_LINEAR_OP_TRANSFORMER_BASE_HPP
virtual RCP< LinearOpBase< Scalar > > createOutputOp() const =0
Create an uninitialized op.
virtual void transform(const LinearOpBase< Scalar > &op_in, const Ptr< LinearOpBase< Scalar > > &op_inout) const =0
Do the transformation to a pre-created output LinearOpBase object.
Base class for all linear operators.
Base interface for transforming a LinearOpBase object.
virtual bool isCompatible(const LinearOpBase< Scalar > &op_in) const =0
Create an uninitialized op.