Thyra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
interfaces
operator_solve
fundamental
Thyra_PreconditionerFactoryBase_decl.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_FACTORY_BASE_DECL_HPP
11
#define THYRA_PRECONDITIONER_FACTORY_BASE_DECL_HPP
12
13
#include "Thyra_PreconditionerBase.hpp"
14
#include "Thyra_LinearOpSourceBase.hpp"
15
#include "Teuchos_Describable.hpp"
16
#include "Teuchos_ParameterListAcceptor.hpp"
17
#include "Teuchos_VerboseObject.hpp"
18
19
20
namespace
Thyra {
21
22
30
template
<
class
Scalar>
31
class
PreconditionerFactoryBase
32
:
virtual
public
Teuchos::Describable
,
33
virtual
public
Teuchos::ParameterListAcceptor
,
34
virtual
public
Teuchos::VerboseObject
<PreconditionerFactoryBase<Scalar> >
35
{
36
public
:
37
40
44
virtual
bool
isCompatible
(
const
LinearOpSourceBase<Scalar>
&fwdOpSrc)
const
= 0;
45
55
virtual
RCP<PreconditionerBase<Scalar>
>
createPrec
()
const
= 0;
56
127
virtual
void
initializePrec
(
128
const
RCP
<
const
LinearOpSourceBase<Scalar>
> &fwdOpSrc,
129
PreconditionerBase<Scalar>
*precOp,
130
const
ESupportSolveUse
supportSolveUse =
SUPPORT_SOLVE_UNSPECIFIED
131
)
const
= 0;
132
181
virtual
void
uninitializePrec
(
182
PreconditionerBase<Scalar>
*
prec
,
183
RCP
<
const
LinearOpSourceBase<Scalar>
> *fwdOpSrc = NULL,
184
ESupportSolveUse
*supportSolveUse = NULL
185
)
const
= 0;
186
188
191
198
virtual
bool
applySupportsConj
(EConj conj)
const
;
199
205
virtual
bool
applyTransposeSupportsConj
(EConj conj)
const
;
206
208
209
private
:
210
211
// Not defined and not to be called
212
PreconditionerFactoryBase<Scalar>
&
213
operator=(
const
PreconditionerFactoryBase<Scalar>
&);
214
215
};
216
217
218
}
// namespace Thyra
219
220
221
#endif
// THYRA_PRECONDITIONER_FACTORY_BASE_DECL_HPP
Teuchos::Describable
Teuchos::ParameterListAcceptor
Teuchos::RCP
Teuchos::VerboseObject
Thyra::LinearOpSourceBase
Base interface for objects that can return a linear operator.
Definition
Thyra_LinearOpSourceBase.hpp:26
Thyra::PreconditionerBase
Simple interface class to access a precreated preconditioner as one or more linear operators objects ...
Definition
Thyra_PreconditionerBase.hpp:58
Thyra::PreconditionerFactoryBase
Factory interface for creating preconditioner objects from LinearOpBase objects.
Definition
Thyra_PreconditionerFactoryBase_decl.hpp:35
Thyra::PreconditionerFactoryBase::uninitializePrec
virtual void uninitializePrec(PreconditionerBase< Scalar > *prec, RCP< const LinearOpSourceBase< Scalar > > *fwdOpSrc=NULL, ESupportSolveUse *supportSolveUse=NULL) const =0
Uninitialize a LinearOpBase preconditioner object and return its remembered forward linear operator.
Thyra::PreconditionerFactoryBase::applySupportsConj
virtual bool applySupportsConj(EConj conj) const
Return if precOp->apply() supports the argument conj.
Definition
Thyra_PreconditionerFactoryBase_def.hpp:21
Thyra::PreconditionerFactoryBase::isCompatible
virtual bool isCompatible(const LinearOpSourceBase< Scalar > &fwdOpSrc) const =0
Check that a LinearOpBase object is compatible with *this factory object.
Thyra::PreconditionerFactoryBase::prec
Teuchos::RCP< PreconditionerBase< Scalar > > prec(const PreconditionerFactoryBase< Scalar > &precFactory, const Teuchos::RCP< const LinearOpBase< Scalar > > &fwdOp, const ESupportSolveUse supportSolveUse=SUPPORT_SOLVE_UNSPECIFIED)
Create and initialize a preconditioner from a forward linear operator.
Definition
Thyra_PreconditionerFactoryHelpers.hpp:64
Thyra::PreconditionerFactoryBase::initializePrec
virtual void initializePrec(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, PreconditionerBase< Scalar > *precOp, const ESupportSolveUse supportSolveUse=SUPPORT_SOLVE_UNSPECIFIED) const =0
Initialize a pre-created LinearOpBase preconditioner object given a "compatible" LinearOpBase object.
Thyra::PreconditionerFactoryBase::createPrec
virtual RCP< PreconditionerBase< Scalar > > createPrec() const =0
Create an (uninitialized) LinearOpBase object to be initialized as the preconditioner later in this->...
Thyra::PreconditionerFactoryBase::applyTransposeSupportsConj
virtual bool applyTransposeSupportsConj(EConj conj) const
Return if precOp->solveTranspose() supports the argument conj.
Definition
Thyra_PreconditionerFactoryBase_def.hpp:30
Thyra::ESupportSolveUse
ESupportSolveUse
Enum that specifies how a LinearOpWithSolveBase object will be used for solves after it is constructe...
Definition
Thyra_SolveSupportTypes.hpp:457
Thyra::SUPPORT_SOLVE_UNSPECIFIED
@ SUPPORT_SOLVE_UNSPECIFIED
How the output LOWSB object will be useded for solves in unspecified.
Definition
Thyra_SolveSupportTypes.hpp:458
Generated by
1.17.0