# | Line 70 | Line 70 | namespace oopse { | |
---|---|---|
70 | namespace oopse { | |
71 | ||
72 | DumpReader::DumpReader(SimInfo* info, const std::string& filename) | |
73 | < | : info_(info), filename_(filename), isScanned_(false), nframes_(0) { |
73 | > | : info_(info), filename_(filename), isScanned_(false), nframes_(0), needCOMprops_(false) { |
74 | ||
75 | #ifdef IS_MPI | |
76 | ||
# | Line 92 | Line 92 | namespace oopse { | |
92 | } | |
93 | ||
94 | strcpy(checkPointMsg, "Dump file opened for reading successfully."); | |
95 | < | MPIcheckPoint(); |
95 | > | errorCheckPoint(); |
96 | ||
97 | #endif | |
98 | ||
# | Line 113 | Line 113 | namespace oopse { | |
113 | } | |
114 | ||
115 | strcpy(checkPointMsg, "Dump file closed successfully."); | |
116 | < | MPIcheckPoint(); |
116 | > | errorCheckPoint(); |
117 | ||
118 | #endif | |
119 | ||
# | Line 240 | Line 240 | namespace oopse { | |
240 | } | |
241 | ||
242 | readSet(whichFrame); | |
243 | + | |
244 | + | if (needCOMprops_) { |
245 | + | Snapshot* s = info_->getSnapshotManager()->getCurrentSnapshot(); |
246 | + | Vector3d com; |
247 | + | Vector3d comvel; |
248 | + | Vector3d comw; |
249 | + | if (needPos_ && needVel_){ |
250 | + | info_->getComAll(com, comvel); |
251 | + | comw = info_->getAngularMomentum(); |
252 | + | }else{ |
253 | + | com = info_->getCom(); |
254 | + | comvel = 0.0; |
255 | + | comw = 0.0; |
256 | + | } |
257 | + | s->setCOMprops(com, comvel, comw); |
258 | + | } |
259 | + | |
260 | } | |
261 | ||
262 | void DumpReader::readSet(int whichFrame) { | |
263 | std::string line; | |
264 | ||
265 | #ifndef IS_MPI | |
249 | – | |
266 | inFile_->clear(); | |
267 | inFile_->seekg(framePos_[whichFrame]); | |
268 | ||
# | Line 280 | Line 296 | namespace oopse { | |
296 | int sendBufferSize; | |
297 | MPI_Bcast(&sendBufferSize, 1, MPI_INT, masterNode, MPI_COMM_WORLD); | |
298 | char * recvBuffer = new char[sendBufferSize+1]; | |
299 | + | assert(recvBuffer); |
300 | + | recvBuffer[sendBufferSize] = '\0'; |
301 | MPI_Bcast(recvBuffer, sendBufferSize, MPI_CHAR, masterNode, MPI_COMM_WORLD); | |
302 | sstream.str(recvBuffer); | |
303 | + | delete [] recvBuffer; |
304 | } | |
305 | ||
306 | std::istream& inputStream = sstream; | |
# | Line 338 | Line 357 | namespace oopse { | |
357 | } | |
358 | std::string type = tokenizer.nextToken(); | |
359 | int size = type.size(); | |
360 | + | |
361 | for(int i = 0; i < size; ++i) { | |
362 | switch(type[i]) { | |
363 | ||
# | Line 398 | Line 418 | namespace oopse { | |
418 | integrableObject->setJ(ji); | |
419 | } | |
420 | } | |
421 | + | break; |
422 | } | |
423 | case 'f': { | |
424 |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |