Thyra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Thyra_DefaultSerialDenseLinearOpWithSolveFactory_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_DEFAULT_SERIAL_DENSE_LINEAR_OP_WITH_SOLVE_FACTORY_DECL_HPP
11 #define THYRA_DEFAULT_SERIAL_DENSE_LINEAR_OP_WITH_SOLVE_FACTORY_DECL_HPP
12 
13 
14 #include "Thyra_LinearOpWithSolveFactoryBase.hpp"
15 #include "Teuchos_ParameterListAcceptorDefaultBase.hpp"
16 
17 
18 namespace Thyra {
19 
20 
27 template<class Scalar>
29  : virtual public LinearOpWithSolveFactoryBase<Scalar>,
31 {
32 public:
33 
36 
38 
41 
43  void setParameterList(RCP<ParameterList> const& paramList);
46 
48 
51 
53  virtual bool acceptsPreconditionerFactory() const;
54 
56  virtual void setPreconditionerFactory(
57  const RCP<PreconditionerFactoryBase<Scalar> > &precFactory,
58  const std::string &precFactoryName
59  );
60 
64 
66  virtual void unsetPreconditionerFactory(
68  std::string *precFactoryName
69  );
70 
72  virtual bool isCompatible(
73  const LinearOpSourceBase<Scalar> &fwdOpSrc
74  ) const;
75 
78 
80  virtual void initializeOp(
81  const RCP<const LinearOpSourceBase<Scalar> > &fwdOpSrc,
83  const ESupportSolveUse supportSolveUse
84  ) const;
85 
87  virtual void initializeAndReuseOp(
88  const RCP<const LinearOpSourceBase<Scalar> > &fwdOpSrc,
90  ) const;
91 
93  virtual void uninitializeOp(
95  RCP<const LinearOpSourceBase<Scalar> > *fwdOpSrc,
96  RCP<const PreconditionerBase<Scalar> > *prec,
97  RCP<const LinearOpSourceBase<Scalar> > *approxFwdOpSrc,
98  ESupportSolveUse *supportSolveUse
99  ) const;
100 
102  virtual bool supportsPreconditionerInputType(
103  const EPreconditionerInputType precOpType
104  ) const;
105 
107  virtual void initializePreconditionedOp(
108  const RCP<const LinearOpSourceBase<Scalar> > &fwdOpSrc,
109  const RCP<const PreconditionerBase<Scalar> > &prec,
111  const ESupportSolveUse supportSolveUse
112  ) const;
113 
116  const RCP<const LinearOpSourceBase<Scalar> > &fwdOpSrc,
117  const RCP<const LinearOpSourceBase<Scalar> > &approxFwdOpSrc,
119  const ESupportSolveUse supportSolveUse
120  ) const;
121 
123 
124 };
125 
126 
131 template<class Scalar>
133 defaultSerialDenseLinearOpWithSolveFactory()
134 {
136 }
137 
138 
139 } // namespace Thyra
140 
141 
142 #endif // THYRA_DEFAULT_SERIAL_DENSE_LINEAR_OP_WITH_SOLVE_FACTORY_DECL_HPP
Base class for all linear operators that can support a high-level solve operation.
virtual void initializeOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const
Simple interface class to access a precreated preconditioner as one or more linear operators objects ...
virtual void setPreconditionerFactory(const RCP< PreconditionerFactoryBase< Scalar > > &precFactory, const std::string &precFactoryName)
Throws exception.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
virtual void initializeAndReuseOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, LinearOpWithSolveBase< Scalar > *Op) const
Factory interface for creating LinearOpWithSolveBase objects from compatible LinearOpBase objects...
virtual RCP< LinearOpWithSolveBase< Scalar > > createOp() const
Returns a DefaultSerialDenseLinearOpWithSolve object .
virtual void unsetPreconditionerFactory(RCP< PreconditionerFactoryBase< Scalar > > *precFactory, std::string *precFactoryName)
Throws exception.
virtual bool isCompatible(const LinearOpSourceBase< Scalar > &fwdOpSrc) const
Factory interface for creating preconditioner objects from LinearOpBase objects.
Base interface for objects that can return a linear operator.
ESupportSolveUse
Enum that specifies how a LinearOpWithSolveBase object will be used for solves after it is constructe...
virtual void initializePreconditionedOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const RCP< const PreconditionerBase< Scalar > > &prec, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const
EPreconditionerInputType
Enum defining the status of a preconditioner object.
Concreate LinearOpWithSolveFactoryBase subclass that creates DefaultSerialDenseLinearOpWithSolve obje...
virtual void initializeApproxPreconditionedOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const RCP< const LinearOpSourceBase< Scalar > > &approxFwdOpSrc, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const
virtual void uninitializeOp(LinearOpWithSolveBase< Scalar > *Op, RCP< const LinearOpSourceBase< Scalar > > *fwdOpSrc, RCP< const PreconditionerBase< Scalar > > *prec, RCP< const LinearOpSourceBase< Scalar > > *approxFwdOpSrc, ESupportSolveUse *supportSolveUse) const
virtual RCP< PreconditionerFactoryBase< Scalar > > getPreconditionerFactory() const
Returns null .
virtual bool supportsPreconditionerInputType(const EPreconditionerInputType precOpType) const