Esempio n. 1
0
File: pr_13_1.c Progetto: qnu/mdoch
void AllocArrays ()
{
  int k;

  AllocMem (mol, nMol, Mol);
  AllocMem2 (tCos, fSpaceLimit + 1, nMol, VecR);
  AllocMem2 (tSin, fSpaceLimit + 1, nMol, VecR);
  AllocMem2 (histRdf, 3, sizeHistRdf, real);
}
Esempio n. 2
0
File: pr_08_1.c Progetto: qnu/mdoch
void AllocArrays ()
{
  int k;

  AllocMem (mol, nMol, Mol);
  AllocMem (site, nMol * sitesMol, Site);
  AllocMem (mSite, sitesMol, MSite);
  AllocMem2 (histRdf, 3, sizeHistRdf, real);
}
Esempio n. 3
0
int main (int argc, char **argv)
{
  Prop **diff;
  real *tVal;
  int j, k, n, nData, nDataSkip, nv, nValDiffuse;
  char buff[BUFF_LEN], *bp;
  FILE *fp;

  if ((fp = fopen (argv[1], "r")) == 0) {
    printf ("no file\n");
    exit (0);
  }
  while (1) {
    bp = fgets (buff, BUFF_LEN, fp);
    if (*bp == CHAR_MINUS) break;
    NameVal (nValDiffuse);
  }
  AllocMem2 (diff, NDIFF, nValDiffuse, Prop);
  for (j = 0; j < NDIFF; j ++) {
    for (n = 0; n < nValDiffuse; n ++) PropZero (diff[j][n]);
  }
  AllocMem (tVal, nValDiffuse, real);
  nDataSkip = 3;
  nv = 0;
  nData = 0;
  while (1) {
    if (! (bp = fgets (buff, BUFF_LEN, fp))) break;
    if (! strncmp (bp, txtDiff, strlen (txtDiff))) {
      if (++ nData > nDataSkip) {
        ++ nv;
        for (n = 0; n < nValDiffuse; n ++) {
          bp = fgets (buff, BUFF_LEN, fp);
          tVal[n] = strtod (bp, &bp);
          for (j = 0; j < NDIFF; j ++) {
            diff[j][n].val = strtod (bp, &bp);
            PropAccum (diff[j][n]);
          }
        }
      }
    }
  }
  fclose (fp);
  printf ("%d\n", nv);
  for (n = 0; n < nValDiffuse; n ++) {
    printf ("%9.4f", tVal[n]);
    for (j = 0; j < NDIFF; j ++) {
      PropAvg (diff[j][n], nv);
      printf (" %9.4f %9.4f", PropEst (diff[j][n]));
    }
    printf ("\n");
  }
}
Esempio n. 4
0
int main (int argc, char **argv)
{
  real **sumAcf, **sumAcfSq, *valAcf[3], intAcfSum[3], intAcfSumSq[3],
     intAcfTrunc[3], intAcfTruncSq[3], deltaT, fac, x, w;
  int nValAcf, k, j, n, nSet, nValInt, stepAcf;
  char *bp, buff[BUFF_LEN];
  FILE *fp;

  nValInt = 280;
  if ((fp = fopen (argv[1], "r")) == 0) {
    printf ("no file\n");
    exit (0);
  }
  while (1) {
    bp = fgets (buff, BUFF_LEN, fp);
    if (*bp == CHAR_MINUS) break;
    NameVal (deltaT);
    NameVal (nValAcf);
    NameVal (stepAcf);
  }
  AllocMem2 (sumAcf, 3, nValAcf, real);
  AllocMem2 (sumAcfSq, 3, nValAcf, real);
  for (j = 0; j < 3; j ++) {
    for (n = 0; n < nValAcf; n ++) sumAcf[j][n] = sumAcfSq[j][n] = 0.;
    intAcfSum[j] = intAcfSumSq[j] = 0.;
    intAcfTrunc[j] = intAcfTruncSq[j] = 0.;
  }
  for (j = 0; j < 3; j ++) AllocMem (valAcf[j], nValAcf, real);
  nSet = 0;
  while (1) {
    if (! (bp = fgets (buff, BUFF_LEN, fp))) break;
    if (! strncmp (bp, txtAcf, strlen (txtAcf))) {
      ++ nSet;
      for (n = 0; n < nValAcf; n ++) {
        bp = fgets (buff, BUFF_LEN, fp);
        x = strtod (bp, &bp);
        for (j = 0; j < 3; j ++) {
          w = strtod (bp, &bp);
          valAcf[j][n] = w;
          sumAcf[j][n] += w;
          sumAcfSq[j][n] += Sqr (w);
        }
      }
      bp = fgets (buff, BUFF_LEN, fp);
      bp += strlen (txtintAcf);
      for (j = 0; j < 3; j ++) {
        w = strtod (bp, &bp);
        intAcfSum[j] += w;
        intAcfSumSq[j] += Sqr (w);
      }
      for (j = 0; j < 3; j ++) {
        w = Integrate (valAcf[j], nValInt);
        intAcfTrunc[j] += w;
        intAcfTruncSq[j] += Sqr (w);
      }
    }
  }
  fclose (fp);
  printf ("%d\n", nSet);
  for (j = 0; j < 3; j ++) {
    for (n = 0; n < nValAcf; n ++) {
      sumAcf[j][n] /= nSet;
      sumAcfSq[j][n] = sqrt (sumAcfSq[j][n] / nSet - Sqr (sumAcf[j][n]));
    }
  }
  for (j = 0; j < 3; j ++) {
    intAcfSum[j] /= nSet;
    intAcfSumSq[j] = sqrt (intAcfSumSq[j] / nSet - Sqr (intAcfSum[j]));
    printf ("%9.4f %9.4f %9.4f\n", intAcfSum[j], intAcfSumSq[j],
       intAcfSumSq[j] / intAcfSum[j]);
  }
  for (j = 0; j < 3; j ++) {
    intAcfTrunc[j] /= nSet;
    intAcfTruncSq[j] = sqrt (intAcfTruncSq[j] / nSet - Sqr (intAcfTrunc[j]));
    fac = intAcfSum[j] / Integrate (sumAcf[j], nValAcf);
    intAcfTrunc[j] *= fac;
    intAcfTruncSq[j] *= fac;
  }
  printf ("%d\n", nValInt);
  for (j = 0; j < 3; j ++) {
    printf ("%9.4f %9.4f %9.4f\n", intAcfTrunc[j],
       intAcfTruncSq[j], intAcfTruncSq[j] / intAcfTrunc[j]);
  }
  for (n = 0; n < nValAcf; n ++) {
    x = n * stepAcf * deltaT;
    printf ("%8.4f", x);
    for (j = 0; j < 3; j ++)
       printf (" %8.4f %8.4f", sumAcf[j][n], sumAcfSq[j][n]);
    printf ("\n");
  }
}