Thyra Version of the Day
Loading...
Searching...
No Matches
Thyra_PreconditionerBase.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_PRECONDITIONER_BASE_HPP
11#define THYRA_PRECONDITIONER_BASE_HPP
12
13#include "Thyra_OperatorSolveTypes.hpp"
14#include "Teuchos_Describable.hpp"
15
16
17namespace Thyra {
18
19
56template<class Scalar>
58{
59public:
60
63
67 virtual bool isLeftPrecOpConst() const = 0;
68
77
82
86 virtual bool isRightPrecOpConst() const = 0;
87
96
101
105 virtual bool isUnspecifiedPrecOpConst() const = 0;
106
111
120
122
123private:
124
125 // Not defined and not to be called
127 operator=(const PreconditionerBase<Scalar>&);
128
129};
130
131
132} // namespace Thyra
133
134
135#endif // THYRA_PRECONDITIONER_BASE_HPP
Simple interface class to access a precreated preconditioner as one or more linear operators objects ...
virtual Teuchos::RCP< LinearOpBase< Scalar > > getNonconstLeftPrecOp()=0
Return a non-const left preconditioner linear operator if one is designed or targeted to be applied o...
virtual Teuchos::RCP< const LinearOpBase< Scalar > > getUnspecifiedPrecOp() const =0
Return a const generic preconditioner linear operator that is not designed or targeted to be applied ...
virtual bool isLeftPrecOpConst() const =0
Return if the underlying left preconditioner operator is const-only or allows non-const access.
virtual Teuchos::RCP< const LinearOpBase< Scalar > > getLeftPrecOp() const =0
Return a const left preconditioner linear operator if one is designed or targeted to be applied on th...
virtual Teuchos::RCP< LinearOpBase< Scalar > > getNonconstUnspecifiedPrecOp()=0
Return a non-const generic preconditioner linear operator that is not designed or targeted to be appl...
virtual bool isRightPrecOpConst() const =0
Return if the underlying right preconditioner operator is const-only or allows non-const access.
virtual Teuchos::RCP< LinearOpBase< Scalar > > getNonconstRightPrecOp()=0
Return a non-const right preconditioner linear operator if one is designed or targeted to be applied ...
virtual Teuchos::RCP< const LinearOpBase< Scalar > > getRightPrecOp() const =0
Return a const right preconditioner linear operator if one is designed or targeted to be applied on t...
virtual bool isUnspecifiedPrecOpConst() const =0
Return if the underlying unspecified preconditioner operator is const-only or allows non-const access...