change Ckpv to Cpv in conv-com
[charm.git] / src / conv-com / hypercubetopology.h
1 /**
2    @addtogroup ConvComlib
3    @{
4    @file 
5    @brief Header for Hypercube topology discriptor 
6 */
7
8 #ifndef __HYPERCUBE_TOPOLOGY_H
9 #define __HYPERCUBE_TOPOLOGY_H
10
11 #include "graphrouter.h"
12 #include "string.h"
13
14 class HypercubeTopology: public TopologyDescriptor {
15     int NumPes, MyPe, Dim;
16     int *penum, **next;
17
18     void CreateStageTable(int, int *);
19     
20  public:
21     HypercubeTopology(int npes, int mype);
22     //Entry methods which will define the specific graph.
23     void getNeighbors(int &npes, int *pelist);
24     int getNumStages();
25     int getNumSteps(int stage);
26     void getPesToSend(int step, int stage, int &npesToSend, 
27                               int *pelist, int &nextpe);
28     int getNumMessagesExpected(int stage);
29 };
30
31 #endif
32
33 /*@}*/