PlayaMLOperator.hpp
Go to the documentation of this file.
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 {
00017 /**
00018  *
00019  */
00020 class MLOperator :
00021   public LinearOpWithSpaces<double>
00022 {
00023 public:
00024   /** */
00025   MLOperator(
00026     const LinearOperator<double>& op,
00027     const ParameterList& mlParams);
00028 
00029   /** 
00030    * Apply the operator. 
00031    * 
00032    * \param applyType Indicates whether to apply the operator, its transpose,
00033    * or its conjugate transpose. 
00034    * \param in The vector on which the operator is to act
00035    * \param out The vector into which the result of the operation 
00036    * is to be written. This vector should already be initialized by the
00037    * appropriate space.
00038    **/
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 */

Site Contact