Thyra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
interfaces
operator_solve
fundamental
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
17
namespace
Thyra {
18
19
56
template
<
class
Scalar>
57
class
PreconditionerBase
:
virtual
public
Teuchos::Describable
58
{
59
public
:
60
63
67
virtual
bool
isLeftPrecOpConst
()
const
= 0;
68
76
virtual
Teuchos::RCP<LinearOpBase<Scalar>
>
getNonconstLeftPrecOp
() = 0;
77
81
virtual
Teuchos::RCP<const LinearOpBase<Scalar>
>
getLeftPrecOp
()
const
= 0;
82
86
virtual
bool
isRightPrecOpConst
()
const
= 0;
87
95
virtual
Teuchos::RCP<LinearOpBase<Scalar>
>
getNonconstRightPrecOp
() = 0;
96
100
virtual
Teuchos::RCP<const LinearOpBase<Scalar>
>
getRightPrecOp
()
const
= 0;
101
105
virtual
bool
isUnspecifiedPrecOpConst
()
const
= 0;
106
110
virtual
Teuchos::RCP<LinearOpBase<Scalar>
>
getNonconstUnspecifiedPrecOp
() = 0;
111
119
virtual
Teuchos::RCP<const LinearOpBase<Scalar>
>
getUnspecifiedPrecOp
()
const
= 0;
120
122
123
private
:
124
125
// Not defined and not to be called
126
PreconditionerBase<Scalar>
&
127
operator=(
const
PreconditionerBase<Scalar>
&);
128
129
};
130
131
132
}
// namespace Thyra
133
134
135
#endif
// THYRA_PRECONDITIONER_BASE_HPP
Teuchos::Describable
Teuchos::RCP
Thyra::PreconditionerBase
Simple interface class to access a precreated preconditioner as one or more linear operators objects ...
Definition
Thyra_PreconditionerBase.hpp:58
Thyra::PreconditionerBase::getNonconstLeftPrecOp
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...
Thyra::PreconditionerBase::getUnspecifiedPrecOp
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 ...
Thyra::PreconditionerBase::isLeftPrecOpConst
virtual bool isLeftPrecOpConst() const =0
Return if the underlying left preconditioner operator is const-only or allows non-const access.
Thyra::PreconditionerBase::getLeftPrecOp
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...
Thyra::PreconditionerBase::getNonconstUnspecifiedPrecOp
virtual Teuchos::RCP< LinearOpBase< Scalar > > getNonconstUnspecifiedPrecOp()=0
Return a non-const generic preconditioner linear operator that is not designed or targeted to be appl...
Thyra::PreconditionerBase::isRightPrecOpConst
virtual bool isRightPrecOpConst() const =0
Return if the underlying right preconditioner operator is const-only or allows non-const access.
Thyra::PreconditionerBase::getNonconstRightPrecOp
virtual Teuchos::RCP< LinearOpBase< Scalar > > getNonconstRightPrecOp()=0
Return a non-const right preconditioner linear operator if one is designed or targeted to be applied ...
Thyra::PreconditionerBase::getRightPrecOp
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...
Thyra::PreconditionerBase::isUnspecifiedPrecOpConst
virtual bool isUnspecifiedPrecOpConst() const =0
Return if the underlying unspecified preconditioner operator is const-only or allows non-const access...
Generated by
1.17.0