* If x!=NULL, the shells are predict for the global coordinates x.
*/
GMX_LIBMD_EXPORT
-gmx_shellfc_t init_shell_flexcon(FILE *log,
+gmx_shellfc_t init_shell_flexcon(FILE *fplog, const t_commrec *cr,
+ gmx_bool bCutoffSchemeIsVerlet,
gmx_mtop_t *mtop, int nflexcon,
rvec *x);
debug_gmx();
/* Check for polarizable models and flexible constraints */
- shellfc = init_shell_flexcon(fplog,
+ shellfc = init_shell_flexcon(fplog, cr, fr->cutoff_scheme == ecutsVERLET,
top_global, n_flexible_constraints(constr),
(ir->bContinuation ||
(DOMAINDECOMP(cr) && !MASTER(cr))) ?
}
}
-gmx_shellfc_t init_shell_flexcon(FILE *fplog,
+gmx_shellfc_t init_shell_flexcon(FILE *fplog, const t_commrec *cr,
+ gmx_bool bCutoffSchemeIsVerlet,
gmx_mtop_t *mtop, int nflexcon,
rvec *x)
{
if (nshell == 0 && nflexcon == 0)
{
+ /* We're not doing shells or flexible constraints */
return NULL;
}
+ if (DOMAINDECOMP(cr))
+ {
+ gmx_fatal(FARGS, "The shell code does not work with domain decomposition. Use particle decomposition, or only one MPI rank.\n");
+ /* The problem is probably not severe. See Redmine #1429. */
+ }
+ if (bCutoffSchemeIsVerlet)
+ {
+ gmx_fatal(FARGS, "The shell code does not work with the Verlet cut-off scheme.\n");
+ }
+
snew(shfc, 1);
shfc->nflexcon = nflexcon;