PlayaLinearOperatorBaseDecl.hpp

00001 /* @HEADER@ */
00002 //   
00003  /* @HEADER@ */
00004 
00005 #ifndef PLAYA_LINEAROPERATORBASEDECL_HPP
00006 #define PLAYA_LINEAROPERATORBASEDECL_HPP
00007 
00008 #include "PlayaDefs.hpp"
00009 #include "Teuchos_BLAS_types.hpp"
00010 #include "PlayaVectorDecl.hpp"
00011 #include "PlayaObjectWithVerbosity.hpp"
00012 
00013 namespace Playa
00014 {
00015 
00016 template <class Scalar>  class VectorSpaceBase;
00017 template <class Scalar>  class Vector;
00018 template <class Scalar>  class VectorType;
00019 using Teuchos::ETransp;
00020 
00027 template <class Scalar>
00028 class LinearOperatorBase
00029   : public ObjectWithVerbosity
00030 {
00031 public:
00033   ~LinearOperatorBase(){}
00034 
00036   virtual const RCP<const VectorSpaceBase<Scalar> > domain() const = 0 ;
00037 
00039   virtual const RCP<const VectorSpaceBase<Scalar> > range() const = 0 ;
00040 
00051   virtual void apply(
00052     Teuchos::ETransp applyType,
00053     const Vector<Scalar>& in,
00054     Vector<Scalar> out) const = 0 ;
00055 };
00056 
00057 
00058 
00059 
00060 }
00061 
00062 
00063 #endif

doxygen