comm->bInterCGMultiBody = FALSE;
}
- dd->bInterCGcons = gmx::inter_charge_group_constraints(*mtop);
- dd->bInterCGsettles = gmx::inter_charge_group_settles(*mtop);
+ dd->splitConstraints = gmx::inter_charge_group_constraints(*mtop);
+ dd->splitSettles = gmx::inter_charge_group_settles(*mtop);
if (ir->rlist == 0)
{
}
real rconstr = 0;
- if (dd->bInterCGcons && options.constraintCommunicationRange <= 0)
+ if (dd->splitConstraints && options.constraintCommunicationRange <= 0)
{
/* There is a cell size limit due to the constraints (P-LINCS) */
rconstr = gmx::constr_r_max(mdlog, mtop, ir);
}
else if (options.constraintCommunicationRange > 0)
{
- /* Here we do not check for dd->bInterCGcons,
+ /* Here we do not check for dd->splitConstraints.
* because one can also set a cell size limit for virtual sites only
* and at this point we don't know yet if there are intercg v-sites.
*/
if (dd->nc[XX] == 0)
{
char buf[STRLEN];
- gmx_bool bC = (dd->bInterCGcons && rconstr > r_bonded_limit);
+ gmx_bool bC = (dd->splitConstraints && rconstr > r_bonded_limit);
sprintf(buf, "Change the number of ranks or mdrun option %s%s%s",
!bC ? "-rdd" : "-rcon",
comm->dlbState != DlbState::offUser ? " or -dds" : "",
if (comm->bInterCGBondeds ||
bInterCGVsites ||
- dd->bInterCGcons || dd->bInterCGsettles)
+ dd->splitConstraints || dd->splitSettles)
{
log->writeLine("The maximum allowed distance for charge groups involved in interactions is:");
log->writeLineFormatted("%40s %-7s %6.3f nm", "non-bonded interactions", "", comm->cutoff);
log->writeLineFormatted("%40s %-7s %6.3f nm",
"virtual site constructions", "(-rcon)", limit);
}
- if (dd->bInterCGcons || dd->bInterCGsettles)
+ if (dd->splitConstraints || dd->splitSettles)
{
std::string separation = gmx::formatString("atoms separated by up to %d constraints",
1+ir->nProjOrder);
// This code should not be called unless this condition is true,
// because that's the only time init_domdec_constraints is
// called...
- GMX_RELEASE_ASSERT(dd->bInterCGcons || dd->bInterCGsettles, "dd_make_local_constraints called when there are no local constraints");
+ GMX_RELEASE_ASSERT(dd->splitConstraints || dd->splitSettles, "dd_make_local_constraints called when there are no local constraints");
// ... and init_domdec_constraints always sets
// dd->constraint_comm...
GMX_RELEASE_ASSERT(dd->constraint_comm, "Invalid use of dd_make_local_constraints before construction of constraint_comm");
// ... which static analysis needs to be reassured about, because
- // otherwise, when dd->bInterCGsettles is
+ // otherwise, when dd->splitSettles is
// true. dd->constraint_comm is unilaterally dereferenced before
// the call to atoms_to_settles.
gmx::ArrayRef < const std::vector < int>> at2settle_mt;
/* When settle works inside charge groups, we assigned them already */
- if (dd->bInterCGsettles)
+ if (dd->splitSettles)
{
// TODO Perhaps gmx_domdec_constraints_t should keep a valid constr?
GMX_RELEASE_ASSERT(constr != nullptr, "Must have valid constraints object");
/* Only available on the master node */
std::unique_ptr<AtomDistribution> ma;
- /* Are there inter charge group constraints */
- gmx_bool bInterCGcons;
- gmx_bool bInterCGsettles;
+ /* Can atoms connected by constraints be assigned to different domains? */
+ bool splitConstraints;
+ /* Can atoms connected by settles be assigned to different domains? */
+ bool splitSettles;
/* Global atom number to interaction list */
gmx_reverse_top_t *reverse_top;
dd->reverse_top = new gmx_reverse_top_t;
*dd->reverse_top =
make_reverse_top(mtop, ir->efep != efepNO, vsitePbcPerMoltype,
- !dd->bInterCGcons, !dd->bInterCGsettles,
+ !dd->splitConstraints, !dd->splitSettles,
bBCheck, &dd->nbonded_global);
gmx_reverse_top_t *rt = dd->reverse_top;
init_domdec_vsites(dd, vsite->n_intercg_vsite);
}
- if (dd->bInterCGcons || dd->bInterCGsettles)
+ if (dd->splitConstraints || dd->splitSettles)
{
init_domdec_constraints(dd, mtop);
}
}
break;
case DDAtomRanges::Type::Constraints:
- if (dd->bInterCGcons || dd->bInterCGsettles)
+ if (dd->splitConstraints || dd->splitSettles)
{
/* Only for inter-cg constraints we need special code */
n = dd_make_local_constraints(dd, n, top_global, fr->cginfo,
{
lincsd = init_lincs(log, mtop,
nflexcon, at2con_mt,
- DOMAINDECOMP(cr) && cr->dd->bInterCGcons,
+ DOMAINDECOMP(cr) && cr->dd->splitConstraints,
ir.nLincsIter, ir.nProjOrder);
}
if (ir.eConstrAlg == econtSHAKE)
{
- if (DOMAINDECOMP(cr) && cr->dd->bInterCGcons)
+ if (DOMAINDECOMP(cr) && cr->dd->splitConstraints)
{
gmx_fatal(FARGS, "SHAKE is not supported with domain decomposition and constraint that cross charge group boundaries, use LINCS");
}