NBodyStatus nbRunSystemPlain(const NBodyCtx* ctx, NBodyState* st) { NBodyStatus rc = NBODY_SUCCESS; // rc |= nbGravMap(ctx, st); /* Calculate accelerations for 1st step this episode */ if (nbStatusIsFatal(rc)) return rc; #ifdef NBODY_BLENDER_OUTPUT mkdir("./frames", S_IRWXU | S_IRWXG); deleteOldFiles(st); mwvector startCmPos; mwvector perpendicularCmPos; mwvector nextCmPos; nbFindCenterOfMass(&startCmPos, st); perpendicularCmPos=startCmPos; printf("Total frames: %d\n", (int)(ctx->nStep)); #endif while (st->step < ctx->nStep) { #ifdef NBODY_BLENDER_OUTPUT nbFindCenterOfMass(&nextCmPos, st); blenderPossiblyChangePerpendicularCmPos(&nextCmPos,&perpendicularCmPos,&startCmPos); #endif rc |= nbStepSystemPlain(ctx, st); if (nbStatusIsFatal(rc)) /* advance N-body system */ return rc; rc |= nbCheckpoint(ctx, st); if (nbStatusIsFatal(rc)) return rc; /* We report the progress at step + 1. 0 is the original center of mass. */ nbReportProgress(ctx, st); nbUpdateDisplayedBodies(ctx, st); } #ifdef NBODY_BLENDER_OUTPUT blenderPrintMisc(st, ctx, startCmPos, perpendicularCmPos); #endif return nbWriteFinalCheckpoint(ctx, st); }
void SpaceChecker::checkSpace() { QFile memFile; QStringList memLines; QStringList memColumns; #ifdef __ANDROID__ qDebug() << "Checking android free space"; system("df /data > /sdcard/tmp.txt"); memFile.setFileName("/sdcard/tmp.txt"); #elif __APPLE__ && __MACH__ qDebug() << "checking osx free space"; system("df -H / > /tmp/tmp.txt"); memFile.setFileName("/tmp/tmp.txt"); #endif memFile.open(QIODevice::ReadOnly); QTextStream readData(&memFile); while (!readData.atEnd()) { memLines << readData.readLine(); } memFile.close(); #ifdef __ANDROID__ system("rm /sdcard/tmp.txt"); #elif __APPLE__ && __MACH__ system("rm /tmp/tmp.txt"); #endif memColumns = memLines.at(1).split(QRegExp("\\s+")); memColumns.replaceInStrings("G", ""); if (memColumns.at(3).toDouble() < 140) { qDebug() << "Clearing some space"; deleteOldFiles(); } emit freeSpace(memColumns.at(3).toDouble()); }