Example charm++/matmul: simplify logic for when to pass blocks
[charm.git] / examples / charm++ / Molecular2D / Patch.ci
1 mainmodule Patch {
2
3   readonly CProxy_Main mainProxy;  
4   readonly CProxy_Patch patchArray;
5   readonly CProxy_Compute computeArray;
6
7   readonly int numParts;        // total number of particles
8   readonly int patchArrayDimX;  // X dimension of the Patch array 
9   readonly int patchArrayDimY;  // Y dimension of the Patch array
10   readonly int patchSize;       // size of each Patch
11   readonly double radius;       // maximum distance between two interacting particles
12   readonly int finalStepCount;  // number of steps at which the cells should stop computation
13   readonly double stepTime;
14
15   mainchare Main {
16     entry Main(CkArgMsg* msg);
17     entry void allDone();
18     entry void computeCreationDone();
19   };
20
21   array [2D] Patch {
22     entry Patch();
23     entry void start();
24     entry void createComputes();
25     entry void updateForces(CkVec<Particle> particles);
26     entry void updateParticles(CkVec<Particle> updates);
27     // entry void requestNextFrame(liveVizRequestMsg *m);
28   };
29
30   array [4D] Compute {
31     entry Compute();
32     entry void interact(CkVec<Particle>, int i, int j);
33   };
34
35 };