I change the <span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">maximum charge group size defined in the include/types/nblist.h header from 32 to 267. Then grompp worked fine but the mdrun did not start. The following error came out</span><div>
<font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><div>
Program mdrun_jptlc, VERSION 4.5.3</div><div>Source code file: ns.c, line: 2417</div><div><br></div><div>Fatal error:</div><div>Max #atoms in a charge group: 267 > 64</div><div><br></div><div>For more information and tips for troubleshooting, please check the GROMACS</div>
<div>website at <a href="http://www.gromacs.org/Documentation/Errors">http://www.gromacs.org/Documentation/Errors</a></div><div><br></div><div>In ns.c the relevant section (in bold) is the following:</div><div><br></div><div>
<br></div><div><div>void init_ns(FILE *fplog,const t_commrec *cr,</div><div> gmx_ns_t *ns,t_forcerec *fr,</div><div> const gmx_mtop_t *mtop,</div><div> matrix box)</div><div>{</div><div>
int mt,icg,nr_in_cg,maxcg,i,j,jcg,ngid,ncg;</div><div> t_block *cgs;</div><div> char *ptr;</div><div> </div><div> /* Compute largest charge groups size (# atoms) */</div><div> nr_in_cg=1;</div><div> for(mt=0; mt<mtop->nmoltype; mt++) {</div>
<div> cgs = &mtop->moltype[mt].cgs;</div><div> for (icg=0; (icg < cgs->nr); icg++)</div><div> {</div><div> nr_in_cg=max(nr_in_cg,(int)(cgs->index[icg+1]-cgs->index[icg]));</div>
<div> }</div><div> }</div><div><br></div><div> <b> /* Verify whether largest charge group is <= max cg.</b></div><div><b> * This is determined by the type of the local exclusion type </b></div><div><b> * Exclusions are stored in bits. (If the type is not large</b></div>
<div><b> * enough, enlarge it, unsigned char -> unsigned short -> unsigned long)</b></div><div><b> */</b></div><div><b> maxcg = sizeof(t_excl)*8;</b></div><div><b> if (nr_in_cg > maxcg)</b></div><div>
<b> {</b></div><div><b> gmx_fatal(FARGS,"Max #atoms in a charge group: %d > %d\n",</b></div><div><b> nr_in_cg,maxcg);</b></div><div><b> }</b></div><div> </div><div> ngid = mtop->groups.grps[egcENER].nr;</div>
<div> snew(ns->bExcludeAlleg,ngid);</div><div> for(i=0; i<ngid; i++) {</div><div> ns->bExcludeAlleg[i] = TRUE;</div><div> for(j=0; j<ngid; j++)</div><div> {</div><div> if (!(fr->egp_flags[i*ngid+j] & EGP_EXCL))</div>
<div> {</div><div> ns->bExcludeAlleg[i] = FALSE;</div><div> }</div><div> }</div><div> }</div><div> </div><div> if (fr->bGrid) {</div><div> /* Grid search */</div>
<div> ns->grid = init_grid(fplog,fr);</div><div> init_nsgrid_lists(fr,ngid,ns);</div><div> }</div><div> else</div><div> {</div><div> /* Simple search */</div><div> snew(ns->ns_buf,ngid);</div>
<div> for(i=0; (i<ngid); i++)</div><div> {</div><div> snew(ns->ns_buf[i],SHIFTS);</div><div> }</div><div> ncg = ncg_mtop(mtop);</div><div> snew(ns->simple_aaj,2*ncg);</div>
<div> for(jcg=0; (jcg<ncg); jcg++)</div><div> {</div><div> ns->simple_aaj[jcg] = jcg;</div><div> ns->simple_aaj[jcg+ncg] = jcg;</div><div> }</div><div> }</div><div>
</div><div> /* Create array that determines whether or not atoms have VdW */</div><div> snew(ns->bHaveVdW,fr->ntype);</div><div> for(i=0; (i<fr->ntype); i++)</div><div> {</div><div> for(j=0; (j<fr->ntype); j++)</div>
<div> {</div><div> ns->bHaveVdW[i] = (ns->bHaveVdW[i] || </div><div> (fr->bBHAM ? </div><div> ((BHAMA(fr->nbfp,fr->ntype,i,j) != 0) ||</div>
<div> (BHAMB(fr->nbfp,fr->ntype,i,j) != 0) ||</div><div> (BHAMC(fr->nbfp,fr->ntype,i,j) != 0)) :</div><div> ((C6(fr->nbfp,fr->ntype,i,j) != 0) ||</div>
<div> (C12(fr->nbfp,fr->ntype,i,j) != 0))));</div><div> }</div><div> }</div><div> if (debug) </div><div> pr_bvec(debug,0,"bHaveVdW",ns->bHaveVdW,fr->ntype,TRUE);</div>
<div> </div><div> ns->nra_alloc = 0;</div><div> ns->bexcl = NULL;</div><div> if (!DOMAINDECOMP(cr))</div><div> {</div><div> /* This could be reduced with particle decomposition */</div><div> ns_realloc_natoms(ns,mtop->natoms);</div>
<div> }</div><div><br></div><div> ns->nblist_initialized=FALSE;</div><div><br></div><div> /* nbr list debug dump */</div><div> {</div><div> char *ptr=getenv("GMX_DUMP_NL");</div><div> if (ptr)</div>
<div> {</div><div> ns->dump_nl=strtol(ptr,NULL,10);</div><div> if (fplog)</div><div> {</div><div> fprintf(fplog, "GMX_DUMP_NL = %d", ns->dump_nl);</div>
<div> }</div><div> }</div><div> else</div><div> {</div><div> ns->dump_nl=0;</div><div> }</div><div> }</div><div>}</div></div><div><br></div></span></font></div><div>
<font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; "><br><span class="Apple-style-span" style="border-collapse: separate;">Any ideas ?<br></span></span></font><br>
</div>