HBZVMDSQU5KSMGZXRL67OERWEDNGTSYJVGV4BFDKKSSSHU4X23AAC M5R6KQLXLGYSVKHVAX5AJKD6NYE6IM5Z6WVTR3BTKPJDNNKF3ARAC GQVQJCNQNO2KD7ZMC7RESCUAMUAP7OED6CTA6SYLZKQGXKXZ6T3QC 722HZ7UFINNE3YKSYKP2NHZ5XEG5QQLQHSKC7PREJZR3EX6RDYUAC 3KQ5ZQE45TNGATMW4R4NHXVBULGOXHF7JYC53BZL2LNDQ2V7C2CAC TOBGHRPKEPSXDN56WGSZNWOMCBVJ4KUSLWYWI56MC2RR3MM3KLZAC BVR7DVINVPQG7PA6Z7QYVYNQ43YZL7XCC6AOMSMWMGAAB2Q43STAC WE6MDRN5SPK3THM4COLQFE3IUWBCQ5ZYUIAUCBJAZVEMMOVTNBOAC 5IAXY3XZJTRMMVT2OVIJ6OXQJI6OJPTPCHHA4IVLVMHANCCC5NKAC FEMASUBNU32NSG4DNXZX54CGCA57PVRGYO46L3A6F2EJ4BCSJ3SAC UZAKARMGORRQG733ZUPJOEGL5FG243I32NCC2SRSFDCZKUQ5A52QC WASO7G5FJXRXWNH2U2FLUNEKU6VE63OI3HUYP64BVD4LMD6KE7OQC E3MBKFT4GEFDAGZQQW4OROY5F6FWC46G6MRH54GDYTGO7O5YSRIAC 2DD222JSYRPHTXKSRXLSOMSCQPZUORNFLLO2P3GMIDELAAMD5MEQC UTHNLH3J3VG7BBJPOKGE6DY7Z2QHDLY72TR2VMEDQYP73SIWZGKAC 5XGIB7XMEZNBLA5ZLQTXRTC3AZ5CTRGMXWBPVMWXG4DPHKWDF4ZAC BSMJ4V7GV3EOGY4KCSTOJQUOFE2OOCIKQETE4WC2WRNLWBQIBW3QC PG2P3JQPLWZRLCAJ7JY2B7G7AM5DHOE2CJUKIPWREI3NAUKZF3TAC }const int gi_regrid_error = CCTK_GroupIndex("CarpetX::regrid_error");assert(gi_regrid_error >= 0);const int gi_refinement_level = CCTK_GroupIndex("CarpetX::refinement_level");assert(gi_refinement_level >= 0);vector<int> groups;for (int n = 0; n < numgroups; ++n) {int gi = groups0[n];if (CCTK_GroupTypeI(gi) != CCTK_GF)continue;// Don't restrict the regridding error nor the refinement levelif (gi == gi_regrid_error || gi == gi_refinement_level)continue;// Don't restrict groups that have restriction disabledgroups.push_back(gi);}if (restrict_during_sync) {if (current_level == -1)for (int level = 0; level < int(ghext->leveldata.size()); ++level)Restrict(level, groups);elseRestrict(current_level, groups);
}}void Restrict(int level) {const int gi_regrid_error = CCTK_GroupIndex("CarpetX::regrid_error");assert(gi_regrid_error >= 0);const int gi_refinement_level = CCTK_GroupIndex("CarpetX::refinement_level");assert(gi_refinement_level >= 0);const int numgroups = CCTK_NumGroups();vector<int> groups;groups.reserve(numgroups);for (int gi = 0; gi < numgroups; ++gi) {if (CCTK_GroupTypeI(gi) != CCTK_GF)continue;// Don't restrict the regridding error nor the refinement levelif (gi == gi_regrid_error || gi == gi_refinement_level)continue;// Don't restrict groups that have restriction disabledconst bool do_restrict = get_group_restrict_flag(gi);if (!do_restrict)continue;groups.push_back(gi);