--- trunk/OOPSE/libmdtools/SimSetup.cpp 2003/08/28 21:09:47 736 +++ branches/new-templateless/OOPSE/libmdtools/SimSetup.cpp 2003/11/05 19:18:17 851 @@ -1,8 +1,7 @@ -#include -#include +#include #include -#include -#include +#include +#include #include #include "SimSetup.hpp" @@ -22,9 +21,9 @@ #define NVT_ENS 1 #define NPTi_ENS 2 #define NPTf_ENS 3 -#define NPTim_ENS 4 -#define NPTfm_ENS 5 +#define NPTxyz_ENS 4 + #define FF_DUFF 0 #define FF_LJ 1 #define FF_EAM 2 @@ -32,6 +31,8 @@ SimSetup::SimSetup(){ using namespace std; SimSetup::SimSetup(){ + + initSuspend = false; isInfoArray = 0; nInfo = 1; @@ -54,6 +55,7 @@ void SimSetup::setSimInfo(SimInfo* the_info, int theNi info = the_info; nInfo = theNinfo; isInfoArray = 1; + initSuspend = true; } @@ -92,7 +94,6 @@ void SimSetup::createSim(void){ #endif // is_mpi void SimSetup::createSim(void){ - int i, j, k, globalAtomIndex; // gather all of the information from the Bass file @@ -102,16 +103,19 @@ void SimSetup::createSim(void){ sysObjectsCreation(); - // check on the post processing info - - finalInfoCheck(); - // initialize the system coordinates - if (!isInfoArray){ + if ( !initSuspend ){ initSystemCoords(); + + if( !(globals->getUseInitTime()) ) + info[0].currentTime = 0.0; } + // check on the post processing info + + finalInfoCheck(); + // make the output filenames makeOutNames(); @@ -131,7 +135,7 @@ void SimSetup::makeMolecules(void){ void SimSetup::makeMolecules(void){ - int k, l; + int k; int i, j, exI, exJ, tempEx, stampID, atomOffset, excludeOffset; molInit molInfo; DirectionalAtom* dAtom; @@ -553,7 +557,7 @@ void SimSetup::gatherInfo(void){ void SimSetup::gatherInfo(void){ - int i, j, k; + int i; ensembleCase = -1; ffCase = -1; @@ -604,12 +608,9 @@ void SimSetup::gatherInfo(void){ else if (!strcasecmp(ensemble, "NPTf")){ ensembleCase = NPTf_ENS; } - else if (!strcasecmp(ensemble, "NPTim")){ - ensembleCase = NPTim_ENS; + else if (!strcasecmp(ensemble, "NPTxyz")){ + ensembleCase = NPTxyz_ENS; } - else if (!strcasecmp(ensemble, "NPTfm")){ - ensembleCase = NPTfm_ENS; - } else{ sprintf(painCave.errMsg, "SimSetup Warning. Unrecognized Ensemble -> %s, " @@ -688,59 +689,19 @@ void SimSetup::gatherInfo(void){ info[i].thermalTime = globals->getThermalTime(); } - // check for the temperature set flag + info[i].resetIntegrator = 0; + if( globals->haveResetTime() ){ + info[i].resetTime = globals->getResetTime(); + info[i].resetIntegrator = 1; + } + // check for the temperature set flag + if (globals->haveTempSet()) info[i].setTemp = globals->getTempSet(); - - // get some of the tricky things that may still be in the globals - - double boxVector[3]; - if (globals->haveBox()){ - boxVector[0] = globals->getBox(); - boxVector[1] = globals->getBox(); - boxVector[2] = globals->getBox(); - - info[i].setBox(boxVector); - } - else if (globals->haveDensity()){ - double vol; - vol = (double) tot_nmol / globals->getDensity(); - boxVector[0] = pow(vol, (1.0 / 3.0)); - boxVector[1] = boxVector[0]; - boxVector[2] = boxVector[0]; - - info[i].setBox(boxVector); - } - else{ - if (!globals->haveBoxX()){ - sprintf(painCave.errMsg, - "SimSetup error, no periodic BoxX size given.\n"); - painCave.isFatal = 1; - simError(); - } - boxVector[0] = globals->getBoxX(); - - if (!globals->haveBoxY()){ - sprintf(painCave.errMsg, - "SimSetup error, no periodic BoxY size given.\n"); - painCave.isFatal = 1; - simError(); - } - boxVector[1] = globals->getBoxY(); - - if (!globals->haveBoxZ()){ - sprintf(painCave.errMsg, - "SimSetup error, no periodic BoxZ size given.\n"); - painCave.isFatal = 1; - simError(); - } - boxVector[2] = globals->getBoxZ(); - - info[i].setBox(boxVector); - } + } - + //setup seed for random number generator int seedValue; @@ -844,7 +805,7 @@ void SimSetup::finalInfoCheck(void){ theEst = globals->getEST(); } - info[i].setEcr(theEcr, theEst); + info[i].setDefaultEcr(theEcr, theEst); if (!globals->haveDielectric()){ sprintf(painCave.errMsg, @@ -889,9 +850,10 @@ void SimSetup::finalInfoCheck(void){ theEst = globals->getEST(); } - info[i].setEcr(theEcr, theEst); + info[i].setDefaultEcr(theEcr, theEst); } } + info[i].checkCutOffs(); } #ifdef IS_MPI @@ -916,7 +878,6 @@ 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 } @@ -934,7 +895,7 @@ void SimSetup::initSystemCoords(void){ sprintf(painCave.errMsg, "Cannot intialize a parallel simulation without an initial configuration file.\n"); - painCave.isFatal; + painCave.isFatal = 1;; simError(); #else @@ -1160,7 +1121,7 @@ void SimSetup::calcSysValues(void){ } void SimSetup::calcSysValues(void){ - int i, j, k; + int i; int* molMembershipArray; @@ -1259,7 +1220,11 @@ void SimSetup::makeSysArrays(void){ void SimSetup::makeSysArrays(void){ - int i, j, k, l; + +#ifndef IS_MPI + int k, j; +#endif // is_mpi + int i, l; Atom** the_atoms; Molecule* the_molecules; @@ -1342,213 +1307,201 @@ void SimSetup::makeIntegrator(void){ void SimSetup::makeIntegrator(void){ int k; - NVT* myNVT = NULL; - NPTi* myNPTi = NULL; - NPTf* myNPTf = NULL; - NPTim* myNPTim = NULL; - NPTfm* myNPTfm = NULL; + NVE* myNVE = NULL; + NVT* myNVT = NULL; + NPTi* myNPTi = NULL; + NPTf* myNPTf = NULL; + NPTxyz* myNPTxyz = NULL; for (k = 0; k < nInfo; k++){ switch (ensembleCase){ - case NVE_ENS: - if (globals->haveZconstraints()){ - setupZConstraint(info[k]); - new ZConstraint >(&(info[k]), the_ff); - } - else - new NVE(&(info[k]), the_ff); - break; - - case NVT_ENS: - if (globals->haveZconstraints()){ - setupZConstraint(info[k]); - myNVT = new ZConstraint >(&(info[k]), the_ff); - } - else - myNVT = new NVT(&(info[k]), the_ff); - - myNVT->setTargetTemp(globals->getTargetTemp()); - - if (globals->haveTauThermostat()) - myNVT->setTauThermostat(globals->getTauThermostat()); - else{ - sprintf(painCave.errMsg, - "SimSetup error: If you use the NVT\n" - " ensemble, you must set tauThermostat.\n"); - painCave.isFatal = 1; - simError(); - } - break; - - case NPTi_ENS: - if (globals->haveZconstraints()){ - setupZConstraint(info[k]); - myNPTi = new ZConstraint >(&(info[k]), the_ff); - } - else - myNPTi = new NPTi(&(info[k]), the_ff); - - myNPTi->setTargetTemp(globals->getTargetTemp()); - - if (globals->haveTargetPressure()) - myNPTi->setTargetPressure(globals->getTargetPressure()); - else{ - sprintf(painCave.errMsg, - "SimSetup error: If you use a constant pressure\n" - " ensemble, you must set targetPressure in the BASS file.\n"); - painCave.isFatal = 1; - simError(); - } + case NVE_ENS: + if (globals->haveZconstraints()){ + + std::cerr << "ZConstraint is temporarily disabled\n"; + + // setupZConstraint(info[k]); + // myNVE = new ZConstraint >(&(info[k]), the_ff); + } + + // else{ + myNVE = new NVE(&(info[k]), the_ff); + // } + + info->the_integrator = myNVE; + break; + + case NVT_ENS: + if (globals->haveZconstraints()){ + + std::cerr << "ZConstraint is temporarily disabled\n"; + + // setupZConstraint(info[k]); + // myNVT = new ZConstraint >(&(info[k]), the_ff); + } + // else + myNVT = new NVT(&(info[k]), the_ff); + + myNVT->setTargetTemp(globals->getTargetTemp()); + + if (globals->haveTauThermostat()) + myNVT->setTauThermostat(globals->getTauThermostat()); + else{ + sprintf(painCave.errMsg, + "SimSetup error: If you use the NVT\n" + " ensemble, you must set tauThermostat.\n"); + painCave.isFatal = 1; + simError(); + } + + info->the_integrator = myNVT; + break; + + case NPTi_ENS: + if (globals->haveZconstraints()){ + + std::cerr << "ZConstraint is temporarily disabled\n"; + + // setupZConstraint(info[k]); + // myNPTi = new ZConstraint > >(&(info[k]), the_ff); + } + // else + myNPTi = new NPTi(&(info[k]), the_ff); + + myNPTi->setTargetTemp(globals->getTargetTemp()); + + if (globals->haveTargetPressure()) + myNPTi->setTargetPressure(globals->getTargetPressure()); + else{ + sprintf(painCave.errMsg, + "SimSetup error: If you use a constant pressure\n" + " ensemble, you must set targetPressure in the BASS file.\n"); + painCave.isFatal = 1; + simError(); + } + + if (globals->haveTauThermostat()) + myNPTi->setTauThermostat(globals->getTauThermostat()); + else{ + sprintf(painCave.errMsg, + "SimSetup error: If you use an NPT\n" + " ensemble, you must set tauThermostat.\n"); + painCave.isFatal = 1; + simError(); + } + + if (globals->haveTauBarostat()) + myNPTi->setTauBarostat(globals->getTauBarostat()); + else{ + sprintf(painCave.errMsg, + "SimSetup error: If you use an NPT\n" + " ensemble, you must set tauBarostat.\n"); + painCave.isFatal = 1; + simError(); + } + + info->the_integrator = myNPTi; + break; + + case NPTf_ENS: + if (globals->haveZconstraints()){ - if (globals->haveTauThermostat()) - myNPTi->setTauThermostat(globals->getTauThermostat()); - else{ - sprintf(painCave.errMsg, - "SimSetup error: If you use an NPT\n" - " ensemble, you must set tauThermostat.\n"); - painCave.isFatal = 1; - simError(); - } + std::cerr << "ZConstraint is temporarily disabled\n"; - if (globals->haveTauBarostat()) - myNPTi->setTauBarostat(globals->getTauBarostat()); - else{ - sprintf(painCave.errMsg, - "SimSetup error: If you use an NPT\n" - " ensemble, you must set tauBarostat.\n"); - painCave.isFatal = 1; - simError(); - } - break; - - case NPTf_ENS: - if (globals->haveZconstraints()){ - setupZConstraint(info[k]); - myNPTf = new ZConstraint >(&(info[k]), the_ff); - } - else - myNPTf = new NPTf(&(info[k]), the_ff); - - myNPTf->setTargetTemp(globals->getTargetTemp()); - - if (globals->haveTargetPressure()) - myNPTf->setTargetPressure(globals->getTargetPressure()); - else{ - sprintf(painCave.errMsg, - "SimSetup error: If you use a constant pressure\n" - " ensemble, you must set targetPressure in the BASS file.\n"); - painCave.isFatal = 1; - simError(); - } - - if (globals->haveTauThermostat()) - myNPTf->setTauThermostat(globals->getTauThermostat()); - else{ - sprintf(painCave.errMsg, - "SimSetup error: If you use an NPT\n" - " ensemble, you must set tauThermostat.\n"); - painCave.isFatal = 1; - simError(); - } - - if (globals->haveTauBarostat()) - myNPTf->setTauBarostat(globals->getTauBarostat()); - else{ - sprintf(painCave.errMsg, - "SimSetup error: If you use an NPT\n" - " ensemble, you must set tauBarostat.\n"); - painCave.isFatal = 1; - simError(); - } - break; - - case NPTim_ENS: - if (globals->haveZconstraints()){ - setupZConstraint(info[k]); - myNPTim = new ZConstraint >(&(info[k]), the_ff); - } - else - myNPTim = new NPTim(&(info[k]), the_ff); - - myNPTim->setTargetTemp(globals->getTargetTemp()); - - if (globals->haveTargetPressure()) - myNPTim->setTargetPressure(globals->getTargetPressure()); - else{ - sprintf(painCave.errMsg, - "SimSetup error: If you use a constant pressure\n" - " ensemble, you must set targetPressure in the BASS file.\n"); - painCave.isFatal = 1; - simError(); - } - - if (globals->haveTauThermostat()) - myNPTim->setTauThermostat(globals->getTauThermostat()); - else{ - sprintf(painCave.errMsg, - "SimSetup error: If you use an NPT\n" - " ensemble, you must set tauThermostat.\n"); - painCave.isFatal = 1; - simError(); - } +// setupZConstraint(info[k]); +// myNPTf = new ZConstraint > >(&(info[k]), the_ff); + } +// else + myNPTf = new NPTf(&(info[k]), the_ff); + + myNPTf->setTargetTemp(globals->getTargetTemp()); + + if (globals->haveTargetPressure()) + myNPTf->setTargetPressure(globals->getTargetPressure()); + else{ + sprintf(painCave.errMsg, + "SimSetup error: If you use a constant pressure\n" + " ensemble, you must set targetPressure in the BASS file.\n"); + painCave.isFatal = 1; + simError(); + } + + if (globals->haveTauThermostat()) + myNPTf->setTauThermostat(globals->getTauThermostat()); + + else{ + sprintf(painCave.errMsg, + "SimSetup error: If you use an NPT\n" + " ensemble, you must set tauThermostat.\n"); + painCave.isFatal = 1; + simError(); + } + + if (globals->haveTauBarostat()) + myNPTf->setTauBarostat(globals->getTauBarostat()); + + else{ + sprintf(painCave.errMsg, + "SimSetup error: If you use an NPT\n" + " ensemble, you must set tauBarostat.\n"); + painCave.isFatal = 1; + simError(); + } + + info->the_integrator = myNPTf; + break; + + case NPTxyz_ENS: + if (globals->haveZconstraints()){ + + std::cerr << "ZConstraint is temporarily disabled\n"; + + // setupZConstraint(info[k]); + // myNPTxyz = new ZConstraint > >(&(info[k]), the_ff); + } +// else + myNPTxyz = new NPTxyz(&(info[k]), the_ff); - if (globals->haveTauBarostat()) - myNPTim->setTauBarostat(globals->getTauBarostat()); - else{ - sprintf(painCave.errMsg, - "SimSetup error: If you use an NPT\n" - " ensemble, you must set tauBarostat.\n"); - painCave.isFatal = 1; - simError(); - } - break; - - case NPTfm_ENS: - if (globals->haveZconstraints()){ - setupZConstraint(info[k]); - myNPTfm = new ZConstraint >(&(info[k]), the_ff); - } - else - myNPTfm = new NPTfm(&(info[k]), the_ff); - - myNPTfm->setTargetTemp(globals->getTargetTemp()); - - if (globals->haveTargetPressure()) - myNPTfm->setTargetPressure(globals->getTargetPressure()); - else{ - sprintf(painCave.errMsg, - "SimSetup error: If you use a constant pressure\n" - " ensemble, you must set targetPressure in the BASS file.\n"); - painCave.isFatal = 1; - simError(); - } - - if (globals->haveTauThermostat()) - myNPTfm->setTauThermostat(globals->getTauThermostat()); - else{ - sprintf(painCave.errMsg, - "SimSetup error: If you use an NPT\n" - " ensemble, you must set tauThermostat.\n"); - painCave.isFatal = 1; - simError(); - } - - if (globals->haveTauBarostat()) - myNPTfm->setTauBarostat(globals->getTauBarostat()); - else{ - sprintf(painCave.errMsg, - "SimSetup error: If you use an NPT\n" - " ensemble, you must set tauBarostat.\n"); - painCave.isFatal = 1; - simError(); - } - break; - - default: - sprintf(painCave.errMsg, - "SimSetup Error. Unrecognized ensemble in case statement.\n"); - painCave.isFatal = 1; - simError(); + myNPTxyz->setTargetTemp(globals->getTargetTemp()); + + if (globals->haveTargetPressure()) + myNPTxyz->setTargetPressure(globals->getTargetPressure()); + else{ + sprintf(painCave.errMsg, + "SimSetup error: If you use a constant pressure\n" + " ensemble, you must set targetPressure in the BASS file.\n"); + painCave.isFatal = 1; + simError(); + } + + if (globals->haveTauThermostat()) + myNPTxyz->setTauThermostat(globals->getTauThermostat()); + else{ + sprintf(painCave.errMsg, + "SimSetup error: If you use an NPT\n" + " ensemble, you must set tauThermostat.\n"); + painCave.isFatal = 1; + simError(); + } + + if (globals->haveTauBarostat()) + myNPTxyz->setTauBarostat(globals->getTauBarostat()); + else{ + sprintf(painCave.errMsg, + "SimSetup error: If you use an NPT\n" + " ensemble, you must set tauBarostat.\n"); + painCave.isFatal = 1; + simError(); + } + + info->the_integrator = myNPTxyz; + break; + + default: + sprintf(painCave.errMsg, + "SimSetup Error. Unrecognized ensemble in case statement.\n"); + painCave.isFatal = 1; + simError(); } } } @@ -1576,107 +1529,107 @@ void SimSetup::initFortran(void){ #endif // is_mpi } -void SimSetup::setupZConstraint(SimInfo& theInfo){ - int nZConstraints; - ZconStamp** zconStamp; +// void SimSetup::setupZConstraint(SimInfo& theInfo){ +// int nZConstraints; +// ZconStamp** zconStamp; - if (globals->haveZconstraintTime()){ - //add sample time of z-constraint into SimInfo's property list - DoubleData* zconsTimeProp = new DoubleData(); - zconsTimeProp->setID(ZCONSTIME_ID); - zconsTimeProp->setData(globals->getZconsTime()); - theInfo.addProperty(zconsTimeProp); - } - else{ - sprintf(painCave.errMsg, - "ZConstraint error: If you use an ZConstraint\n" - " , you must set sample time.\n"); - painCave.isFatal = 1; - simError(); - } +// if (globals->haveZconstraintTime()){ +// //add sample time of z-constraint into SimInfo's property list +// DoubleData* zconsTimeProp = new DoubleData(); +// zconsTimeProp->setID(ZCONSTIME_ID); +// zconsTimeProp->setData(globals->getZconsTime()); +// theInfo.addProperty(zconsTimeProp); +// } +// else{ +// sprintf(painCave.errMsg, +// "ZConstraint error: If you use an ZConstraint\n" +// " , you must set sample time.\n"); +// painCave.isFatal = 1; +// simError(); +// } - //push zconsTol into siminfo, if user does not specify - //value for zconsTol, a default value will be used - DoubleData* zconsTol = new DoubleData(); - zconsTol->setID(ZCONSTOL_ID); - if (globals->haveZconsTol()){ - zconsTol->setData(globals->getZconsTol()); - } - else{ - 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); - painCave.isFatal = 0; - simError(); +// //push zconsTol into siminfo, if user does not specify +// //value for zconsTol, a default value will be used +// DoubleData* zconsTol = new DoubleData(); +// zconsTol->setID(ZCONSTOL_ID); +// if (globals->haveZconsTol()){ +// zconsTol->setData(globals->getZconsTol()); +// } +// else{ +// 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); +// painCave.isFatal = 0; +// simError(); - zconsTol->setData(defaultZConsTol); - } - theInfo.addProperty(zconsTol); +// zconsTol->setData(defaultZConsTol); +// } +// theInfo.addProperty(zconsTol); - //set Force Substraction Policy - StringData* zconsForcePolicy = new StringData(); - zconsForcePolicy->setID(ZCONSFORCEPOLICY_ID); +// //set Force Subtraction 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, " - "PolicyByMass is used\n"); - painCave.isFatal = 0; - simError(); - zconsForcePolicy->setData("BYMASS"); - } +// if (globals->haveZconsForcePolicy()){ +// zconsForcePolicy->setData(globals->getZconsForcePolicy()); +// } +// else{ +// sprintf(painCave.errMsg, +// "ZConstraint Warning: User does not set force Subtraction policy, " +// "PolicyByMass is used\n"); +// painCave.isFatal = 0; +// simError(); +// zconsForcePolicy->setData("BYMASS"); +// } - theInfo.addProperty(zconsForcePolicy); +// 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 +// //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 - string zconsOutput(theInfo.finalName); +// string zconsOutput(theInfo.finalName); - zconsOutput = zconsOutput.substr(0, zconsOutput.rfind(".")) + ".fz"; +// zconsOutput = zconsOutput.substr(0, zconsOutput.rfind(".")) + ".fz"; - StringData* zconsFilename = new StringData(); - zconsFilename->setID(ZCONSFILENAME_ID); - zconsFilename->setData(zconsOutput); +// StringData* zconsFilename = new StringData(); +// 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; +// //setup index, pos and other parameters of z-constraint molecules +// nZConstraints = globals->getNzConstraints(); +// theInfo.nZconstraints = nZConstraints; - zconStamp = globals->getZconStamp(); - ZConsParaItem tempParaItem; +// zconStamp = globals->getZconStamp(); +// ZConsParaItem tempParaItem; - ZConsParaData* zconsParaData = new ZConsParaData(); - zconsParaData->setID(ZCONSPARADATA_ID); +// 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(); +// 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); - } +// zconsParaData->addItem(tempParaItem); +// } - //check the uniqueness of index - if(!zconsParaData->isIndexUnique()){ - sprintf(painCave.errMsg, - "ZConstraint Error: molIndex is not unique\n"); - painCave.isFatal = 1; - simError(); - } +// //check the uniqueness of index +// if(!zconsParaData->isIndexUnique()){ +// sprintf(painCave.errMsg, +// "ZConstraint Error: molIndex is not unique\n"); +// painCave.isFatal = 1; +// simError(); +// } - //sort the parameters by index of molecules - zconsParaData->sortByIndex(); +// //sort the parameters by index of molecules +// zconsParaData->sortByIndex(); - //push data into siminfo, therefore, we can retrieve later - theInfo.addProperty(zconsParaData); -} +// //push data into siminfo, therefore, we can retrieve later +// theInfo.addProperty(zconsParaData); +// }