ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/io/DumpWriter.cpp
(Generate patch)

Comparing trunk/src/io/DumpWriter.cpp (file contents):
Revision 1024 by tim, Wed Aug 30 18:42:29 2006 UTC vs.
Revision 1313 by gezelter, Wed Oct 22 20:01:49 2008 UTC

# Line 194 | Line 194 | namespace oopse {
194      os << "    <FrameData>\n";
195  
196      RealType currentTime = s->getTime();
197 <    sprintf(buffer, "        Time: %.10g\n", time);
197 >    sprintf(buffer, "        Time: %.10g\n", currentTime);
198      os << buffer;
199  
200      Mat3x3d hmat;
# Line 234 | Line 234 | namespace oopse {
234  
235   #ifndef IS_MPI
236      os << "  <Snapshot>\n";
237 <
237 >
238      writeFrameProperties(os, info_->getSnapshotManager()->getCurrentSnapshot());
239  
240      os << "    <StuntDoubles>\n";
241      for (mol = info_->beginMolecule(mi); mol != NULL; mol = info_->nextMolecule(mi)) {
242  
243 <      for (integrableObject = mol->beginIntegrableObject(ii); integrableObject != NULL;
243 >      
244 >      for (integrableObject = mol->beginIntegrableObject(ii); integrableObject != NULL;  
245             integrableObject = mol->nextIntegrableObject(ii)) {  
246 <        os << prepareDumpLine(integrableObject);
247 <
246 >          os << prepareDumpLine(integrableObject);
247 >          
248        }
249      }    
250      os << "    </StuntDoubles>\n";
251 <
251 >    
252      os << "  </Snapshot>\n";
253  
254      os.flush();
# Line 255 | Line 256 | namespace oopse {
256      //every node prepares the dump lines for integrable objects belong to itself
257      std::string buffer;
258      for (mol = info_->beginMolecule(mi); mol != NULL; mol = info_->nextMolecule(mi)) {
259 <      
259 >
260 >
261        for (integrableObject = mol->beginIntegrableObject(ii); integrableObject != NULL;
262             integrableObject = mol->nextIntegrableObject(ii)) {  
263 <        buffer += prepareDumpLine(integrableObject);
263 >          buffer += prepareDumpLine(integrableObject);
264        }
265      }
266      
# Line 267 | Line 269 | namespace oopse {
269      if (worldRank == masterNode) {      
270        os << "  <Snapshot>\n";  
271        writeFrameProperties(os, info_->getSnapshotManager()->getCurrentSnapshot());
270      os << buffer;    
272        os << "    <StuntDoubles>\n";
273          
274 +      os << buffer;
275 +
276        int nProc;
277        MPI_Comm_size(MPI_COMM_WORLD, &nProc);
278        for (int i = 1; i < nProc; ++i) {
# Line 281 | Line 284 | namespace oopse {
284          MPI_Recv(&recvLength, 1, MPI_INT, i, 0, MPI_COMM_WORLD, &istatus);
285          char* recvBuffer = new char[recvLength];
286          if (recvBuffer == NULL) {
284                        
287          } else {
288 <          MPI_Recv(&recvBuffer, recvLength, MPI_CHAR, i, 0, MPI_COMM_WORLD, &istatus);
288 >          MPI_Recv(recvBuffer, recvLength, MPI_CHAR, i, 0, MPI_COMM_WORLD, &istatus);
289            os << recvBuffer;
290 <          delete recvBuffer;
290 >          delete [] recvBuffer;
291          }
290            
292        }
293        os << "    </StuntDoubles>\n";
294        
295        os << "  </Snapshot>\n";
296        os.flush();
297      } else {
298 <      int sendBufferLength = buffer.size();
298 >      int sendBufferLength = buffer.size() + 1;
299        MPI_Send(&sendBufferLength, 1, MPI_INT, masterNode, 0, MPI_COMM_WORLD);
300 <      MPI_Send((void *)buffer.c_str(), sendBufferLength, MPI_CHAR, masterNode, 0, MPI_COMM_WORLD);                              
300 >      MPI_Send((void *)buffer.c_str(), sendBufferLength, MPI_CHAR, masterNode, 0, MPI_COMM_WORLD);
301      }
302  
303   #endif // is_mpi
# Line 314 | Line 315 | namespace oopse {
315      Vector3d vel;
316      pos = integrableObject->getPos();
317      vel = integrableObject->getVel();          
318 <    sprintf(tempBuffer, "%18.10g\t%18.10g\t%18.10g\t%14.10g\t%14.10g\t%14.10g",
318 >    sprintf(tempBuffer, "%18.10g %18.10g %18.10g %13e %13e %13e",
319              pos[0], pos[1], pos[2],
320              vel[0], vel[1], vel[2]);                    
321      line += tempBuffer;
# Line 325 | Line 326 | namespace oopse {
326        Vector3d ji;
327        q = integrableObject->getQ();
328        ji = integrableObject->getJ();
329 <      sprintf(tempBuffer, "\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g",
329 >      sprintf(tempBuffer, " %13e %13e %13e %13e %13e %13e %13e",
330                q[0], q[1], q[2], q[3],
331                ji[0], ji[1], ji[2]);
332        line += tempBuffer;
# Line 338 | Line 339 | namespace oopse {
339        frc = integrableObject->getFrc();
340        trq = integrableObject->getTrq();
341                
342 <      sprintf(tempBuffer, "\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g",
342 >      sprintf(tempBuffer, " %13e %13e %13e %13e %13e %13e",
343                frc[0], frc[1], frc[2],
344                trq[0], trq[1], trq[2]);
345        line += tempBuffer;
346      }
347          
348 <    sprintf(tempBuffer, "%d\t%s\t%s\n", index, type.c_str(), line.c_str());
348 >    sprintf(tempBuffer, "%10d %7s %s\n", index, type.c_str(), line.c_str());
349      return std::string(tempBuffer);
350    }
351  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines