Esempio n. 1
0
void sum_epot(t_grpopts *opts, gmx_grppairener_t *grpp, real *epot)
{
    int i;

    /* Accumulate energies */
    epot[F_COUL_SR]  = sum_v(grpp->nener, grpp->ener[egCOULSR]);
    epot[F_LJ]       = sum_v(grpp->nener, grpp->ener[egLJSR]);
    epot[F_LJ14]     = sum_v(grpp->nener, grpp->ener[egLJ14]);
    epot[F_VDW14]     = sum_v(grpp->nener, grpp->ener[egVDW14]);
    epot[F_COUL14]   = sum_v(grpp->nener, grpp->ener[egCOUL14]);
    epot[F_COUL_LR]  = sum_v(grpp->nener, grpp->ener[egCOULLR]);
    epot[F_LJ_LR]    = sum_v(grpp->nener, grpp->ener[egLJLR]);
    /* We have already added 1-2,1-3, and 1-4 terms to F_GBPOL */
    epot[F_GBPOL]   += sum_v(grpp->nener, grpp->ener[egGB]);

/* lattice part of LR doesnt belong to any group
 * and has been added earlier
 */
    epot[F_BHAM]     = sum_v(grpp->nener, grpp->ener[egBHAMSR]);
    epot[F_BHAM_LR]  = sum_v(grpp->nener, grpp->ener[egBHAMLR]);

    epot[F_EPOT] = 0;
    for (i = 0; (i < F_EPOT); i++)
    {
        if (i != F_DISRESVIOL && i != F_ORIRESDEV)
        {
            epot[F_EPOT] += epot[i];
        }
    }
}
Esempio n. 2
0
static void sum_epot(t_grpopts *opts,gmx_enerdata_t *enerd)
{
  gmx_grppairener_t *grpp;
  real *epot;
  int i;
  
  grpp = &enerd->grpp;
  epot = enerd->term;

  /* Accumulate energies */
  epot[F_COUL_SR]  = sum_v(grpp->nener,grpp->ener[egCOULSR]);
  epot[F_LJ]       = sum_v(grpp->nener,grpp->ener[egLJSR]);
  epot[F_LJ14]     = sum_v(grpp->nener,grpp->ener[egLJ14]);
  epot[F_COUL14]   = sum_v(grpp->nener,grpp->ener[egCOUL14]);
  epot[F_COUL_LR]  = sum_v(grpp->nener,grpp->ener[egCOULLR]);
  epot[F_LJ_LR]    = sum_v(grpp->nener,grpp->ener[egLJLR]);
/* lattice part of LR doesnt belong to any group
 * and has been added earlier
 */
  epot[F_BHAM]     = sum_v(grpp->nener,grpp->ener[egBHAMSR]);
  epot[F_BHAM_LR]  = sum_v(grpp->nener,grpp->ener[egBHAMLR]);

  epot[F_EPOT] = 0;
  for(i=0; (i<F_EPOT); i++)
    if (i != F_DISRESVIOL && i != F_ORIRESDEV && i != F_DIHRESVIOL)
      epot[F_EPOT] += epot[i];
}
Esempio n. 3
0
int sum_l(int n, ...)
{
  va_list ap;
  int s;
  va_start(ap, n);
  s = sum_v(n, ap);
  va_end(ap);
  return s;
}
Esempio n. 4
0
static void run_vararg(long long loops, int *v)
{
	long long i;
	for (i=0; i<loops; i++)
		*v = sum_v(v, v+1, v+2, v+3, v+4, v+5, v+6, v+7, v+8, v+9, NULL);
}