PlayaEpetraVectorType.hpp

00001 /* @HEADER@ */
00002 //
00003 /* @HEADER@ */
00004 
00005 #ifndef PLAYA_EPETRAVECTORTYPE_HPP
00006 #define PLAYA_EPETRAVECTORTYPE_HPP
00007 
00008 #include "PlayaEpetraVectorSpace.hpp"
00009 #include "PlayaHandleable.hpp"
00010 #include "PlayaPrintable.hpp"
00011 #include "Teuchos_Describable.hpp"
00012 #include "PlayaVectorTypeBase.hpp"
00013 
00014 
00015 namespace Playa
00016 {
00017 using namespace Teuchos;
00018   
00022 class EpetraVectorType : public VectorTypeBase<double>,
00023                          public Playa::Handleable<VectorTypeBase<double> >,
00024                          public Printable,
00025                          public Describable
00026 {
00027 public:
00029   EpetraVectorType();
00030       
00032   virtual ~EpetraVectorType() {;}
00033 
00039   RCP<const VectorSpaceBase<double> > 
00040   createSpace(int dimension, 
00041     int nLocal,
00042     const int* locallyOwnedIndices,
00043     const MPIComm& comm) const ;
00044 
00054   RCP<GhostImporter<double> > 
00055   createGhostImporter(const VectorSpace<double>& space,
00056     int nGhost,
00057     const int* ghostIndices) const ;
00058 
00059 
00064   RCP<MatrixFactory<double> >
00065   createMatrixFactory(const VectorSpace<double>& domain,
00066     const VectorSpace<double>& range) const ;
00067 
00068     
00069 
00073   void print(std::ostream& os) const {os << description();}
00075 
00076   GET_RCP(VectorTypeBase<double>);
00077 };
00078   
00079 }
00080 
00081 #endif

doxygen