diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2007-04-21 03:17:00 +0000 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2007-04-21 03:17:00 +0000 |
commit | a3c8d732c81e20fe345759f3e573686adc674d8f (patch) | |
tree | 49c424240b8541defa77a40696512edc2415b8a3 /Carpet/CarpetLib/src | |
parent | 8b61abe1c2cacd53cacfffe5c365f9b5f76aed8b (diff) |
CarpetLib: Synchronise outer boundary points as well
darcs-hash:20070421031755-dae7b-5c3b1adbca478900cae6e98ec7ea792ee7ec976d.gz
Diffstat (limited to 'Carpet/CarpetLib/src')
-rw-r--r-- | Carpet/CarpetLib/src/dh.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Carpet/CarpetLib/src/dh.cc b/Carpet/CarpetLib/src/dh.cc index 50e522f2b..1172c60e5 100644 --- a/Carpet/CarpetLib/src/dh.cc +++ b/Carpet/CarpetLib/src/dh.cc @@ -497,7 +497,17 @@ regrid () // Synchronisation should fill as many boundary points as // possible + +#if 0 + // Outer boundaries are not synchronised, since they cannot be + // filled by boundary prolongation either, and therefore the + // user code must set them anyway. ibset needrecv = box.boundaries; +#else + // Outer boundaries are synchronised for backward + // compatibility. + ibset needrecv = box.ghosts; +#endif box.sync_recv.resize (h.components(rl)); box.sync_send.resize (h.components(rl)); @@ -507,7 +517,11 @@ regrid () for (int cc = 0; cc < h.components(rl); ++ cc) { dboxes const & obox = boxes.AT(ml).AT(rl).AT(cc); +#if 0 ibset ovlp = needrecv & obox.owned; +#else + ibset ovlp = needrecv & obox.interior; +#endif ovlp.normalize(); if (cc == c) { @@ -537,6 +551,9 @@ regrid () if (rl > 0) { int const orl = rl - 1; + // Outer boundary points cannot be boundary prolongated + needrecv &= box.communicated; + // Prolongation must fill what cannot be synchronised, and // also all buffer zones needrecv += box.buffers; |