From b11697e03d2c0977de656aad0f5a961d39f6b120 Mon Sep 17 00:00:00 2001 From: schnetter <> Date: Sat, 29 May 2004 16:52:00 +0000 Subject: Introduce a parameter that allows omitting calling recompose when no Introduce a parameter that allows omitting calling recompose when no new levels have been activated or removed. darcs-hash:20040529165242-07bb3-5a81b08811c9c7cd16cfdcd84482dd3695c4e6bb.gz --- Carpet/CarpetRegrid/param.ccl | 6 +++++- Carpet/CarpetRegrid/src/regrid.cc | 12 +++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) (limited to 'Carpet/CarpetRegrid') 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")) { -- cgit v1.2.3