#1445: add tags to disallow splitting in directions --------------------------+------------------------------------------------- Reporter: rhaas | Owner: eschnett Type: enhancement | Status: closed Priority: minor | Milestone: Component: Carpet | Version: development version Resolution: fixed | Keywords: --------------------------+------------------------------------------------- Changes (by rhaas):
* status: reviewed_ok => closed * resolution: => fixed
Comment:
Hmm. We have tested that the tag works with grid arrays (in the thorn for which this functionality was introduced, "Replay" in Zelmani if you are curious). I had *not* tested whether I had broken split_components. Let me see.
Hmm, alright, I am tempted to claim that Carpet::split_components = "no" is not usable right now. Setting it triggers an assert(nprocs == 1) in SplitRegionsMaps_Automatic_Recursively unless CCTK_NProcs() == 1 in which case splitting components makes no sense anyway (since all(dims) == true). dims is set to all true just before we enter SplitRegionsMaps_Automatic_Recursively (namely in line 1715): {{{ for (int r=0, p=0; r<nregs; p+=mynprocs.AT(r), ++r) { if (recompose_verbose) cout << "SRMA superreg[" << r << "] " << superregs.AT(r) << endl; // bvect const dims = false; bvect const dims = not split_components || no_split_dims; SplitRegionsMaps_Automatic_Recursively (dims, p, mynprocs.AT(r), superregs.AT(r), newregs); } // for r }}} I am no sure how to construct a parameter file to make this pass. Anyhow, I did not change its behaviour it seems :-).
I'll revive CarpetTest and make it use the tag for one of its arrays.
Committed as git has 911ab59919a935b1d25146830673b2d200c74fed "Carpet: add new group tag no_split_directions".