if (poison_undefined_values) {
MultiFab &mfab = *groupdata.mfab.at(tl);
const MultiFab &fine_mfab = *fine_groupdata.mfab.at(tl);
const IntVect reffact{2, 2, 2};
const iMultiFab finemask =
makeFineMask(mfab, fine_mfab.boxArray(), reffact);
auto mfitinfo = MFItInfo().SetDynamic(true).EnableTiling(
{max_tile_size_x, max_tile_size_y, max_tile_size_z});
#pragma omp parallel
for (MFIter mfi(*leveldata.mfab0, mfitinfo); mfi.isValid(); ++mfi) {
GridPtrDesc grid(leveldata, mfi);
const Array4<const int> &mask = finemask.array(mfi);
const Array4<CCTK_REAL> &vars = mfab.array(mfi);
for (int vi = 0; vi < groupdata.numvars; ++vi) {
CCTK_REAL *restrict const ptr = grid.ptr(vars, vi);
grid.loop_all(groupdata.indextype, [&](const Loop::PointDesc &p) {
if (mask(grid.cactus_offset.x + p.i, grid.cactus_offset.y + p.j,
grid.cactus_offset.z + p.k))
ptr[p.idx] = 0.0 / 0.0;
});
}
}
}