ZARZZPSISIOCXZOWNJQMMQSQPXFSZLDDIDAFY35X2GV37RBB7WUAC 2CFOTSV2LBGHSNOYKKAQC2ONOQ55MBVD4WLAZSK52F4LRZYUEYTAC NUOLOGCKMF5UOBGBYEOX4O7NQ5AEVVLCH6KRBQRJQXIRDNJ2C2ZQC T35FSMI7CA2CFZSRLTCZQBT2KDSEPDZD5UAPNNGR4YYAJ67LT4PAC U77PE56ICORZNQW33NXGSEMW7GDHCSSZ4EXB6OHBJSHEG6WHYSSQC TVBD244E7Q7WV44CRBTFST535NUP3JAZH6OLL4IKDR3OWEXSU7HAC 722HZ7UFINNE3YKSYKP2NHZ5XEG5QQLQHSKC7PREJZR3EX6RDYUAC MSBBCXVGD3GRLE5KAI6BKAFRV7SQUWI2SNN43AJAUD3ISRCEXY6QC 2DKSL6DKZAIYQUJGDULORCKU5K4Z5Z3W4RIKQYDSLKMCNQNDZFBAC BPRNUTY7MHK7LK4EY5MY5OFFG3ABOL7LWXD574L35M74YSQPULFAC 3I2VE3RJ4E4WZZSUGJKOMHP2FKOAZA6SLVMVYE3B54SZCYXGIU4QC JN2TPHENEBIY2OE5FRCQ2E6QCL6FPVHJHUCP4UODD6DITRVV2LIQC AI3EWKW32CEIT7YXOT2JZGS4MIOJLYF4E54BAILIAAVAAG6BFB2AC KCIWCVZOHG44WBOLKI2XK33WPHPRI5FWCETF4AOGTPZISKCW3CLQC GQVQJCNQNO2KD7ZMC7RESCUAMUAP7OED6CTA6SYLZKQGXKXZ6T3QC XU5HOJREK4XY4NBCJINLZPKQNKSYOLUDTWR47REFSNQKDOSNDXLQC BSMJ4V7GV3EOGY4KCSTOJQUOFE2OOCIKQETE4WC2WRNLWBQIBW3QC A7ETPFXEHA2RM4LINSBVMJJ3G62NF7Q5ZQOKJPNJK3YOQ5WS5HKAC VMCDMDXKME66ESRMB3PYSUZZH2XG2GIQMEOEKRH33WGCEBPXTWUQC M5R6KQLXLGYSVKHVAX5AJKD6NYE6IM5Z6WVTR3BTKPJDNNKF3ARAC 5XGIB7XMEZNBLA5ZLQTXRTC3AZ5CTRGMXWBPVMWXG4DPHKWDF4ZAC 24A4OZBZBQ6QXIQ3EOOCQIBTOWRA32TMSQ4CCL3LKIJVJPKZFHVQC VAF66DTVLDWNG7N2PEQYEH4OH5SPSMFBXKPR2PU67IIM6CVPCJ7AC GKKJ75HX2ERLVBZVE2CUB6T3J2SUT7R3UKEKTEYNOG43ZKX6X5MQC BJDGFYBMECTJG7BHLNHLSCUCBVYHAY6OGY37FIJP6JDGNDXQNQVAC BVR7DVINVPQG7PA6Z7QYVYNQ43YZL7XCC6AOMSMWMGAAB2Q43STAC 2D74GU7KGIN5GTSMCY7752YYQN62T5UY2FIKMWKYVMGKS2CDAJKAC W4XMGPEHBCV6AAPJBI4SSEMCDB6KKCGRUC2X2F5YLBY22OR3ICPAC 3HPNY5XHNPWR6RVX4LYEVDFJQWSB2CMS7J6XPAKATQ2UPFTXD33QC USPPNUMNL5HU5WEOIWJMIFAX6TBZERVAV67XJUJQ6KSNLG55JAGQC FS7Q6TUHBK5WSRDC3TM6KV2BPGWATRBLDHFGEJ72BR3FRDEOC3WAC UZAKARMGORRQG733ZUPJOEGL5FG243I32NCC2SRSFDCZKUQ5A52QC T3TZRPPAIA24I3YL3JFB4XEAYCWU3HJAJUCF7NNIFMP4I5X4SM5QC 2XYZZL42IEZHGDJA6NDKGSQKGJP24LOTLFJ6RNHOKWHHSUYIHGKQC GCJJ35BFUTRWJGWOVVMYNOSXEELH6YYX7FW4XL6QWPUD63TAL5NQC DHFIRBK6SZI7R5QBVGMX2M5ADXIVQWNLCVBE6MKVPGHZ4USEC3VQC TUDUMVD5MTJJJGVYVOCALOOKOUYNB7LOFJRCYCZDVGN536JAO2OQC FEMASUBNU32NSG4DNXZX54CGCA57PVRGYO46L3A6F2EJ4BCSJ3SAC error_if_invalid(coarseleveldata, coarsegroupdata, vi, tl, make_valid_all(),[] { return "MakeNewLevelFromCoarse before prolongation"; });check_valid(coarseleveldata, coarsegroupdata, vi, tl, [] {
error_if_invalid(coarsegroupdata, vi, tl, make_valid_all(), [] {return "MakeNewLevelFromCoarse before prolongation";});check_valid(coarsegroupdata, vi, tl, [] {
void error_if_invalid(const GHExt::LevelData &leveldata,const GHExt::CommonGroupData &groupdata, int vi, int tl,const valid_t &required, const function<string()> &msg) {
void error_if_invalid(const GHExt::LevelData::GroupData &groupdata, int vi,int tl, const valid_t &required,const function<string()> &msg) {
void warn_if_invalid(const GHExt::LevelData &leveldata,const GHExt::CommonGroupData &groupdata, int vi, int tl,const valid_t &required, const function<string()> &msg) {
void warn_if_invalid(const GHExt::LevelData::GroupData &groupdata, int vi,int tl, const valid_t &required,const function<string()> &msg) {
CCTK_VWARN(CCTK_WARN_ALERT,"%s: Grid function \"%s\" is invalid on refinement level %d, time ""level %d; required %s, found %s",
CCTK_VWARN(CCTK_WARN_ALERT,"%s: Grid function \"%s\" is invalid on refinement level %d, ""time level %d; required %s, found %s",
void error_if_invalid(const GHExt::CommonGroupData &groupdata, int vi, int tl,const valid_t &required, const function<string()> &msg) {
void error_if_invalid(const GHExt::GlobalData::ScalarGroupData &groupdata,int vi, int tl, const valid_t &required,const function<string()> &msg) {
void warn_if_invalid(const GHExt::CommonGroupData &groupdata, int vi, int tl,const valid_t &required, const function<string()> &msg) {
void warn_if_invalid(const GHExt::GlobalData::ScalarGroupData &groupdata,int vi, int tl, const valid_t &required,const function<string()> &msg) {
error_if_invalid(fineleveldata, finegroupdata, vi, tl, make_valid_int(),[] { return "Reflux before refluxing: Fine level data"; });error_if_invalid(leveldata, groupdata, vi, tl, make_valid_int(), [] {
error_if_invalid(finegroupdata, vi, tl, make_valid_int(), [] {return "Reflux before refluxing: Fine level data";});error_if_invalid(groupdata, vi, tl, make_valid_int(), [] {
error_if_invalid(fineleveldata, finegroupdata, vi, tl, make_valid_int(),[] { return "Restrict on fine level before restricting"; });poison_invalid(fineleveldata, finegroupdata, vi, tl);check_valid(fineleveldata, finegroupdata, vi, tl,
error_if_invalid(finegroupdata, vi, tl, make_valid_int(), [] {return "Restrict on fine level before restricting";});poison_invalid(finegroupdata, vi, tl);check_valid(finegroupdata, vi, tl,
poison_invalid(leveldata, groupdata, vi, tl);check_valid(leveldata, groupdata, vi, tl, [&]() {
poison_invalid(groupdata, vi, tl);check_valid(groupdata, vi, tl, [&]() {
void error_if_invalid(const GHExt::LevelData &leveldata,const GHExt::CommonGroupData &groupdata, int vi, int tl,const valid_t &required, const function<string()> &msg);void warn_if_invalid(const GHExt::LevelData &leveldata,const GHExt::CommonGroupData &groupdata, int vi, int tl,const valid_t &required, const function<string()> &msg);void poison_invalid(const GHExt::LevelData &leveldata,const GHExt::LevelData::GroupData &groupdata, int vi,
void error_if_invalid(const GHExt::LevelData ::GroupData &grouppdata, int vi,int tl, const valid_t &required,const function<string()> &msg);void warn_if_invalid(const GHExt::LevelData ::GroupData &grouppdata, int vi,int tl, const valid_t &required,const function<string()> &msg);void poison_invalid(const GHExt::LevelData::GroupData &groupdata, int vi,
void error_if_invalid(const GHExt::CommonGroupData &groupdata, int vi, int tl,const valid_t &required, const function<string()> &msg);void warn_if_invalid(const GHExt::CommonGroupData &groupdata, int vi, int tl,const valid_t &required, const function<string()> &msg);
void error_if_invalid(const GHExt::GlobalData::ScalarGroupData &groupdata,int vi, int tl, const valid_t &required,const function<string()> &msg);void warn_if_invalid(const GHExt::GlobalData::ScalarGroupData &groupdata,int vi, int tl, const valid_t &required,const function<string()> &msg);