PlayaEpetraVectorType.hpp
00001
00002
00003
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