Exemplo n.º 1
0
static void write_nblist(FILE *out,gmx_domdec_t *dd,t_nblist *nblist,int nDNL)
{
  int i,nii,ii,j,zi,zj0,zj1,aj,zj,nj;
  int ca1[DD_MAXZONE],np[DD_MAXZONE];
  gmx_domdec_zones_t *dd_zones;

  if (nblist->nri > 0) {  
    fprintf(out,"il_name: %s  Solvent opt: %s\n",
            nrnb_str(nblist->il_code),
            enlist_names[nblist->enlist]);
    fprintf(out,"nri: %d  npair: %d\n",nblist->nri,nblist->nrj);
    if (dd) {
      dd_zones = domdec_zones(dd);

      for(zi=0; zi<dd_zones->n; zi++)
	ca1[zi] = dd->cgindex[dd_zones->cg_range[zi+1]];
      i = 0;
      for(zi=0; zi<dd_zones->nizone; zi++) {
	zj0 = dd_zones->izone[zi].j0;
	zj1 = dd_zones->izone[zi].j1;
	for(zj=zj0; zj<zj1; zj++)
	  np[zj] = 0;
	while(i < nblist->nri && nblist->iinr[i] < ca1[zi]) {
	  for(j=nblist->jindex[i]; (j<nblist->jindex[i+1]); j++) {
	    aj = nblist->jjnr[j];
	    zj = zj0;
	    while (aj >= ca1[zj])
	      zj++;
	    np[zj]++;
	  }
	  i++;
	}
	fprintf(out,"DD zone %d:",zi);
	for(zj=zj0; zj<zj1; zj++)
	  fprintf(out," %d %d",zj,np[zj]);
	fprintf(out,"\n");
      }
    }
    if (nDNL >= 2) {
      for(i=0; i<nblist->nri; i++) {
	nii = 1;
	if (nDNL >= 3 && nblist->enlist != enlistATOM_ATOM)
	  nii = 3;
	nj = nblist->jindex[i+1] - nblist->jindex[i];
	fprintf(out,"i: %d shift: %d gid: %d nj: %d\n",
		ddglatnr(dd,nblist->iinr[i]),
		nblist->shift[i],nblist->gid[i],nj);
	for(ii=0; ii<nii; ii++) {
	  for(j=nblist->jindex[i]; (j<nblist->jindex[i+1]); j++) {
	    fprintf(out,"  i: %5d  j: %5d\n",
		    ddglatnr(dd,nblist->iinr[i]+ii),
		    ddglatnr(dd,nblist->jjnr[j]));
	  }
	}
      }
    }
    fflush(out);
  }
}
Exemplo n.º 2
0
static void write_nblist(FILE *out, gmx_domdec_t *dd, t_nblist *nblist, int nDNL)
{
    int                 i, nii, ii, j, zi, zj0, zj1, aj, zj, nj;
    int                 ca1[DD_MAXZONE], np[DD_MAXZONE];
    gmx_domdec_zones_t *dd_zones;

    if (nblist->nri > 0)
    {
        fprintf(out, "ielec: %d, ivdw: %d, type: %d, Solvent opt: %s\n",
                nblist->ielec, nblist->ivdw, nblist->type,
                gmx_nblist_geometry_names[nblist->igeometry]);
        fprintf(out, "nri: %d  npair: %d\n", nblist->nri, nblist->nrj);
        if (dd)
        {
            dd_zones = domdec_zones(dd);

            for (zi = 0; zi < dd_zones->n; zi++)
            {
                ca1[zi] = dd->cgindex[dd_zones->cg_range[zi+1]];
            }
            i = 0;
            for (zi = 0; zi < dd_zones->nizone; zi++)
            {
                zj0 = dd_zones->izone[zi].j0;
                zj1 = dd_zones->izone[zi].j1;
                for (zj = zj0; zj < zj1; zj++)
                {
                    np[zj] = 0;
                }
                while (i < nblist->nri && nblist->iinr[i] < ca1[zi])
                {
                    for (j = nblist->jindex[i]; (j < nblist->jindex[i+1]); j++)
                    {
                        aj = nblist->jjnr[j];
                        zj = zj0;
                        while (aj >= ca1[zj])
                        {
                            zj++;
                        }
                        np[zj]++;
                    }
                    i++;
                }
                fprintf(out, "DD zone %d:", zi);
                for (zj = zj0; zj < zj1; zj++)
                {
                    fprintf(out, " %d %d", zj, np[zj]);
                }
                fprintf(out, "\n");
            }
        }
        if (nDNL >= 2)
        {
            for (i = 0; i < nblist->nri; i++)
            {
                nii = 1;
                if (nDNL >= 3 && nblist->igeometry != GMX_NBLIST_GEOMETRY_PARTICLE_PARTICLE)
                {
                    nii = 3;
                }
                nj = nblist->jindex[i+1] - nblist->jindex[i];
                fprintf(out, "i: %d shift: %d gid: %d nj: %d\n",
                        ddglatnr(dd, nblist->iinr[i]),
                        nblist->shift[i], nblist->gid[i], nj);
                for (ii = 0; ii < nii; ii++)
                {
                    for (j = nblist->jindex[i]; (j < nblist->jindex[i+1]); j++)
                    {
                        fprintf(out, "  i: %5d  j: %5d\n",
                                ddglatnr(dd, nblist->iinr[i]+ii),
                                ddglatnr(dd, nblist->jjnr[j]));
                    }
                }
            }
        }
        fflush(out);
    }
}