aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Carpet/CarpetRegrid/param.ccl6
-rw-r--r--Carpet/CarpetRegrid/src/regrid.cc12
2 files changed, 14 insertions, 4 deletions
diff --git a/Carpet/CarpetRegrid/param.ccl b/Carpet/CarpetRegrid/param.ccl
index cd33d6c74..9ef099da2 100644
--- a/Carpet/CarpetRegrid/param.ccl
+++ b/Carpet/CarpetRegrid/param.ccl
@@ -1,5 +1,5 @@
# Parameter definitions for thorn CarpetRegrid
-# $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetRegrid/param.ccl,v 1.19 2004/05/27 12:27:16 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetRegrid/param.ccl,v 1.20 2004/05/29 18:52:42 schnetter Exp $
@@ -42,6 +42,10 @@ CCTK_INT activate_next "The next iteration at which new levels should be activat
0: :: "Note that this parameter is steered when new levels are activated"
} 1
+BOOLEAN keep_same_grid_structure "Do not allow the grid structure to change; only allow levels to be switched on or off" STEERABLE=always
+{
+} "no"
+
KEYWORD refined_regions "Regions where the grid is refined" STEERABLE=always
diff --git a/Carpet/CarpetRegrid/src/regrid.cc b/Carpet/CarpetRegrid/src/regrid.cc
index a7d930689..598583221 100644
--- a/Carpet/CarpetRegrid/src/regrid.cc
+++ b/Carpet/CarpetRegrid/src/regrid.cc
@@ -13,7 +13,7 @@
#include "regrid.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetRegrid/src/regrid.cc,v 1.42 2004/05/27 12:27:16 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetRegrid/src/regrid.cc,v 1.43 2004/05/29 18:52:42 schnetter Exp $";
CCTK_FILEVERSION(Carpet_CarpetRegrid_regrid_cc);
}
@@ -62,6 +62,7 @@ namespace CarpetRegrid {
// Steer parameters
+ const int oldnumlevels = refinement_levels;
if (CCTK_EQUALS(activate_levels_on_regrid, "none")) {
// do nothing
@@ -69,7 +70,6 @@ namespace CarpetRegrid {
} else if (CCTK_EQUALS(activate_levels_on_regrid, "fixed")) {
if (cctkGH->cctk_iteration-1 >= activate_next) {
- const int oldnumlevels = refinement_levels;
const int newnumlevels
= min(refinement_levels + num_new_levels, maxreflevels);
assert (newnumlevels>0 && newnumlevels<=maxreflevels);
@@ -100,7 +100,6 @@ namespace CarpetRegrid {
if (! CCTK_IsFunctionAliased("RegridLevel")) {
CCTK_WARN (0, "No thorn has provided the function \"RegridLevel\"");
}
- const int oldnumlevels = refinement_levels;
const int newnumlevels
= RegridLevel (cctkGH, refinement_levels, maxreflevels);
if (newnumlevels>0 && newnumlevels<=maxreflevels) {
@@ -132,6 +131,13 @@ namespace CarpetRegrid {
+ // Return if no change in the grid structure is desired
+ if (keep_same_grid_structure) {
+ return refinement_levels != oldnumlevels;
+ }
+
+
+
int do_recompose;
if (CCTK_EQUALS(refined_regions, "none")) {