fix the bug incurred by previous commit
[charm.git] / tests / charm++ / jacobi3d-gausssiedal / jacobi3d.ci
1 mainmodule jacobi3d {
2
3   readonly CProxy_Main mainProxy;
4   readonly int arrayDimX;
5   readonly int arrayDimY;
6   readonly int arrayDimZ;
7   readonly int blockDimX;
8   readonly int blockDimY;
9   readonly int blockDimZ;
10
11   readonly int num_chare_x;
12   readonly int num_chare_y;
13   readonly int num_chare_z;
14
15   readonly int globalBarrier;
16
17   message ghostMsg {
18     double gh[];
19   };
20
21   mainchare Main {
22     entry Main(CkArgMsg *m);
23     entry void start();
24     entry void report();
25     entry [reductiontarget] void converge(double m);
26   };
27
28   array [3D] Jacobi {
29     // Normal Charm++ entry methods
30     entry Jacobi(void);
31     entry void begin_iteration(void);
32     entry void receiveGhosts(ghostMsg *gmsg);
33     entry void processGhosts(ghostMsg *gmsg);
34
35     entry void doStep() {
36       serial "begin_iteration" {
37         begin_iteration();
38       }
39       for(imsg = 0; imsg < neighbors; imsg++) {
40         // "iterations" keeps track of messages across steps
41         when receiveGhosts[iterations] (ghostMsg *gmsg)
42           serial "process ghosts" { processGhosts(gmsg); }
43       }
44       serial "doWork" {
45         check_and_compute();
46       }
47     };
48   };
49
50   group JacobiMap : CkArrayMap {
51     entry JacobiMap(int x, int y, int z);
52   };
53
54   nodegroup OmpInitializer {
55     entry OmpInitializer(int numThreads); 
56   };
57
58 };