diff options
author | Erik Schnetter <schnetter@gmail.com> | 2013-09-25 12:15:04 -0400 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2013-09-25 12:15:04 -0400 |
commit | bc08df460473e83129b972eed6472bc99b14de5e (patch) | |
tree | e28e26b27352c2f2cb9c2e0c0ee79024c73593f5 /Carpet/Carpet/src/SetupGH.cc | |
parent | d37f25ab50b6155026196665c502864e9696dd5b (diff) |
Carpet: Introduce parameter max_time_levels
This parameter defines the maximum number of time levels that a variable can have when being used for time prolongation. This allows using more time levels than prolongation_order_time+1.
Diffstat (limited to 'Carpet/Carpet/src/SetupGH.cc')
-rw-r--r-- | Carpet/Carpet/src/SetupGH.cc | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/Carpet/Carpet/src/SetupGH.cc b/Carpet/Carpet/src/SetupGH.cc index dfbf05fa1..c77a3ab2c 100644 --- a/Carpet/Carpet/src/SetupGH.cc +++ b/Carpet/Carpet/src/SetupGH.cc @@ -541,7 +541,7 @@ namespace Carpet { cctkGH->cctk_mode = CCTK_MODE_META; #endif - timelevels = prolongation_order_time + 1; + timelevels = maxtimelevels; timelevel = 0; timelevel_offset = 0; @@ -635,6 +635,19 @@ namespace Carpet { { DECLARE_CCTK_PARAMETERS; + // Set maximum number of time levels + if (max_time_levels < 0) { + // Set automatically (backward compatibility) + maxtimelevels = prolongation_order_time + 1; + } else { + maxtimelevels = max_time_levels; + } + if (maxtimelevels < prolongation_order_time + 1) { + CCTK_VError (__LINE__, __FILE__, CCTK_THORNSTRING, + "There are enough time levels for this time prolongation order: max_time_levels=%d, prolongation_order_time=%d", + int(max_time_levels), int(prolongation_order_time)); + } + // Set maximum number of refinement levels maxreflevels = max_refinement_levels; |