67UXOK4QSZFAPVZXU2MJMD7I2232JCK4QDMIOMVMEQNQUGN7632AC RKGV7HOLE7Q4PVL3B5NWS7X4BBIT7WCKTBANPIGR6KMFKGZENTVAC L6F65PPYCY5WWHETUTKWYWXNQYSYP3YK3UBJGQECU7GEMCHYWL4AC C7Y67X3DJBDM4QW3NAVSVJF6GSSLD466S4FFJSIKUEJANLPC6FIAC XQFT6DACFOMNNXDYUZRGRCMEPWF34KW5PRZ7RVMVJHYCS76JIZSAC DGEGTDYVGRHEGNFDHCCVTD6AVLRJ2XHDXQPWR5MMR62V5NU2XGIQC BRC6KOCKJIARRSZI3TJOKIK6XBSNYAS2IP6LJOPS2FPMLN57QKVQC EK7F2IQUVSSHTDV7MPOZXX34UHJA2ZNDHIZX4G4HCSUJYXKFWGRAC DQZRKU4B6C3WWWXFMBBSVKYD5AXDGUMHHPACVWKERGKB5WLHZGYAC 3HPNY5XHNPWR6RVX4LYEVDFJQWSB2CMS7J6XPAKATQ2UPFTXD33QC BVR7DVINVPQG7PA6Z7QYVYNQ43YZL7XCC6AOMSMWMGAAB2Q43STAC XU5HOJREK4XY4NBCJINLZPKQNKSYOLUDTWR47REFSNQKDOSNDXLQC J3SP5HQRWGMM6EM4ZIWPNUIY5HYFRJA4SH2X4OWGESSK7AWA3RNQC T3TZRPPAIA24I3YL3JFB4XEAYCWU3HJAJUCF7NNIFMP4I5X4SM5QC A7ETPFXEHA2RM4LINSBVMJJ3G62NF7Q5ZQOKJPNJK3YOQ5WS5HKAC GECUITHDXKCWB7HBCM7EA5Q56JDDWUVUWHMW2K6OM7UW36DFAZ3QC EHF2P5PKVTMAUL5R5QSZ3DS3VLE7Z6SHJTCZAGRBTQ66Y7HZKNYQC JN2TPHENEBIY2OE5FRCQ2E6QCL6FPVHJHUCP4UODD6DITRVV2LIQC WV2J4VRLSW42SGIRDLF326LLC7L2ABAMSZ3YKABS532K27U3X3CAC BPRNUTY7MHK7LK4EY5MY5OFFG3ABOL7LWXD574L35M74YSQPULFAC Z2NTVAM6CXOOV34ZXN6A5WNAUOPWPFTSH5723LZZEEGYEWH36WWAC MSBBCXVGD3GRLE5KAI6BKAFRV7SQUWI2SNN43AJAUD3ISRCEXY6QC JD6PQOJ6YYNQYEEWEXO2NM7NVYNBUI6V7ZU6Q3FNHGAT2VYOF5WAC 33IC3UHCEPZLGS5ACS2JXHGT6CRU5LXU6PM6RDHCERPOIELVRVXQC E3MBKFT4GEFDAGZQQW4OROY5F6FWC46G6MRH54GDYTGO7O5YSRIAC FEMASUBNU32NSG4DNXZX54CGCA57PVRGYO46L3A6F2EJ4BCSJ3SAC CCTK_VINFO("%s: Grid function \"%s\" has %td nans on refinement level %d, time ""level %d, in box [%d,%d,%d]:[%d,%d,%d] (%g,%g,%g):(%g,%g,%g); ""expected valid %s",msg().c_str(), CCTK_FullVarName(groupdata.firstvarindex + vi),size_t(nan_count), leveldata.level, tl, nan_imin[0], nan_imin[1],
CCTK_VINFO("%s: Grid function \"%s\" has %td nans on refinement level %d, time ""level %d, in box [%d,%d,%d]:[%d,%d,%d] (%g,%g,%g):(%g,%g,%g); ""expected valid %s",msg().c_str(), CCTK_FullVarName(groupdata.firstvarindex + vi),size_t(nan_count), leveldata.level, tl, nan_imin[0], nan_imin[1],
for (MFIter mfi(*leveldata.mfab0, mfitinfo); mfi.isValid(); ++mfi) {const GridPtrDesc1 grid(leveldata, groupdata, mfi);const Array4<const CCTK_REAL> &vars = groupdata.mfab.at(tl)->array(mfi);const GF3D1<const CCTK_REAL> ptr_ = grid.gf3d(vars, vi);
for (MFIter mfi(*leveldata.mfab0, mfitinfo); mfi.isValid(); ++mfi) {const GridPtrDesc1 grid(leveldata, groupdata, mfi);const Array4<const CCTK_REAL> &vars = groupdata.mfab.at(tl)->array(mfi);const GF3D1<const CCTK_REAL> ptr_ = grid.gf3d(vars, vi);
if (valid.valid_int)grid.loop_idx(where_t::interior, groupdata.indextype,groupdata.nghostzones, [&](const Loop::PointDesc &p) {if (CCTK_BUILTIN_EXPECT(CCTK_isnan(ptr_(p.I)), false))CCTK_VINFO("[%d,%d,%d] (%g,%g,%g) %g", p.i, p.j, p.k,double(p.x), double(p.y), double(p.z),double(ptr_(p.I)));});if (valid.valid_outer)grid.loop_idx(where_t::boundary, groupdata.indextype,groupdata.nghostzones, [&](const Loop::PointDesc &p) {if (CCTK_BUILTIN_EXPECT(CCTK_isnan(ptr_(p.I)), false))CCTK_VINFO("[%d,%d,%d] (%g,%g,%g) %g", p.i, p.j, p.k,double(p.x), double(p.y), double(p.z),double(ptr_(p.I)));});if (valid.valid_ghosts)grid.loop_idx(where_t::ghosts, groupdata.indextype,groupdata.nghostzones, [&](const Loop::PointDesc &p) {if (CCTK_BUILTIN_EXPECT(CCTK_isnan(ptr_(p.I)), false))CCTK_VINFO("[%d,%d,%d] (%g,%g,%g) %g", p.i, p.j, p.k,double(p.x), double(p.y), double(p.z),double(ptr_(p.I)));});}
if (valid.valid_int)grid.loop_idx(where_t::interior, groupdata.indextype, groupdata.nghostzones,[&](const Loop::PointDesc &p) {if (CCTK_BUILTIN_EXPECT(!CCTK_isfinite(ptr_(p.I)), false))CCTK_VINFO("[%d,%d,%d] (%g,%g,%g) %g", p.i, p.j, p.k,double(p.x), double(p.y), double(p.z),double(ptr_(p.I)));});if (valid.valid_outer)grid.loop_idx(where_t::boundary, groupdata.indextype, groupdata.nghostzones,[&](const Loop::PointDesc &p) {if (CCTK_BUILTIN_EXPECT(!CCTK_isfinite(ptr_(p.I)), false))CCTK_VINFO("[%d,%d,%d] (%g,%g,%g) %g", p.i, p.j, p.k,double(p.x), double(p.y), double(p.z),double(ptr_(p.I)));});if (valid.valid_ghosts)grid.loop_idx(where_t::ghosts, groupdata.indextype, groupdata.nghostzones,[&](const Loop::PointDesc &p) {if (CCTK_BUILTIN_EXPECT(!CCTK_isfinite(ptr_(p.I)), false))CCTK_VINFO("[%d,%d,%d] (%g,%g,%g) %g", p.i, p.j, p.k,double(p.x), double(p.y), double(p.z),double(ptr_(p.I)));});}
CCTK_VERROR("%s: Grid function \"%s\" has nans on refinement level %d, time ""level %d; expected valid %s",msg().c_str(), CCTK_FullVarName(groupdata.firstvarindex + vi),leveldata.level, tl, string(groupdata.valid.at(tl).at(vi)).c_str());
CCTK_VERROR("%s: Grid function \"%s\" has nans on refinement level %d, time ""level %d; expected valid %s",msg().c_str(), CCTK_FullVarName(groupdata.firstvarindex + vi),leveldata.level, tl, string(groupdata.valid.at(tl).at(vi)).c_str());}
CCTK_VINFO("Grid extent:");CCTK_VINFO(" gsh=[%d,%d,%d]", gsh[0], gsh[1], gsh[2]);CCTK_VINFO("Domain extent:");
CCTK_VINFO("Grid extent:");CCTK_VINFO(" gsh=[%d,%d,%d]", gsh[0], gsh[1], gsh[2]);CCTK_VINFO("Domain extent:");
const double pts0 = ghext->leveldata.at(0).mfab0->boxArray().d_numPts();for (const auto &leveldata : ghext->leveldata) {const int sz = leveldata.mfab0->size();const double pts = leveldata.mfab0->boxArray().d_numPts();if (leveldata.level == 0) {CCTK_VINFO(" level %d: %d boxes, %.0f cells (%.4g%%)",leveldata.level, sz, pts,100 * pts / (pow(2.0, dim * leveldata.level) * pts0));} else {const double ptsc = ghext->leveldata.at(leveldata.level - 1).mfab0->boxArray().d_numPts();CCTK_VINFO(" level %d: %d boxes, %.0f cells (%.4g%%, %.0f%%)",leveldata.level, sz, pts,100 * pts / (pow(2.0, dim * leveldata.level) * pts0),100 * pts / (pow(2.0, dim) * ptsc));
const double pts0 = ghext->leveldata.at(0).mfab0->boxArray().d_numPts();for (const auto &leveldata : ghext->leveldata) {const int sz = leveldata.mfab0->size();const double pts = leveldata.mfab0->boxArray().d_numPts();if (leveldata.level == 0) {CCTK_VINFO(" level %d: %d boxes, %.0f cells (%.4g%%)",leveldata.level, sz, pts,100 * pts / (pow(2.0, dim * leveldata.level) * pts0));} else {const double ptsc = ghext->leveldata.at(leveldata.level - 1).mfab0->boxArray().d_numPts();CCTK_VINFO(" level %d: %d boxes, %.0f cells (%.4g%%, %.0f%%)",leveldata.level, sz, pts,100 * pts / (pow(2.0, dim * leveldata.level) * pts0),100 * pts / (pow(2.0, dim) * ptsc));}
CCTK_VINFO(" old levels %d, new levels %d", old_numlevels,new_numlevels);double pts0 = ghext->leveldata.at(0).mfab0->boxArray().d_numPts();assert(current_level == -1);for (const auto &leveldata : ghext->leveldata) {const int sz = leveldata.mfab0->size();const double pts = leveldata.mfab0->boxArray().d_numPts();if (leveldata.level == 0) {CCTK_VINFO(" level %d: %d boxes, %.0f cells (%.4g%%)",leveldata.level, sz, pts,100 * pts / (pow(2.0, dim * leveldata.level) * pts0));} else {const double ptsc = ghext->leveldata.at(leveldata.level - 1).mfab0->boxArray().d_numPts();CCTK_VINFO(" level %d: %d boxes, %.0f cells (%.4g%%, %.0f%%)",leveldata.level, sz, pts,100 * pts / (pow(2.0, dim * leveldata.level) * pts0),100 * pts / (pow(2.0, dim) * ptsc));
CCTK_VINFO(" old levels %d, new levels %d", old_numlevels,new_numlevels);double pts0 = ghext->leveldata.at(0).mfab0->boxArray().d_numPts();assert(current_level == -1);for (const auto &leveldata : ghext->leveldata) {const int sz = leveldata.mfab0->size();const double pts = leveldata.mfab0->boxArray().d_numPts();if (leveldata.level == 0) {CCTK_VINFO(" level %d: %d boxes, %.0f cells (%.4g%%)",leveldata.level, sz, pts,100 * pts / (pow(2.0, dim * leveldata.level) * pts0));} else {const double ptsc = ghext->leveldata.at(leveldata.level - 1).mfab0->boxArray().d_numPts();CCTK_VINFO(" level %d: %d boxes, %.0f cells (%.4g%%, %.0f%%)",leveldata.level, sz, pts,100 * pts / (pow(2.0, dim * leveldata.level) * pts0),100 * pts / (pow(2.0, dim) * ptsc));}