Loading [MathJax]/extensions/tex2jax.js
Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ParallelData.hpp
Go to the documentation of this file.
1 #ifndef MOAB_PARALLEL_DATA_HPP 2 #define MOAB_PARALLEL_DATA_HPP 3  4 #include "moab/Forward.hpp" 5 #include "moab/Range.hpp" 6  7 namespace moab 8 { 9  10 class ParallelComm; 11  12 /** 13  * \brief Parallel data in MOAB 14  * \author Tim Tautges 15  * 16  * This class implements methods to retrieve information about 17  * the parallel mesh from MOAB. Most of this data can be retrieved 18  * directly from MOAB as sets and tags; this class provides convenience 19  * methods implemented on top of other MOAB functions. 20  * 21  */ 22 class ParallelData 23 { 24  public: 25  //! constructor; if non-null parallelcomm, that is used to 26  //! determine rank, otherwise rank is taken from impl 27  ParallelData( Interface* impl, ParallelComm* pcomm = NULL ); 28  29  //! return partition sets; if tag_name is input, gets sets with 30  //! that tag name, otherwise uses PARALLEL_PARTITION tag 31  ErrorCode get_partition_sets( Range& part_sets, const char* tag_name = NULL ); 32  33  //! get communication interface sets and the processors with which 34  //! this processor communicates; sets are sorted by processor 35  ErrorCode get_interface_sets( std::vector< EntityHandle >& iface_sets, std::vector< int >& iface_procs ); 36  37  private: 38  //! interface instance to which this instance corresponds 39  Interface* mbImpl; 40  41  //! ParallelComm object to which this is bound 42  ParallelComm* parallelComm; 43 }; 44  45 inline ParallelData::ParallelData( Interface* impl, ParallelComm* pcomm ) : mbImpl( impl ), parallelComm( pcomm ) {} 46  47 } // namespace moab 48  49 #endif