00001 /* @HEADER@ */ 00002 // 00003 /* @HEADER@ */ 00004 00005 #ifndef PLAYA_BLOCKVECTORSPACEBASEDECL_HPP 00006 #define PLAYA_BLOCKVECTORSPACEBASEDECL_HPP 00007 00008 #include "PlayaDefs.hpp" 00009 #include "PlayaVectorSpaceBaseDecl.hpp" 00010 00011 namespace Playa 00012 { 00013 00020 template <class Scalar> 00021 class BlockVectorSpaceBase : public VectorSpaceBase<Scalar> 00022 { 00023 public: 00025 virtual ~BlockVectorSpaceBase() {;} 00026 00029 virtual int dim() const ; 00030 00032 virtual int numLocalElements() const ; 00033 00036 virtual bool isCompatible(const VectorSpaceBase<Scalar>* other) const ; 00037 00041 virtual const VectorSpace<Scalar>& getBlock(int b) const = 0 ; 00042 00044 virtual std::string description() const ; 00045 00046 }; 00047 00048 00049 00050 00051 00052 00053 } 00054 00055 #endif