Exemple #1
0
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());
}