PlayaEpetraGhostImporter.hpp

00001 /* @HEADER@ */
00002 //
00003  /* @HEADER@ */
00004 
00005 #ifndef PLAYA_EPETRAGHOSTIMPORTER_HPP
00006 #define PLAYA_EPETRAGHOSTIMPORTER_HPP
00007 
00008 #include "PlayaDefs.hpp"
00009 #include "PlayaGhostImporter.hpp"
00010 #include "PlayaGhostView.hpp"
00011 #include "Epetra_Map.h"
00012 #include "Epetra_Import.h"
00013 #include "Teuchos_Utils.hpp"
00014 
00015 
00016 
00017 namespace Playa
00018 {
00019   using namespace Teuchos;
00020 
00021 
00025   class EpetraGhostImporter : public GhostImporter<double>
00026     {
00027     public:
00029       EpetraGhostImporter(const RCP<const Epetra_Map>& epetraMap,
00030                           int nGhost,
00031                           const int* ghostElements);
00033       virtual ~EpetraGhostImporter() {;}
00034 
00039       virtual void importView(const Vector<double>& x,
00040                               RCP<GhostView<double> >& ghostView) const ;
00041 
00042     private:
00043       RCP<const Epetra_Map> localMap_;
00044 
00045       RCP<const Epetra_Map> ghostMap_;
00046 
00047       RCP<Epetra_Import> importer_;
00048     };
00049   
00050 }
00051 
00052 #endif

doxygen