MeshKit  1.0
ParSendPostSurfMesh.hpp
Go to the documentation of this file.
00001 #ifndef PAR_SEND_POST_SURF_MESH_HPP
00002 #define PAR_SEND_POST_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 ParSendPostSurfMesh : public MeshScheme
00013 {
00014 public:
00015 
00016   ParSendPostSurfMesh(MKCore *mkcore, const MEntVector &me_vec);
00017 
00018   virtual ~ParSendPostSurfMesh();
00019 
00021   static const char* name() 
00022     { return "ParSendPostSurfMesh"; }
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   void get_incoming(int& incoming1, int& incoming2);
00060 
00061 private:
00062 
00063   ParallelComm* m_mpcomm; // mesh parallel communication
00064 
00065   unsigned int m_rank;
00066 
00067   std::vector< Range* > m_shared_entities;
00068 
00069   std::vector< unsigned int > m_shared_procs;
00070 
00071   int get_shared_list(const int to_proc);
00072 
00073   int m_incoming1, m_incoming2;
00074 };
00075 }
00076 
00077 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines