comm->load[0].pme = comm->cycl[ddCyclPME];
}
+ // Either we have DLB off, or we have it on and the array is large enough
+ GMX_ASSERT(!isDlbOn(dd->comm) || static_cast<int>(dd->comm->cellsizesWithDlb.size()) == dd->ndim,
+ "DLB cell sizes data not set up properly ");
for (int d = dd->ndim - 1; d >= 0; d--)
{
- const DDCellsizesWithDlb* cellsizes = (isDlbOn(dd->comm) ? &comm->cellsizesWithDlb[d] : nullptr);
- const int dim = dd->dim[d];
+ const int dim = dd->dim[d];
/* Check if we participate in the communication in this dimension */
if (d == dd->ndim - 1 || (dd->ci[dd->dim[d + 1]] == 0 && dd->ci[dd->dim[dd->ndim - 1]] == 0))
{
load = &comm->load[d];
if (isDlbOn(dd->comm))
{
- cell_frac = cellsizes->fracUpper - cellsizes->fracLower;
+ cell_frac = comm->cellsizesWithDlb[d].fracUpper - comm->cellsizesWithDlb[d].fracLower;
}
int pos = 0;
if (d == dd->ndim - 1)
sbuf[pos++] = cell_frac;
if (d > 0)
{
- sbuf[pos++] = cellsizes->fracLowerMax;
- sbuf[pos++] = cellsizes->fracUpperMin;
+ sbuf[pos++] = comm->cellsizesWithDlb[d].fracLowerMax;
+ sbuf[pos++] = comm->cellsizesWithDlb[d].fracUpperMin;
}
}
if (bSepPME)
sbuf[pos++] = comm->load[d + 1].flags;
if (d > 0)
{
- sbuf[pos++] = cellsizes->fracLowerMax;
- sbuf[pos++] = cellsizes->fracUpperMin;
+ sbuf[pos++] = comm->cellsizesWithDlb[d].fracLowerMax;
+ sbuf[pos++] = comm->cellsizesWithDlb[d].fracUpperMin;
}
}
if (bSepPME)
if (isDlbOn(comm))
{
- rowMaster = cellsizes->rowMaster.get();
+ rowMaster = comm->cellsizesWithDlb[d].rowMaster.get();
}
load->sum = 0;
load->max = 0;