[ET Trac] [Einstein Toolkit] #1238: implement buffer mask in CarpetEvolutionMask
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Fri Feb 1 15:45:29 CST 2013
#1238: implement buffer mask in CarpetEvolutionMask
--------------------------+-------------------------------------------------
Reporter: rhaas | Owner: eschnett
Type: enhancement | Status: review
Priority: minor | Milestone:
Component: Carpet | Version:
Resolution: | Keywords: CarpetEvolutionMask
--------------------------+-------------------------------------------------
Comment (by rhaas):
I had not really though of it but yes there is a variable
dd.local_boxes.at(mglevel).at(reflevel).at(local_component).buffers that
holds an ibset of the local buffers. Patch 0002 uses it and would have the
decided advantage of not copying the logic to create the buffer region
description to several places in the code.
However I found that using these buffers is not really what I want. They
are computed using the owned points so that ghost zones that are also
buffer zones are flagged as non-buffers which is not what I want. My
intention is to use the buffer mask to find out where eg. con2prim does
not have to run. Since con2prim runs everywhere (also in ghosts and
buffers) since it runs after SYNC (since con2prim scales better than a
SYNC of the primitives) I need to know if a point is both a buffer and a
ghost zone. This seems due to dh::regrid constructing buffers using the
"owned" region rather than the "exterior".
buffers is used in dh::regrid in line 956
{{{
// Prolongation must fill what cannot be synchronised, and
// also all buffer zones
needrecv += box.buffers;
}}}
where I believe one *currently* could use buffers constructed using
"exterior" instead of "owned". However this depends on needrecv being set
up in the "#else" branch of line 936.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1238#comment:7>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list