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

Comparing trunk/src/io/RestWriter.cpp (file contents):
Revision 1442 by gezelter, Mon May 10 17:28:26 2010 UTC vs.
Revision 1969 by gezelter, Wed Feb 26 14:14:50 2014 UTC

# Line 35 | Line 35
35   *                                                                      
36   * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).            
37   * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).          
38 < * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008).          
39 < * [4]  Vardeman & Gezelter, in progress (2009).                        
38 > * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008).          
39 > * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010).
40 > * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011).
41   */
42  
43 + #ifdef IS_MPI
44 + #include <mpi.h>
45 + #endif
46  
47   #include <string>
48   #include <sstream>
# Line 47 | Line 51
51   #include "io/RestWriter.hpp"
52   #include "utils/simError.h"
53   #include "brains/SnapshotManager.hpp"
50 #ifdef IS_MPI
51 #include <mpi.h>
52 #endif
54  
55   namespace OpenMD {
56    RestWriter::RestWriter(SimInfo* info, const std::string& filename,
# Line 77 | Line 78 | namespace OpenMD {
78  
79  
80   #ifdef IS_MPI
81 <    MPI_Status istatus;
81 >    MPI_Status* istatus;
82   #endif
83      
84   #ifndef IS_MPI
# Line 148 | Line 149 | namespace OpenMD {
149        (*output_) << buffer;
150        
151        int nProc;
152 <      MPI_Comm_size(MPI_COMM_WORLD, &nProc);
152 >      MPI_Comm_size( MPI_COMM_WORLD, &nProc);
153 >
154        for (int i = 1; i < nProc; ++i) {
155          
156          // receive the length of the string buffer that was
157          // prepared by processor i
158          
159          int recvLength;
160 <        MPI_Recv(&recvLength, 1, MPI_INT, i, 0, MPI_COMM_WORLD, &istatus);
160 >        MPI_Recv(&recvLength, 1, MPI_INT, i, 0, MPI_COMM_WORLD, istatus);
161          char* recvBuffer = new char[recvLength];
162          if (recvBuffer == NULL) {
163          } else {
164 <          MPI_Recv(recvBuffer, recvLength, MPI_CHAR, i, 0, MPI_COMM_WORLD,
165 <                   &istatus);
164 >          MPI_Recv(recvBuffer, recvLength, MPI_CHAR, i, 0, MPI_COMM_WORLD,
165 >                   istatus);
166            (*output_) << recvBuffer;
167            delete [] recvBuffer;
168          }
# Line 169 | Line 171 | namespace OpenMD {
171      } else {
172        int sendBufferLength = buffer.size() + 1;
173        MPI_Send(&sendBufferLength, 1, MPI_INT, masterNode, 0, MPI_COMM_WORLD);
174 <      MPI_Send((void *)buffer.c_str(), sendBufferLength, MPI_CHAR, masterNode,
175 <               0, MPI_COMM_WORLD);
174 >      MPI_Send((void *)buffer.c_str(), sendBufferLength, MPI_CHAR,
175 >               masterNode, 0, MPI_COMM_WORLD);
176      }
177      
178   #endif // is_mpi    
# Line 180 | Line 182 | namespace OpenMD {
182    void RestWriter::writeRest(std::vector<std::map<int, Restraint::RealPair> > restInfo) {
183      
184   #ifdef IS_MPI
185 <    MPI_Status istatus;
185 >    MPI_Status* istatus;
186   #endif
187      
188   #ifndef IS_MPI
# Line 224 | Line 226 | namespace OpenMD {
226        (*output_) << buffer;
227        
228        int nProc;
229 <      MPI_Comm_size(MPI_COMM_WORLD, &nProc);
229 >      MPI_Comm_size( MPI_COMM_WORLD, &nProc);
230        for (int i = 1; i < nProc; ++i) {
231          
232          // receive the length of the string buffer that was
233          // prepared by processor i
234          
235          int recvLength;
236 <        MPI_Recv(&recvLength, 1, MPI_INT, i, 0, MPI_COMM_WORLD, &istatus);
236 >        MPI_Recv(&recvLength, 1, MPI_INT, i, 0, MPI_COMM_WORLD, istatus);
237          char* recvBuffer = new char[recvLength];
238          if (recvBuffer == NULL) {
239          } else {
240 <          MPI_Recv(recvBuffer, recvLength, MPI_CHAR, i, 0, MPI_COMM_WORLD,
241 <                   &istatus);
240 >          MPI_Recv(recvBuffer, recvLength, MPI_CHAR, i, 0, MPI_COMM_WORLD,
241 >                   istatus);
242            (*output_) << recvBuffer;
243            
244            delete [] recvBuffer;
# Line 246 | Line 248 | namespace OpenMD {
248      } else {
249        int sendBufferLength = buffer.size() + 1;
250        MPI_Send(&sendBufferLength, 1, MPI_INT, masterNode, 0, MPI_COMM_WORLD);
251 <      MPI_Send((void *)buffer.c_str(), sendBufferLength, MPI_CHAR, masterNode,
252 <               0, MPI_COMM_WORLD);
251 >      MPI_Send((void *)buffer.c_str(), sendBufferLength,
252 >               MPI_CHAR, masterNode, 0, MPI_COMM_WORLD);
253      }
254   #endif // is_mpi
255    }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines