Stratimikos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Thyra_MLPreconditionerFactory.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Stratimikos: Thyra-based strategies for linear solvers
4 //
5 // Copyright 2006 NTESS and the Stratimikos contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef THYRA_ML_PRECONDITIONER_FACTORY_DECL_HPP
11 #define THYRA_ML_PRECONDITIONER_FACTORY_DECL_HPP
12 
13 
14 #include "Thyra_PreconditionerFactoryBase.hpp"
17 
18 namespace Thyra {
19 
20 
25 class MLPreconditionerFactory : public PreconditionerFactoryBase<double> {
26 public:
27 
30 
33 
43  EpetraOperatorViewExtractorBase, epetraFwdOpViewExtractor );
44 
46 
49 
51  bool isCompatible( const LinearOpSourceBase<double> &fwdOp ) const;
53  bool applySupportsConj(EConj conj) const;
55  bool applyTransposeSupportsConj(EConj conj) const;
59  void initializePrec(
60  const Teuchos::RCP<const LinearOpSourceBase<double> > &fwdOp,
61  PreconditionerBase<double> *prec,
62  const ESupportSolveUse supportSolveUse
63  ) const;
65  void uninitializePrec(
66  PreconditionerBase<double> *prec
67  ,Teuchos::RCP<const LinearOpSourceBase<double> > *fwdOp
68  ,ESupportSolveUse *supportSolveUse
69  ) const;
70 
72 
75 
77  void setParameterList(
78  Teuchos::RCP<Teuchos::ParameterList> const& paramList);
88 
91 
93  std::string description() const;
94 
95  // ToDo: Add an override of describe(...) to give more detail!
96 
98 
99 private:
100 
102 
103 };
104 
105 
106 } // namespace Thyra
107 
108 
109 #endif // THYRA_ML_PRECONDITIONER_FACTORY_DECL_HPP
Teuchos::RCP< Teuchos::ParameterList > paramList_
Teuchos::RCP< const Teuchos::ParameterList > getParameterList() const
Concrete preconditioner factory subclass based on ML.
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
Teuchos::RCP< Teuchos::ParameterList > unsetParameterList()
void setParameterList(Teuchos::RCP< Teuchos::ParameterList > const &paramList)
void initializePrec(const Teuchos::RCP< const LinearOpSourceBase< double > > &fwdOp, PreconditionerBase< double > *prec, const ESupportSolveUse supportSolveUse) const
STANDARD_COMPOSITION_MEMBERS(EpetraOperatorViewExtractorBase, epetraFwdOpViewExtractor)
Set the strategy object used to extract an Epetra_Operator view of an input forward operator...
void uninitializePrec(PreconditionerBase< double > *prec, Teuchos::RCP< const LinearOpSourceBase< double > > *fwdOp, ESupportSolveUse *supportSolveUse) const
Teuchos::RCP< PreconditionerBase< double > > createPrec() const
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList()
bool isCompatible(const LinearOpSourceBase< double > &fwdOp) const