aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2011-11-14 15:10:17 -0500
committerBarry Wardell <barry.wardell@gmail.com>2011-12-14 19:54:54 +0000
commitb3be54ca3dd78aeb60f083bd8a7ddbb30b15b66d (patch)
tree8104d12736dddf3c720690ef77d719a8cc33409a
parent31af145203c6f953c569fd30bf2937f4a0206e68 (diff)
Carpet: Introduce per-level regridding epochs
-rw-r--r--Carpet/Carpet/src/Recompose.cc12
-rw-r--r--Carpet/Carpet/src/variables.cc1
-rw-r--r--Carpet/Carpet/src/variables.hh1
3 files changed, 14 insertions, 0 deletions
diff --git a/Carpet/Carpet/src/Recompose.cc b/Carpet/Carpet/src/Recompose.cc
index c44172e23..ce68c66d3 100644
--- a/Carpet/Carpet/src/Recompose.cc
+++ b/Carpet/Carpet/src/Recompose.cc
@@ -367,6 +367,14 @@ namespace Carpet {
// }
++ regridding_epoch;
+ // Mark all vanished levels as changed
+ for (int rl=reflevels; rl<int(level_regridding_epochs.size()); ++rl) {
+ ++ level_regridding_epochs.at(rl);
+ }
+ // Insert entries for new levels
+ if (int(level_regridding_epochs.size()) < reflevels) {
+ level_regridding_epochs.resize(reflevels, 0);
+ }
OutputGridStatistics (cctkGH);
@@ -398,6 +406,10 @@ namespace Carpet {
ClassifyPoints (cctkGH, rl);
+ if (did_recompose) {
+ ++ level_regridding_epochs.at(rl);
+ }
+
timer.stop();
return did_recompose;
}
diff --git a/Carpet/Carpet/src/variables.cc b/Carpet/Carpet/src/variables.cc
index c9d82cb16..1de61db65 100644
--- a/Carpet/Carpet/src/variables.cc
+++ b/Carpet/Carpet/src/variables.cc
@@ -115,6 +115,7 @@ namespace Carpet {
vector<dh*> vdd; // [map]
th* tt;
int regridding_epoch;
+ vector<int> level_regridding_epochs;
// Data for the groups
vector<groupdesc> groupdata; // [group]
diff --git a/Carpet/Carpet/src/variables.hh b/Carpet/Carpet/src/variables.hh
index 037e6a192..778f6f516 100644
--- a/Carpet/Carpet/src/variables.hh
+++ b/Carpet/Carpet/src/variables.hh
@@ -156,6 +156,7 @@ namespace Carpet {
extern vector<dh*> vdd; // [map]
extern th* tt;
extern int regridding_epoch; // increases with each regridding
+ extern vector<int> level_regridding_epochs;
// Data for the groups
struct groupdesc {