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 419 by gezelter, Thu Mar 27 15:07:29 2003 UTC vs.
Revision 434 by chuckv, Fri Mar 28 19:30:59 2003 UTC

# Line 6 | Line 6
6   #include <mpi.h>
7   #include <mpi++.h>
8   #include "mpiSimulation.hpp"
9 < #define TAKE_THIS_TAG 0
9 > #define TAKE_THIS_TAG 1
10   #endif //is_mpi
11  
12   #include "ReadWrite.hpp"
# Line 132 | Line 132 | void DumpWriter::writeDump( double currentTime ){
132              << entry_plug->box_x << "\t"
133              << entry_plug->box_y << "\t"
134              << entry_plug->box_z << "\n";
135 <    
135 >    outFile.flush();
136      for (i = 0 ; i < mpiSim->getTotAtoms(); i++ ) {
137        // Get the Node number which has this atom;
138        
139        which_node = AtomToProcMap[i];    
140        
141        if (which_node == mpiSim->getMyNode()) {
142 <        
143 <        sprintf( tempBuffer,
142 >                sprintf( tempBuffer,
143                   "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t",
144                   atoms[i]->getType(),
145                   atoms[i]->getX(),
# Line 172 | Line 171 | void DumpWriter::writeDump( double currentTime ){
171          
172        } else {
173          
174 +        std::cerr << "node 0: sending node " << which_node << " request for atom " << i << "\n";
175          MPI::COMM_WORLD.Send(&i, 1, MPI_INT, which_node, TAKE_THIS_TAG);
176 +        std::cerr << "node 0: sent!\n";
177          MPI::COMM_WORLD.Recv(writeLine, BUFFERSIZE, MPI_CHAR, which_node,
178                                  TAKE_THIS_TAG, istatus);
179 +        std::cerr << "node 0: got this line: " << writeLine;
180        }
181        
182        outFile << writeLine;
183 +      outFile.flush();
184      }
185      
186      // kill everyone off:
# Line 190 | Line 193 | void DumpWriter::writeDump( double currentTime ){
193      
194      done = 0;
195      while (!done) {
196 +      std::cerr << "node: " << mpiSim->getMyNode() << " Waiting for receive \n";
197        MPI::COMM_WORLD.Recv(&which_atom, 1, MPI_INT, 0,
198                             TAKE_THIS_TAG, istatus);
199 <      
199 >      std::cerr << "node: " << mpiSim->getMyNode() << " got request for atom " << which_atom << "\n";
200        if (which_atom == -1) {
201          done=1;
202          continue;
# Line 232 | Line 236 | void DumpWriter::writeDump( double currentTime ){
236            }
237            else
238              strcat( writeLine, "0.0\t0.0\t0.0\t0.0\t0.0\t0.0\t0.0\n" );
239 <          
239 >          std::cerr << "node: " << mpiSim->getMyNode() << " sending this line" << writeLine;
240            MPI::COMM_WORLD.Send(writeLine, BUFFERSIZE, MPI_CHAR, 0,
241                                 TAKE_THIS_TAG);
242          } else {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines