00001 //************************************************************************************// 00002 // Module : gpmelemid.hpp 00003 // Date : 6/9/05 (DLR) 00004 // Copyright : 2005-2006 Copyright University Corporation for Atmospheric 00005 // Research 00006 // Description : Encapsulates the access methods and data associated with 00007 // generating an element/proc mapping for grid partitioning. 00008 // This class derives the map by using the element ids as 00009 // a space-filling curve, and dividing them up among the procs. 00010 // Derived From : GPartMapper. 00011 // Modifications: 00012 //************************************************************************************// 00013 #if !defined(GPMELEMID_HPP) 00014 #define GPMELEMID_HPP 00015 00016 #include "gtypes.h" 00017 #include "gelemlist.hpp" 00018 #include "gcomm.hpp" 00019 #include "gpartmapper.hpp" 00020 00021 00022 class GPMElemID : public GPartMapper 00023 { 00024 public: 00025 GPMElemID(GElemList *gelemsv); 00026 ~GPMElemID(); 00027 00028 GBOOL GenerateMap(stGPartitionMap *&pm, GINT &nmax); // Generate partition map data 00029 00030 private: 00031 GINT GetSibCount(GIBuffer &isib, stGPartitionMap &epm, 00032 stGPartitionMap *&gpm, GINT &ngpm); // Gets sibling count and indices of sibs in gpm 00033 00034 00035 00036 }; 00037 00038 #endif