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); } }
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); } }