aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Carpet/src/SetupGH.cc
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@gmail.com>2013-09-25 12:15:04 -0400
committerErik Schnetter <schnetter@gmail.com>2013-09-25 12:15:04 -0400
commitbc08df460473e83129b972eed6472bc99b14de5e (patch)
treee28e26b27352c2f2cb9c2e0c0ee79024c73593f5 /Carpet/Carpet/src/SetupGH.cc
parentd37f25ab50b6155026196665c502864e9696dd5b (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.cc15
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;