diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2007-03-04 21:07:00 +0000 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2007-03-04 21:07:00 +0000 |
commit | 85e40cbe4a8ab12d6b893953ea906cbc3ce82124 (patch) | |
tree | b114bfcd5aaac90d71c13e8aedfb7bf490b1ce6f /Carpet/CarpetLib/src/dh.hh | |
parent | 1dc71e8dffdd23cee4c9624c5056a09e54ad1d59 (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.hh | 7 |
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 (); |