PlayaPreconditionerBase.hpp

00001 /* @HEADER@ */
00002 //   
00003 /* @HEADER@ */
00004 
00005 #ifndef PLAYA_PRECONDITIONERBASE_HPP
00006 #define PLAYA_PRECONDITIONERBASE_HPP
00007 
00008 #include "PlayaDefs.hpp"
00009 #include "PlayaVectorDecl.hpp"
00010 #include "PlayaLinearOperatorDecl.hpp"
00011 #include "Teuchos_ParameterList.hpp"
00012 
00013 
00014 namespace Playa
00015 {
00016   using namespace Teuchos;
00017 
00027   template <class Scalar>
00028   class PreconditionerBase : public Playa::Handleable<PreconditionerBase<Scalar> >
00029   {
00030   public:
00032     PreconditionerBase() {;}
00033 
00035     virtual ~PreconditionerBase(){;}
00036 
00037     
00039     virtual LinearOperator<Scalar> left() const = 0 ;
00040 
00042     virtual LinearOperator<Scalar> right() const = 0 ;
00043 
00045     virtual bool hasLeft() const = 0 ;
00046 
00049     virtual bool hasRight() const = 0 ;
00050 
00051   private:
00052   };
00053 
00054 }
00055 
00056 #endif

doxygen