aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetInterp2
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2011-11-14 15:13:28 -0500
committerBarry Wardell <barry.wardell@gmail.com>2011-12-14 19:54:54 +0000
commitcb1d0ec7e92d9cd2b7cc528b4e6c909833e49be9 (patch)
tree7ddec50e13c5450e701396b47bf9562759d9a972 /Carpet/CarpetInterp2
parentcbac8861045e923cc2c8133bc42b6e81a8abad39 (diff)
CarpetInterp2: Use level regridding epoch
Use level regridding epoch to determine whether the interpolation communication scheme has to be recreated.
Diffstat (limited to 'Carpet/CarpetInterp2')
-rw-r--r--Carpet/CarpetInterp2/src/fasterp.cc23
-rw-r--r--Carpet/CarpetInterp2/src/fasterp.hh1
2 files changed, 18 insertions, 6 deletions
diff --git a/Carpet/CarpetInterp2/src/fasterp.cc b/Carpet/CarpetInterp2/src/fasterp.cc
index 61383fa69..f0f84da62 100644
--- a/Carpet/CarpetInterp2/src/fasterp.cc
+++ b/Carpet/CarpetInterp2/src/fasterp.cc
@@ -489,7 +489,10 @@ namespace CarpetInterp2 {
fasterp_glocs_t const & locations,
int const order_)
: order (order_),
- regridding_epoch (Carpet::regridding_epoch)
+ reflevel (Carpet::reflevel),
+ regridding_epoch (reflevel == -1 ?
+ Carpet::regridding_epoch :
+ Carpet::level_regridding_epochs.at(reflevel))
{
// Some global properties
int const npoints = locations.size();
@@ -565,8 +568,7 @@ namespace CarpetInterp2 {
"Interpolation order must be non-negative");
}
if (order > max_order) {
- CCTK_VWarn (CCTK_WARN_ABORT,
- __LINE__, __FILE__, CCTK_THORNSTRING,
+ CCTK_VWarn (CCTK_WARN_ABORT, __LINE__, __FILE__, CCTK_THORNSTRING,
"Interpolation order cannot be larger than max_order=%d; "
"order=%d was requested. "
"(You can increase the compile time constant max_order "
@@ -1056,9 +1058,18 @@ namespace CarpetInterp2 {
DECLARE_CCTK_PARAMETERS;
// Check regridding epoch
- if (regridding_epoch != Carpet::regridding_epoch) {
- CCTK_WARN (CCTK_WARN_ALERT,
- "The Carpet grid structure was changed since this fasterp_setup was created");
+ if (regridding_epoch != (reflevel == -1 ?
+ Carpet::regridding_epoch :
+ Carpet::level_regridding_epochs.at(reflevel)))
+ {
+ if (reflevel == -1) {
+ CCTK_VWarn (CCTK_WARN_ABORT, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "The Carpet grid structure was changed since this fasterp_setup was created");
+ } else {
+ CCTK_VWarn (CCTK_WARN_ABORT, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "The Carpet grid structure on level %d was changed since this fasterp_setup was created",
+ reflevel);
+ }
}
// Desired time level
diff --git a/Carpet/CarpetInterp2/src/fasterp.hh b/Carpet/CarpetInterp2/src/fasterp.hh
index 1a58e8222..fb76c0d24 100644
--- a/Carpet/CarpetInterp2/src/fasterp.hh
+++ b/Carpet/CarpetInterp2/src/fasterp.hh
@@ -277,6 +277,7 @@ namespace CarpetInterp2 {
send_descr_t send_descr;
int order;
+ int reflevel;
int regridding_epoch;
void