MeshKit  1.0
ParRecvSurfMesh.hpp
Go to the documentation of this file.
00001 #ifndef PAR_RECV_SURF_MESH_HPP
00002 #define PAR_RECV_SURF_MESH_HPP
00003 
00004 #include "meshkit/MeshScheme.hpp"
00005 #include "meshkit/ModelEnt.hpp"
00006 #include "moab/ParallelComm.hpp"
00007 
00008 namespace MeshKit
00009 {
00010 using namespace moab;
00011 
00012 class ParRecvSurfMesh : public MeshScheme
00013 {
00014 public:
00015 
00016   ParRecvSurfMesh(MKCore *mkcore, const MEntVector &me_vec);
00017 
00018   virtual ~ParRecvSurfMesh();
00019 
00021   static const char* name() 
00022     { return "ParRecvSurfMesh"; }
00023 
00028   static bool can_mesh(iBase_EntityType dim)
00029     { return iBase_ALL_TYPES == dim; }
00030    
00037   static bool can_mesh(ModelEnt *me)
00038     { return (me->dimension() == 4); }
00039   
00043   static const moab::EntityType* output_types();
00044 
00048   virtual const moab::EntityType* mesh_types_arr() const
00049     { return output_types(); }
00050 
00053   virtual void setup_this();
00054 
00057   virtual void execute_this();
00058 
00059 private:
00060 
00061   ParallelComm* m_mpcomm; // mesh parallel communication
00062 
00063   unsigned int m_rank;
00064 
00065   std::vector< Range* > m_shared_entities;
00066 
00067   std::vector< unsigned int > m_shared_procs;
00068 
00069   int get_shared_list(const int to_proc);
00070 };
00071 }
00072 
00073 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines