# | Line 1 | Line 1 | |
---|---|---|
1 | #ifndef __MPISIMULATION__ | |
2 | #define __MPISIMULATION__ | |
3 | ||
4 | + | #include "SimInfo.hpp" |
5 | + | #include "MakeStamps.hpp" |
6 | + | #define __C |
7 | + | #include "mpiComponentPlan.h" |
8 | + | |
9 | + | |
10 | class mpiSimulation{ | |
11 | public: | |
12 | ||
13 | < | mpiSimulation(); |
14 | < | ~mpiSimulation(); |
13 | > | mpiSimulation(SimInfo* the_entryPlug); |
14 | > | ~mpiSimulation(); |
15 | > | |
16 | > | int *divideLabor( void ); |
17 | > | |
18 | > | int getMyNode(void) { return mpiPlug->myNode; } |
19 | > | int getNumberProcessors(void) { return mpiPlug->numberProcessors; } |
20 | > | int getMyMolStart( void ) { return mpiPlug->myMolStart; } |
21 | > | int getMyMolEnd( void ) { return mpiPlug->myMolEnd; } |
22 | > | int getMyMol( void ) { return mpiPlug->myMol; } |
23 | > | int getMyAtomStart( void ) { return mpiPlug->myAtomStart; } |
24 | > | int getMyAtomEnd( void ) { return mpiPlug->myAtomEnd; } |
25 | > | int getMyNlocal( void ) { return mpiPlug->myNlocal; } |
26 | > | int getTotAtoms( void ) { return mpiPlug->nAtomsGlobal; } |
27 | > | |
28 | ||
29 | < | int getMyNode(void) {return myNode;} |
11 | < | int mpiInitSimulation(); |
12 | < | int mpiDistSimulation(); |
29 | > | // sets the internal function pointer to fortran. |
30 | ||
31 | < | private: |
31 | > | void setInternal( void (*fSetup)( mpiSimData*, int*, int*, int*) ){ |
32 | > | setFsimParallel = fSetup; |
33 | > | } |
34 | ||
35 | + | |
36 | + | // call at the begining and after load balancing |
37 | + | |
38 | + | void mpiRefresh( void ); |
39 | + | |
40 | protected: | |
41 | < | int myMolStart; |
42 | < | int myMolEnd; |
19 | < | int myMol; |
20 | < | int numberProcessors; |
21 | < | int myNode; |
22 | < | int processorNameLen; |
23 | < | char* processorName; |
24 | < | int natomsRow,natomsCol,natomsStart,natomsEnd; |
25 | < | int numberCols,numberRows; |
26 | < | int nmolsRow,nmolsCol,nmolsLocal; |
41 | > | SimInfo* entryPlug; |
42 | > | mpiSimData* mpiPlug; |
43 | ||
44 | + | // function to wrap the fortran function |
45 | + | void wrapMe(); |
46 | + | |
47 | + | // private function to initialize the fortran side of the simulation |
48 | + | void (*setFsimParallel)(mpiSimData* the_mpiPlug, int *nLocal, |
49 | + | int* globalIndex, int* isError ); |
50 | + | |
51 | + | // int *myIdents; // is needed by Cpp only. It tells the molecule which stamp it is. |
52 | + | |
53 | }; | |
54 | ||
55 | ||
56 | + | /** |
57 | + | The following pointer is the global declaration of the mpiSim |
58 | + | object created when the mpiSimulation creation routine is |
59 | + | called. Every one who includes the header file will then have |
60 | + | access to all of the routines in mpiSimulation class. |
61 | + | */ |
62 | + | |
63 | + | extern mpiSimulation* mpiSim; |
64 | + | |
65 | #endif |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |