--- trunk/OOPSE/libmdtools/mpiSimulation.hpp 2003/03/26 23:14:02 416 +++ trunk/OOPSE/libmdtools/mpiSimulation.hpp 2004/05/27 18:59:17 1203 @@ -14,19 +14,30 @@ class mpiSimulation{ (public) mpiSimulation(SimInfo* the_entryPlug); ~mpiSimulation(); - int *divideLabor( void ); + void divideLabor(); - int getMyNode(void) { return mpiPlug->myNode; } - int getNumberProcessors(void) { return mpiPlug->numberProcessors; } - int getMyNMol( void ) { return mpiPlug->myNMol; } - int getMyNlocal( void ) { return mpiPlug->myNlocal; } - int getTotAtoms( void ) { return mpiPlug->nAtomsGlobal; } - int* getAtomToProcMap( void ) { return AtomToProcMap; } - + int getMyNode( void ) { return parallelData->myNode; } + int getNProcessors( void ) { return parallelData->nProcessors; } + int getNMolLocal( void ) { return parallelData->nMolLocal; } + int getNMolGlobal( void ) { return parallelData->nMolGlobal; } + int getNAtomsLocal( void ) { return parallelData->nAtomsLocal; } + int getNAtomsGlobal( void ) { return parallelData->nAtomsGlobal; } + int getNGroupsLocal( void ) { return parallelData->nGroupsLocal; } + int getNGroupsGlobal( void ) { return parallelData->nGroupsGlobal; } + int* getAtomToProcMap( void ) { return AtomToProcMap; } + int* getGroupToProcMap( void ) { return GroupToProcMap; } + int* getMolToProcMap( void ) { return MolToProcMap; } + int* getMolComponentType(void) { return MolComponentType; } + vector getGlobalAtomIndex(void) {return globalAtomIndex; } + vector getGlobalGroupIndex(void) {return globalGroupIndex; } + vector getGlobalMolIndex(void) {return globalMolIndex;} + int getGlobalToLocalMol(int globalIndex) {return globalToLocalMol[globalIndex];} + int getGlobalToLocalAtom(int globalIndex) {return globalToLocalAtom[globalIndex];} + int getGlobalToLocalGroup(int globalIndex) {return globalToLocalGroup[globalIndex];} // sets the internal function pointer to fortran. - void setInternal( void (*fSetup) setFortranMPIlist ){ + void setInternal( setFortranMPI_TD fSetup){ setFsimParallel = fSetup; } @@ -37,14 +48,22 @@ class mpiSimulation{ (public) protected: SimInfo* entryPlug; - mpiSimData* mpiPlug; + mpiSimData* parallelData; int *MolToProcMap; int *MolComponentType; int *AtomToProcMap; int *AtomType; + int *GroupToProcMap; + vector globalAtomIndex; + vector globalMolIndex; + vector globalGroupIndex; + vector globalToLocalMol; + vector globalToLocalAtom; + vector globalToLocalGroup; + // private function to initialize the fortran side of the simulation - void (*setFsimParallel) setFortranMPIlist; + setFortranMPI_TD setFsimParallel; // int *myIdents; // is needed by Cpp only. It tells the molecule which stamp it is.