- int nequileft = hypercache::readC();
-
- if ( nequileft != -1 ) {
- if(toEquilibrate) {
- _reset();
- *log << "SIM: Starting equilibration." << endl << flush;
- if (nequileft != nequi)
- *log << "SIM: " << nequileft << " of " << nequi << " equilibration steps left after virtual equilibration." << endl << flush;
- progress equiProg(nequileft);
- for( int iequi=0; iequi<nequileft; iequi++ ) {
- _makeSweep(1);
- while( equiProg.madeStep(iequi) ) *log << "SIM: " << equiProg.done()*100 << "% of equilibration done." << endl << flush;
+ bool readnewconfig;
+ int nequileftReadConfig;
+ bool skippedInEqui = false;
+ bool readNoSingleConfig = true;
+ bool createdNoNewConfigs = true;
+
+ hypercache::readC(readnewconfig, nequileftReadConfig);
+
+ if (readnewconfig) {
+ nequileft = nequileftReadConfig;
+ readNoSingleConfig = false;
+ }
+
+ /* try to find more equilibrated config-file for equilibration including excluded files */
+ if ( nequileft > 0 && hypercache::CFilesLeft() > 0 ) {
+ char *tmpconfig = (char*) malloc(confmemSize);
+
+ while (true) {
+ memcpy (tmpconfig, confMem, confmemSize);
+ hypercache::readC(readnewconfig, nequileftReadConfig);
+
+ if (! readnewconfig) {
+ *log << "SIM: No more excluded config-files for possible equilibration available." << endl << flush;
+ break;
+ }
+
+ if (nequileftReadConfig <= nequileft) {
+ *log << "SIM: Found more equilibrated or same equilibrated excluded config-file configuration for equilibration." << endl << flush;
+ nequileft = nequileftReadConfig;
+ readNoSingleConfig = false;