# | Line 68 | Line 68 | namespace oopse { | |
---|---|---|
68 | namespace oopse { | |
69 | ||
70 | RestReader::RestReader( SimInfo* info ) : info_(info){ | |
71 | < | |
71 | > | |
72 | idealName = "idealCrystal.in"; | |
73 | ||
74 | isScanned = false; | |
# | Line 92 | Line 92 | namespace oopse { | |
92 | "File \"idealCrystal.in\" opened successfully for reading." ); | |
93 | MPIcheckPoint(); | |
94 | #endif | |
95 | + | |
96 | return; | |
97 | } | |
98 | ||
# | Line 225 | Line 226 | namespace oopse { | |
226 | ||
227 | nTotObjs = info_->getNGlobalIntegrableObjects(); | |
228 | haveError = 0; | |
229 | < | |
229 | > | |
230 | if (worldRank == masterNode) { | |
231 | eof_test = fgets(read_buffer, sizeof(read_buffer), inIdealFile); | |
232 | if( eof_test == NULL ){ | |
# | Line 258 | Line 259 | namespace oopse { | |
259 | painCave.isFatal = 1; | |
260 | simError(); | |
261 | } | |
262 | < | |
262 | > | |
263 | for (i=0 ; i < info_->getNGlobalMolecules(); i++) { | |
264 | int which_node = info_->getMolToProc(i); | |
265 | ||
# | Line 269 | Line 270 | namespace oopse { | |
270 | ||
271 | if(mol == NULL) { | |
272 | sprintf(painCave.errMsg, | |
273 | < | "RestReader Error: Molecule not found on node %d!\n", |
274 | < | worldRank); |
273 | > | "RestReader Error: Molecule not found on node %d!\n", |
274 | > | worldRank); |
275 | painCave.isFatal = 1; | |
276 | simError(); | |
277 | } | |
# | Line 290 | Line 291 | namespace oopse { | |
291 | painCave.isFatal = 1; | |
292 | simError(); | |
293 | } | |
294 | < | |
295 | < | parseIdealLine(read_buffer, integrableObjects[j]); |
294 | > | |
295 | > | parseIdealLine(read_buffer, integrableObject); |
296 | > | |
297 | } | |
298 | } else { | |
299 | //molecule belongs to slave nodes | |
# | Line 364 | Line 366 | namespace oopse { | |
366 | ||
367 | char *foo; // the pointer to the current string token | |
368 | ||
369 | < | double pos[3]; // position place holders |
370 | < | double q[4]; // the quaternions |
371 | < | double RfromQ[3][3]; // the rotation matrix |
372 | < | double normalize; // to normalize the reference unit vector |
373 | < | double uX, uY, uZ; // reference unit vector place holders |
374 | < | double uselessToken; |
369 | > | RealType pos[3]; // position place holders |
370 | > | RealType q[4]; // the quaternions |
371 | > | RealType RfromQ[3][3]; // the rotation matrix |
372 | > | RealType normalize; // to normalize the reference unit vector |
373 | > | RealType uX, uY, uZ; // reference unit vector place holders |
374 | > | RealType uselessToken; |
375 | StringTokenizer tokenizer(readLine); | |
376 | int nTokens; | |
377 | ||
378 | nTokens = tokenizer.countTokens(); | |
379 | < | |
379 | > | |
380 | if (nTokens < 14) { | |
381 | sprintf(painCave.errMsg, | |
382 | "RestReader Error: Not enough Tokens.\n"); | |
# | Line 383 | Line 385 | namespace oopse { | |
385 | } | |
386 | ||
387 | std::string name = tokenizer.nextToken(); | |
388 | < | |
388 | > | |
389 | if (name != sd->getType()) { | |
390 | ||
391 | sprintf(painCave.errMsg, | |
# | Line 398 | Line 400 | namespace oopse { | |
400 | pos[0] = tokenizer.nextTokenAsDouble(); | |
401 | pos[1] = tokenizer.nextTokenAsDouble(); | |
402 | pos[2] = tokenizer.nextTokenAsDouble(); | |
403 | < | |
403 | > | |
404 | // store the positions in the stuntdouble as generic data doubles | |
405 | DoubleGenericData* refPosX = new DoubleGenericData(); | |
406 | refPosX->setID("refPosX"); | |
407 | refPosX->setData(pos[0]); | |
408 | sd->addProperty(refPosX); | |
409 | < | |
409 | > | |
410 | DoubleGenericData* refPosY = new DoubleGenericData(); | |
411 | refPosY->setID("refPosY"); | |
412 | refPosY->setData(pos[1]); | |
# | Line 414 | Line 416 | namespace oopse { | |
416 | refPosZ->setID("refPosZ"); | |
417 | refPosZ->setData(pos[2]); | |
418 | sd->addProperty(refPosZ); | |
419 | < | |
419 | > | |
420 | // we don't need the velocities | |
421 | uselessToken = tokenizer.nextTokenAsDouble(); | |
422 | uselessToken = tokenizer.nextTokenAsDouble(); | |
# | Line 490 | Line 492 | namespace oopse { | |
492 | char *parseErr; | |
493 | ||
494 | std::vector<StuntDouble*> vecParticles; | |
495 | < | std::vector<double> tempZangs; |
495 | > | std::vector<RealType> tempZangs; |
496 | ||
497 | inAngFileName = info_->getRestFileName(); | |
498 | ||
# | Line 598 | Line 600 | namespace oopse { | |
600 | int index; | |
601 | ||
602 | int nCurObj; | |
603 | < | double angleTranfer; |
603 | > | RealType angleTranfer; |
604 | ||
605 | nTotObjs = info_->getNGlobalIntegrableObjects(); | |
606 | haveError = 0; | |
# | Line 667 | Line 669 | namespace oopse { | |
669 | ||
670 | for(j=0; j < nCurObj; j++){ | |
671 | angleTransfer = tempZangs[index]; | |
672 | < | MPI_Send(&angleTransfer, 1, MPI_DOUBLE, which_node, |
672 | > | MPI_Send(&angleTransfer, 1, MPI_REALTYPE, which_node, |
673 | TAKE_THIS_TAG_DOUBLE, MPI_COMM_WORLD); | |
674 | index++; | |
675 | } | |
# | Line 702 | Line 704 | namespace oopse { | |
704 | integrableObject != NULL; | |
705 | integrableObject = mol->nextIntegrableObject(ii)){ | |
706 | ||
707 | < | MPI_Recv(&angleTransfer, 1, MPI_DOUBLE, 0, |
707 | > | MPI_Recv(&angleTransfer, 1, MPI_REALTYPE, 0, |
708 | TAKE_THIS_TAG_DOUBLE, MPI_COMM_WORLD, &istatus); | |
709 | ||
710 | integrableObject->setZangle(angleTransfer); | |
# | Line 751 | Line 753 | namespace oopse { | |
753 | MPI_Status istatus; | |
754 | ||
755 | int nCurObj; | |
756 | < | double angleTranfer; |
756 | > | RealType angleTranfer; |
757 | ||
758 | nTotObjs = info_->getNGlobalIntegrableObjects(); | |
759 | haveError = 0; | |
# | Line 787 | Line 789 | namespace oopse { | |
789 | ||
790 | for(j=0; j < nCurObj; j++){ | |
791 | angleTransfer = 0.0; | |
792 | < | MPI_Send(&angleTransfer, 1, MPI_DOUBLE, which_node, |
792 | > | MPI_Send(&angleTransfer, 1, MPI_REALTYPE, which_node, |
793 | TAKE_THIS_TAG_DOUBLE, MPI_COMM_WORLD); | |
794 | ||
795 | } | |
# | Line 820 | Line 822 | namespace oopse { | |
822 | integrableObject != NULL; | |
823 | integrableObject = mol->nextIntegrableObject(ii)){ | |
824 | ||
825 | < | MPI_Recv(&angleTransfer, 1, MPI_DOUBLE, 0, |
825 | > | MPI_Recv(&angleTransfer, 1, MPI_REALTYPE, 0, |
826 | TAKE_THIS_TAG_DOUBLE, MPI_COMM_WORLD, &istatus); | |
827 | vecParticles[j]->setZangle(angleTransfer); | |
828 | } |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |