aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetLib/src/dh.hh
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2007-03-04 21:07:00 +0000
committerErik Schnetter <schnetter@cct.lsu.edu>2007-03-04 21:07:00 +0000
commit85e40cbe4a8ab12d6b893953ea906cbc3ce82124 (patch)
treeb114bfcd5aaac90d71c13e8aedfb7bf490b1ce6f /Carpet/CarpetLib/src/dh.hh
parent1dc71e8dffdd23cee4c9624c5056a09e54ad1d59 (diff)
CarpetLib: Optimise dh class further
Reduce the number of bbox operations while setting up the communication schedule. Cache some results. Introduce timers throughout. Introduce a parameter CarpetLib::check_bboxes, defaulting to "yes", which can be used to disable the self-checks. darcs-hash:20070304210744-dae7b-1a2756dc0aa2f30b2f1311a9475c2a35513f2cfc.gz
Diffstat (limited to 'Carpet/CarpetLib/src/dh.hh')
-rw-r--r--Carpet/CarpetLib/src/dh.hh7
1 files changed, 6 insertions, 1 deletions
diff --git a/Carpet/CarpetLib/src/dh.hh b/Carpet/CarpetLib/src/dh.hh
index 86e3c4f1a..ad3024dc1 100644
--- a/Carpet/CarpetLib/src/dh.hh
+++ b/Carpet/CarpetLib/src/dh.hh
@@ -64,6 +64,7 @@ public:
ibbox interior; // interior (without boundaries)
ibset owned; // can be used for synchronisation
+
iblist send_mg_fine;
iblist send_mg_coarse;
iblist recv_mg_fine;
@@ -78,6 +79,9 @@ public:
iblistvect send_ref_bnd_fine; // sent to finer grids
ibset boundaries; // boundaries
+ ibset bnd_sync; // boundaries which are synchronised
+ ibset bnd_ref; // boundaries which are prolongated
+
iblistvect recv_sync; // received while syncing
pvect recv_sync_fast;
iblistvect recv_ref_bnd_coarse; // received from coarser grids
@@ -116,6 +120,7 @@ private:
void setup_sync_boxes (dboxes & b, int rl, int c, int ml);
void setup_multigrid_boxes (dboxes & b, int rl, int c, int ml);
void setup_refinement_prolongation_boxes (dboxes & b, int rl, int c, int ml);
+ void prepare_refinement_boundary_prolongation_boxes (dboxes & b, int rl, int c, int ml);
void setup_refinement_boundary_prolongation_boxes (dboxes & b, int rl, int c, int ml);
void setup_refinement_restriction_boxes (dboxes & b, int rl, int c, int ml);
void optimise_field (dboxes & b,
@@ -126,7 +131,7 @@ private:
int rl, int c, int ml);
void trim_unsynced_boundaries (dboxes & b, int rl, int c, int ml);
void do_output_bboxes (dboxes & b, int rl, int c, int ml);
- void check_bboxes (dboxes & b, int rl, int c, int ml);
+ void do_check_bboxes (dboxes & b, int rl, int c, int ml);
void calculate_bases ();
void output_bases ();