ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/DumpWriter.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/DumpWriter.cpp (file contents):
Revision 440 by mmeineke, Tue Apr 1 16:49:17 2003 UTC vs.
Revision 483 by gezelter, Wed Apr 9 04:06:43 2003 UTC

# Line 4 | Line 4
4  
5   #ifdef IS_MPI
6   #include <mpi.h>
7 #include <mpi++.h>
7   #include "mpiSimulation.hpp"
8   #define TAKE_THIS_TAG_CHAR 1
9   #define TAKE_THIS_TAG_INT 2
# Line 28 | Line 27 | DumpWriter::DumpWriter( SimInfo* the_entry_plug ){
27    if(worldRank == 0 ){
28   #endif // is_mpi
29      
31
32    
30      strcpy( outName, entry_plug->sampleName );
31      
32      outFile.open(outName, ios::out | ios::trunc );
# Line 42 | Line 39 | DumpWriter::DumpWriter( SimInfo* the_entry_plug ){
39        painCave.isFatal = 1;
40        simError();
41      }
42 <  
42 >
43      //outFile.setf( ios::scientific );
44  
45   #ifdef IS_MPI
# Line 73 | Line 70 | void DumpWriter::writeDump( double currentTime ){
70    char tempBuffer[BUFFERSIZE];
71    char writeLine[BUFFERSIZE];
72  
73 <  int i, j, which_node, done, game_over, which_atom, local_index;
73 >  int i, j, which_node, done, which_atom, local_index;
74    double q[4];
75    DirectionalAtom* dAtom;
76    int nAtoms = entry_plug->n_atoms;
# Line 134 | Line 131 | void DumpWriter::writeDump( double currentTime ){
131    int myStatus; // 1 = wakeup & success; 0 = error; -1 = AllDone
132    int haveError;
133  
134 <  MPI::Status istatus;
134 >  MPI_Status istatus;
135    int *AtomToProcMap = mpiSim->getAtomToProcMap();
136    
137    // write out header and node 0's coordinates
# Line 206 | Line 203 | void DumpWriter::writeDump( double currentTime ){
203        }
204        else {
205          myStatus = 1;
206 <        MPI::COMM_WORLD.Send(&myStatus, 1, MPI_INT, which_node,
207 <                             TAKE_THIS_TAG_INT);
208 <        MPI::COMM_WORLD.Send(&i, 1, MPI_INT, which_node, TAKE_THIS_TAG_INT);
209 <        MPI::COMM_WORLD.Recv(writeLine, BUFFERSIZE, MPI_CHAR, which_node,
210 <                             TAKE_THIS_TAG_CHAR, istatus);
211 <        MPI::COMM_WORLD.Recv(&myStatus, 1, MPI_INT, which_node,
212 <                             TAKE_THIS_TAG_INT, istatus);
206 >        MPI_Send(&myStatus, 1, MPI_INT, which_node,
207 >                 TAKE_THIS_TAG_INT, MPI_COMM_WORLD);
208 >        MPI_Send(&i, 1, MPI_INT, which_node, TAKE_THIS_TAG_INT,
209 >                 MPI_COMM_WORLD);
210 >        MPI_Recv(writeLine, BUFFERSIZE, MPI_CHAR, which_node,
211 >                 TAKE_THIS_TAG_CHAR, MPI_COMM_WORLD, &istatus);
212 >        MPI_Recv(&myStatus, 1, MPI_INT, which_node,
213 >                 TAKE_THIS_TAG_INT, MPI_COMM_WORLD, &istatus);
214          
215          if(!myStatus) nodeZeroError();
216  
# Line 225 | Line 223 | void DumpWriter::writeDump( double currentTime ){
223      // kill everyone off:
224      myStatus = -1;
225      for (j = 0; j < mpiSim->getNumberProcessors(); j++) {      
226 <      MPI::COMM_WORLD.Send(&myStatus, 1, MPI_INT, j,
227 <                           TAKE_THIS_TAG_INT);
226 >      MPI_Send(&myStatus, 1, MPI_INT, j,
227 >               TAKE_THIS_TAG_INT, MPI_COMM_WORLD);
228      }
229  
230    } else {
# Line 234 | Line 232 | void DumpWriter::writeDump( double currentTime ){
232      done = 0;
233      while (!done) {
234        
235 <      MPI::COMM_WORLD.Recv(&myStatus, 1, MPI_INT, 0,
236 <                           TAKE_THIS_TAG_INT, istatus);
235 >      MPI_Recv(&myStatus, 1, MPI_INT, 0,
236 >               TAKE_THIS_TAG_INT, MPI_COMM_WORLD, &istatus);
237  
238        if(!myStatus) anonymousNodeDie();
239        
240        if(myStatus < 0) break;
241  
242 <      MPI::COMM_WORLD.Recv(&which_atom, 1, MPI_INT, 0,
243 <                           TAKE_THIS_TAG_INT, istatus);
242 >      MPI_Recv(&which_atom, 1, MPI_INT, 0,
243 >               TAKE_THIS_TAG_INT, MPI_COMM_WORLD, &istatus);
244        
245        myStatus = 1;
246        local_index=-1;        
# Line 292 | Line 290 | void DumpWriter::writeDump( double currentTime ){
290          strcpy( writeLine, "Hello, I'm an error.\n");
291        }
292  
293 <      MPI::COMM_WORLD.Send(writeLine, BUFFERSIZE, MPI_CHAR, 0,
294 <                           TAKE_THIS_TAG_CHAR);
295 <      MPI::COMM_WORLD.Send( &myStatus, 1, MPI_INT, 0,
296 <                            TAKE_THIS_TAG_INT);
293 >      MPI_Send(writeLine, BUFFERSIZE, MPI_CHAR, 0,
294 >               TAKE_THIS_TAG_CHAR, MPI_COMM_WORLD);
295 >      MPI_Send( &myStatus, 1, MPI_INT, 0,
296 >                TAKE_THIS_TAG_INT, MPI_COMM_WORLD);
297      }
298    }  
299    outFile.flush();
# Line 404 | Line 402 | void DumpWriter::writeFinal(){
402    int myStatus; // 1 = wakeup & success; 0 = error; -1 = AllDone
403    int haveError;
404  
405 <  MPI::Status istatus;
405 >  MPI_Status istatus;
406    int *AtomToProcMap = mpiSim->getAtomToProcMap();
407  
408    // write out header and node 0's coordinates
# Line 474 | Line 472 | void DumpWriter::writeFinal(){
472        else {
473          
474          myStatus = 1;
475 <        MPI::COMM_WORLD.Send(&myStatus, 1, MPI_INT, which_node,
476 <                             TAKE_THIS_TAG_INT);
477 <        MPI::COMM_WORLD.Send(&i, 1, MPI_INT, which_node, TAKE_THIS_TAG_INT);
478 <        MPI::COMM_WORLD.Recv(writeLine, BUFFERSIZE, MPI_CHAR, which_node,
479 <                             TAKE_THIS_TAG_CHAR, istatus);
480 <        MPI::COMM_WORLD.Recv(&myStatus, 1, MPI_INT, which_node,
481 <                             TAKE_THIS_TAG_INT, istatus);
475 >        MPI_Send(&myStatus, 1, MPI_INT, which_node,
476 >                 TAKE_THIS_TAG_INT, MPI_COMM_WORLD);
477 >        MPI_Send(&i, 1, MPI_INT, which_node, TAKE_THIS_TAG_INT,
478 >                 MPI_COMM_WORLD);
479 >        MPI_Recv(writeLine, BUFFERSIZE, MPI_CHAR, which_node,
480 >                 TAKE_THIS_TAG_CHAR, MPI_COMM_WORLD, &istatus);
481 >        MPI_Recv(&myStatus, 1, MPI_INT, which_node,
482 >                 TAKE_THIS_TAG_INT, MPI_COMM_WORLD, &istatus);
483          
484          if(!myStatus) nodeZeroError();
485        }
# Line 491 | Line 490 | void DumpWriter::writeFinal(){
490      // kill everyone off:
491      myStatus = -1;
492      for (j = 0; j < mpiSim->getNumberProcessors(); j++) {      
493 <      MPI::COMM_WORLD.Send(&myStatus, 1, MPI_INT, j,
494 <                           TAKE_THIS_TAG_INT);
493 >      MPI_Send(&myStatus, 1, MPI_INT, j,
494 >               TAKE_THIS_TAG_INT, MPI_COMM_WORLD);
495      }
496  
497    } else {
# Line 500 | Line 499 | void DumpWriter::writeFinal(){
499      done = 0;
500      while (!done) {
501  
502 <      MPI::COMM_WORLD.Recv(&myStatus, 1, MPI_INT, 0,
503 <                           TAKE_THIS_TAG_INT, istatus);
502 >      MPI_Recv(&myStatus, 1, MPI_INT, 0,
503 >               TAKE_THIS_TAG_INT, MPI_COMM_WORLD, &istatus);
504        
505        if(!myStatus) anonymousNodeDie();
506        
507        if(myStatus < 0) break;
508        
509 <      MPI::COMM_WORLD.Recv(&which_atom, 1, MPI_INT, 0,
510 <                           TAKE_THIS_TAG_INT, istatus);
509 >      MPI_Recv(&which_atom, 1, MPI_INT, 0,
510 >               TAKE_THIS_TAG_INT, MPI_COMM_WORLD, &istatus);
511        
512        myStatus = 1;
513        local_index=-1;        
# Line 559 | Line 558 | void DumpWriter::writeFinal(){
558          strcpy( writeLine, "Hello, I'm an error.\n");
559        }
560  
561 <      MPI::COMM_WORLD.Send(writeLine, BUFFERSIZE, MPI_CHAR, 0,
562 <                           TAKE_THIS_TAG_CHAR);
563 <      MPI::COMM_WORLD.Send( &myStatus, 1, MPI_INT, 0,
564 <                            TAKE_THIS_TAG_INT);
561 >      MPI_Send(writeLine, BUFFERSIZE, MPI_CHAR, 0,
562 >               TAKE_THIS_TAG_CHAR, MPI_COMM_WORLD);
563 >      MPI_Send( &myStatus, 1, MPI_INT, 0,
564 >                TAKE_THIS_TAG_INT, MPI_COMM_WORLD);
565      }
566    }
567    finalOut.flush();
# Line 585 | Line 584 | void dWrite::nodeZeroError( void ){
584    
585    myStatus = 0;
586    for (j = 0; j < mpiSim->getNumberProcessors(); j++) {      
587 <    MPI::COMM_WORLD.Send( &myStatus, 1, MPI_INT, j,
588 <                          TAKE_THIS_TAG_INT);
587 >    MPI_Send( &myStatus, 1, MPI_INT, j,
588 >              TAKE_THIS_TAG_INT, MPI_COMM_WORLD);
589    }  
590    
591  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines