PlayaMLOperator.hpp

00001 /* @HEADER@ */
00002 //   
00003  /* @HEADER@ */
00004 
00005 #ifndef PLAYA_MLOPERATOR_HPP
00006 #define PLAYA_MLOPERATOR_HPP
00007 
00008 
00009 #include "PlayaEpetraMatrix.hpp"
00010 #include "PlayaLinearOpWithSpacesDecl.hpp"
00011 
00012 #include "ml_MultiLevelPreconditioner.h"
00013 #include "EpetraPlayaOperator.hpp"
00014 
00015 namespace Playa
00016 {
00020 class MLOperator :
00021   public LinearOpWithSpaces<double>
00022 {
00023 public:
00025   MLOperator(
00026     const LinearOperator<double>& op,
00027     const ParameterList& mlParams);
00028 
00039   virtual void apply(
00040     Teuchos::ETransp applyType,
00041     const Vector<double>& in,
00042     Vector<double> out) const ;
00043 
00044 
00045 private:
00046   RCP<ML_Epetra::MultiLevelPreconditioner> mlPrec_;
00047 
00048 };
00049 }
00050 
00051 #endif /* PlayaIFPACKOPERATOR_HPP */

doxygen