- if (options.numPmeRanks >= 0)
- {
- ddGridSetup.numPmeOnlyRanks = options.numPmeRanks;
- }
- else
- {
- /* When the DD grid is set explicitly and -npme is set to auto,
- * don't use PME ranks. We check later if the DD grid is
- * compatible with the total number of ranks.
- */
- ddGridSetup.numPmeOnlyRanks = 0;
- }
- }
- else
- {
- set_ddbox_cr(*cr, nullptr, *ir, box, xGlobal, ddbox);
-
- /* We need to choose the optimal DD grid and possibly PME nodes */
- ddGridSetup =
- dd_choose_grid(mdlog, cr, ir, mtop, box, ddbox,
- options.numPmeRanks,
- ddSettings.request1DAnd1Pulse,
- !isDlbDisabled(ddSettings.initialDlbState),
- options.dlbScaling,
- systemInfo);
-
- if (ddGridSetup.numDomains[XX] == 0)
- {
- char buf[STRLEN];
- gmx_bool bC = (systemInfo.haveSplitConstraints &&
- systemInfo.constraintCommunicationRange > systemInfo.minCutoffForMultiBody);
- sprintf(buf, "Change the number of ranks or mdrun option %s%s%s",
- !bC ? "-rdd" : "-rcon",
- ddSettings.initialDlbState != DlbState::offUser ? " or -dds" : "",
- bC ? " or your LINCS settings" : "");
-
- gmx_fatal_collective(FARGS, cr->mpi_comm_mysim, MASTER(cr),
- "There is no domain decomposition for %d ranks that is compatible with the given box and a minimum cell size of %g nm\n"
- "%s\n"
- "Look in the log file for details on the domain decomposition",
- cr->nnodes - ddGridSetup.numPmeOnlyRanks,
- ddGridSetup.cellsizeLimit,
- buf);
- }
+ gmx_fatal_collective(FARGS, cr->mpi_comm_mysim, MASTER(cr),
+ "There is no domain decomposition for %d ranks that is compatible with the given box and a minimum cell size of %g nm\n"
+ "%s\n"
+ "Look in the log file for details on the domain decomposition",
+ cr->nnodes - ddGridSetup.numPmeOnlyRanks,
+ cellsizeLimit,
+ buf);