--- trunk/src/io/RestReader.cpp 2005/03/10 19:11:02 423 +++ trunk/src/io/RestReader.cpp 2006/06/07 18:05:19 985 @@ -68,7 +68,7 @@ namespace oopse { namespace oopse { RestReader::RestReader( SimInfo* info ) : info_(info){ - + idealName = "idealCrystal.in"; isScanned = false; @@ -92,6 +92,7 @@ namespace oopse { "File \"idealCrystal.in\" opened successfully for reading." ); MPIcheckPoint(); #endif + return; } @@ -225,7 +226,7 @@ namespace oopse { nTotObjs = info_->getNGlobalIntegrableObjects(); haveError = 0; - + if (worldRank == masterNode) { eof_test = fgets(read_buffer, sizeof(read_buffer), inIdealFile); if( eof_test == NULL ){ @@ -258,7 +259,7 @@ namespace oopse { painCave.isFatal = 1; simError(); } - + for (i=0 ; i < info_->getNGlobalMolecules(); i++) { int which_node = info_->getMolToProc(i); @@ -269,8 +270,8 @@ namespace oopse { if(mol == NULL) { sprintf(painCave.errMsg, - "RestReader Error: Molecule not found on node %d!\n", - worldRank); + "RestReader Error: Molecule not found on node %d!\n", + worldRank); painCave.isFatal = 1; simError(); } @@ -290,8 +291,9 @@ namespace oopse { painCave.isFatal = 1; simError(); } - - parseIdealLine(read_buffer, integrableObjects[j]); + + parseIdealLine(read_buffer, integrableObject); + } } else { //molecule belongs to slave nodes @@ -364,17 +366,17 @@ namespace oopse { char *foo; // the pointer to the current string token - double pos[3]; // position place holders - double q[4]; // the quaternions - double RfromQ[3][3]; // the rotation matrix - double normalize; // to normalize the reference unit vector - double uX, uY, uZ; // reference unit vector place holders - double uselessToken; + RealType pos[3]; // position place holders + RealType q[4]; // the quaternions + RealType RfromQ[3][3]; // the rotation matrix + RealType normalize; // to normalize the reference unit vector + RealType uX, uY, uZ; // reference unit vector place holders + RealType uselessToken; StringTokenizer tokenizer(readLine); int nTokens; nTokens = tokenizer.countTokens(); - + if (nTokens < 14) { sprintf(painCave.errMsg, "RestReader Error: Not enough Tokens.\n"); @@ -383,7 +385,7 @@ namespace oopse { } std::string name = tokenizer.nextToken(); - + if (name != sd->getType()) { sprintf(painCave.errMsg, @@ -398,13 +400,13 @@ namespace oopse { pos[0] = tokenizer.nextTokenAsDouble(); pos[1] = tokenizer.nextTokenAsDouble(); pos[2] = tokenizer.nextTokenAsDouble(); - + // store the positions in the stuntdouble as generic data doubles DoubleGenericData* refPosX = new DoubleGenericData(); refPosX->setID("refPosX"); refPosX->setData(pos[0]); sd->addProperty(refPosX); - + DoubleGenericData* refPosY = new DoubleGenericData(); refPosY->setID("refPosY"); refPosY->setData(pos[1]); @@ -414,7 +416,7 @@ namespace oopse { refPosZ->setID("refPosZ"); refPosZ->setData(pos[2]); sd->addProperty(refPosZ); - + // we don't need the velocities uselessToken = tokenizer.nextTokenAsDouble(); uselessToken = tokenizer.nextTokenAsDouble(); @@ -490,7 +492,7 @@ namespace oopse { char *parseErr; std::vector vecParticles; - std::vector tempZangs; + std::vector tempZangs; inAngFileName = info_->getRestFileName(); @@ -598,7 +600,7 @@ namespace oopse { int index; int nCurObj; - double angleTranfer; + RealType angleTranfer; nTotObjs = info_->getNGlobalIntegrableObjects(); haveError = 0; @@ -642,15 +644,15 @@ namespace oopse { // Get the Node number which has this atom which_node = info_->getMolToProc(i); - if (worldRank == masterNode) { + if (which_node == masterNode) { mol = info_->getMoleculeByGlobalIndex(i); - + if(mol == NULL) { strcpy(painCave.errMsg, "Molecule not found on node 0!"); haveError = 1; simError(); } - + for (integrableObject = mol->beginIntegrableObject(ii); integrableObject != NULL; integrableObject = mol->nextIntegrableObject(ii)){ @@ -667,7 +669,7 @@ namespace oopse { for(j=0; j < nCurObj; j++){ angleTransfer = tempZangs[index]; - MPI_Send(&angleTransfer, 1, MPI_DOUBLE, which_node, + MPI_Send(&angleTransfer, 1, MPI_REALTYPE, which_node, TAKE_THIS_TAG_DOUBLE, MPI_COMM_WORLD); index++; } @@ -702,7 +704,7 @@ namespace oopse { integrableObject != NULL; integrableObject = mol->nextIntegrableObject(ii)){ - MPI_Recv(&angleTransfer, 1, MPI_DOUBLE, 0, + MPI_Recv(&angleTransfer, 1, MPI_REALTYPE, 0, TAKE_THIS_TAG_DOUBLE, MPI_COMM_WORLD, &istatus); integrableObject->setZangle(angleTransfer); @@ -751,7 +753,7 @@ namespace oopse { MPI_Status istatus; int nCurObj; - double angleTranfer; + RealType angleTranfer; nTotObjs = info_->getNGlobalIntegrableObjects(); haveError = 0; @@ -787,7 +789,7 @@ namespace oopse { for(j=0; j < nCurObj; j++){ angleTransfer = 0.0; - MPI_Send(&angleTransfer, 1, MPI_DOUBLE, which_node, + MPI_Send(&angleTransfer, 1, MPI_REALTYPE, which_node, TAKE_THIS_TAG_DOUBLE, MPI_COMM_WORLD); } @@ -820,7 +822,7 @@ namespace oopse { integrableObject != NULL; integrableObject = mol->nextIntegrableObject(ii)){ - MPI_Recv(&angleTransfer, 1, MPI_DOUBLE, 0, + MPI_Recv(&angleTransfer, 1, MPI_REALTYPE, 0, TAKE_THIS_TAG_DOUBLE, MPI_COMM_WORLD, &istatus); vecParticles[j]->setZangle(angleTransfer); }