--- trunk/OOPSE/libmdtools/SimSetup.cpp 2003/08/12 19:56:49 689 +++ trunk/OOPSE/libmdtools/SimSetup.cpp 2003/08/15 19:24:13 699 @@ -98,25 +98,17 @@ void SimSetup::createSim(void){ // gather all of the information from the Bass file - std::cerr << "gathering info\n"; - gatherInfo(); // creation of complex system objects - std::cerr << "creating system objects\n"; - sysObjectsCreation(); // check on the post processing info - - std::cerr << "performing final info check.\n"; finalInfoCheck(); // initialize the system coordinates - - std::cerr << "about to init coords\n"; if( !isInfoArray ) initSystemCoords(); @@ -899,7 +891,6 @@ void SimSetup::initSystemCoords( void ){ char* inName; - std::cerr << "Setting atom Coords\n"; (info[0].getConfiguration())->createArrays( info[0].n_atoms ); @@ -912,6 +903,7 @@ void SimSetup::initSystemCoords( void ){ if( worldRank == 0 ){ #endif //is_mpi inName = globals->getInitialConfig(); + double* tempDouble = new double[1000000]; fileInit = new InitializeFromFile( inName ); #ifdef IS_MPI }else fileInit = new InitializeFromFile( NULL ); @@ -1620,31 +1612,8 @@ void SimSetup::setupZConstraint(SimInfo& theInfo) " , you must set sample time.\n"); painCave.isFatal = 1; simError(); - } - - // - nZConstraints = globals->getNzConstraints(); - zconStamp = globals->getZconStamp(); - ZConsParaItem tempParaItem; - - ZConsParaData* zconsParaData = new ZConsParaData(); - zconsParaData->setID(ZCONSPARADATA_ID); - - for(int i = 0; i < nZConstraints; i++){ - tempParaItem.havingZPos = zconStamp[i]->haveZpos(); - tempParaItem.zPos = zconStamp[i]->getZpos(); - tempParaItem.zconsIndex = zconStamp[i]->getMolIndex(); - tempParaItem.kRatio = zconStamp[i]->getKratio(); - - zconsParaData->addItem(tempParaItem); } - //sort the parameters by index of molecules - zconsParaData->sortByIndex(); - - //push data into siminfo, therefore, we can retrieve later - theInfo.addProperty(zconsParaData); - //push zconsTol into siminfo, if user does not specify //value for zconsTol, a default value will be used DoubleData* zconsTol = new DoubleData(); @@ -1653,7 +1622,7 @@ void SimSetup::setupZConstraint(SimInfo& theInfo) zconsTol->setData(globals->getZconsTol()); } else{ - double defaultZConsTol = 1E-6; + double defaultZConsTol = 0.01; sprintf( painCave.errMsg, "ZConstraint Waring: Tolerance for z-constraint methodl is not specified\n" " , default value %f is used.\n", defaultZConsTol); @@ -1663,7 +1632,25 @@ void SimSetup::setupZConstraint(SimInfo& theInfo) zconsTol->setData(defaultZConsTol); } theInfo.addProperty(zconsTol); + + //set Force Substraction Policy + StringData* zconsForcePolicy = new StringData(); + zconsForcePolicy->setID(ZCONSFORCEPOLICY_ID); + + if(globals->haveZconsForcePolicy()){ + zconsForcePolicy->setData(globals->getZconsForcePolicy()); + } + else{ + sprintf( painCave.errMsg, + "ZConstraint Warning: User does not set force substraction policy, " + "average force substraction policy is used\n"); + painCave.isFatal = 0; + simError(); + zconsForcePolicy->setData("BYNUMBER"); + } + theInfo.addProperty(zconsForcePolicy); + //Determine the name of ouput file and add it into SimInfo's property list //Be careful, do not use inFileName, since it is a pointer which //point to a string at master node, and slave nodes do not contain that string @@ -1676,5 +1663,31 @@ void SimSetup::setupZConstraint(SimInfo& theInfo) zconsFilename->setID(ZCONSFILENAME_ID); zconsFilename->setData(zconsOutput); - theInfo.addProperty(zconsFilename); + theInfo.addProperty(zconsFilename); + + //setup index, pos and other parameters of z-constraint molecules + nZConstraints = globals->getNzConstraints(); + theInfo.nZconstraints = nZConstraints; + + zconStamp = globals->getZconStamp(); + ZConsParaItem tempParaItem; + + ZConsParaData* zconsParaData = new ZConsParaData(); + zconsParaData->setID(ZCONSPARADATA_ID); + + for(int i = 0; i < nZConstraints; i++){ + tempParaItem.havingZPos = zconStamp[i]->haveZpos(); + tempParaItem.zPos = zconStamp[i]->getZpos(); + tempParaItem.zconsIndex = zconStamp[i]->getMolIndex(); + tempParaItem.kRatio = zconStamp[i]->getKratio(); + + zconsParaData->addItem(tempParaItem); + } + + //sort the parameters by index of molecules + zconsParaData->sortByIndex(); + + //push data into siminfo, therefore, we can retrieve later + theInfo.addProperty(zconsParaData); + }