00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef THYRA_ML_PRECONDITIONER_FACTORY_DECL_HPP
00031 #define THYRA_ML_PRECONDITIONER_FACTORY_DECL_HPP
00032
00033
00034 #include "Thyra_PreconditionerFactoryBase.hpp"
00035 #include "Thyra_EpetraOperatorViewExtractorBase.hpp"
00036 #include "Teuchos_StandardCompositionMacros.hpp"
00037
00038 namespace Thyra {
00039
00040
00045 class MLPreconditionerFactory : public PreconditionerFactoryBase<double> {
00046 public:
00047
00050
00052 MLPreconditionerFactory();
00053
00062 STANDARD_COMPOSITION_MEMBERS(
00063 EpetraOperatorViewExtractorBase, epetraFwdOpViewExtractor );
00064
00066
00069
00071 bool isCompatible( const LinearOpSourceBase<double> &fwdOp ) const;
00073 bool applySupportsConj(EConj conj) const;
00075 bool applyTransposeSupportsConj(EConj conj) const;
00077 Teuchos::RefCountPtr<PreconditionerBase<double> > createPrec() const;
00079 void initializePrec(
00080 const Teuchos::RefCountPtr<const LinearOpSourceBase<double> > &fwdOp,
00081 PreconditionerBase<double> *prec,
00082 const ESupportSolveUse supportSolveUse
00083 ) const;
00085 void uninitializePrec(
00086 PreconditionerBase<double> *prec
00087 ,Teuchos::RefCountPtr<const LinearOpSourceBase<double> > *fwdOp
00088 ,ESupportSolveUse *supportSolveUse
00089 ) const;
00090
00092
00095
00097 void setParameterList(
00098 Teuchos::RefCountPtr<Teuchos::ParameterList> const& paramList);
00100 Teuchos::RefCountPtr<Teuchos::ParameterList> getParameterList();
00102 Teuchos::RefCountPtr<Teuchos::ParameterList> unsetParameterList();
00104 Teuchos::RefCountPtr<const Teuchos::ParameterList> getParameterList() const;
00106 Teuchos::RefCountPtr<const Teuchos::ParameterList> getValidParameters() const;
00108
00111
00113 std::string description() const;
00114
00115
00116
00118
00119 private:
00120
00121 Teuchos::RefCountPtr<Teuchos::ParameterList> paramList_;
00122
00123 };
00124
00125
00126 }
00127
00128
00129 #endif // THYRA_ML_PRECONDITIONER_FACTORY_DECL_HPP