Thyra Version of the Day
Loading...
Searching...
No Matches
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
18namespace Thyra {
19
20
22template<class Scalar>
24 : virtual public Teuchos::Describable,
25 virtual public Teuchos::VerboseObject<LinearOpTransformerBase<Scalar> >
26{
27public:
28
30 virtual bool isCompatible(const LinearOpBase<Scalar> &op_in) const = 0;
31
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
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.
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.