00001 //************************************************************************************// 00002 // Module : gpmsibpart.hpp 00003 // Date : 7/5/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 sending sibling elements 00008 // to the proc where the parent will live when the siblings are 00009 // coarsened. This is done simply by trying to minimize the 00010 // amount of communication for any one group of siblings; this 00011 // is not intended to act as a global load balancing partition mapper. 00012 // Note that here, the SetCoarsenables method _must_ be called with a 00013 // non-NULL argument, and it is assumed that these coarsenable elements 00014 // represent only sibling elements that must be coarsened. 00015 // Derived From : GPartMapper. 00016 // Modifications: 00017 //************************************************************************************// 00018 #if !defined(GPMSIBPART_HPP) 00019 #define GPMSIBPART_HPP 00020 00021 #include "gtypes.h" 00022 #include "gelemlist.hpp" 00023 #include "gcomm.hpp" 00024 #include "gpartmapper.hpp" 00025 00026 00027 class GPMSibPart : public GPartMapper 00028 { 00029 public: 00030 GPMSibPart(GElemList *gelemsv); 00031 ~GPMSibPart(); 00032 00033 GBOOL GenerateMap(stGPartitionMap *&pm, GINT &nmax); // Generate partition map data 00034 00035 private: 00036 00037 00038 00039 }; 00040 00041 #endif