aboutsummaryrefslogtreecommitdiff
path: root/Carpet
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2006-06-27 19:16:00 +0000
committerErik Schnetter <schnetter@cct.lsu.edu>2006-06-27 19:16:00 +0000
commitf37a72321ee586ec326a975e83b18afe9ef0379c (patch)
tree37dc86f57ed4ebc0db0cbace00de576d8ad2dab8 /Carpet
parentd4fb60ff7880c18d72c07ae33dec583fedf25ef7 (diff)
CarpetRegrid2: Check number of refinement levels
darcs-hash:20060627191640-dae7b-7ba8608e73c3e4cbe1cede70a8f1c0eee81e3c78.gz
Diffstat (limited to 'Carpet')
-rw-r--r--Carpet/CarpetRegrid2/schedule.ccl5
-rw-r--r--Carpet/CarpetRegrid2/src/make.code.defn2
-rw-r--r--Carpet/CarpetRegrid2/src/paramcheck.cc34
-rw-r--r--Carpet/CarpetRegrid2/src/regrid.cc3
4 files changed, 43 insertions, 1 deletions
diff --git a/Carpet/CarpetRegrid2/schedule.ccl b/Carpet/CarpetRegrid2/schedule.ccl
index 7d79922be..9fcd61d0c 100644
--- a/Carpet/CarpetRegrid2/schedule.ccl
+++ b/Carpet/CarpetRegrid2/schedule.ccl
@@ -1 +1,6 @@
# Schedule definitions for thorn CarpetRegrid2
+
+SCHEDULE CarpetRegrid2_ParamCheck AT paramcheck
+{
+ LANG: C
+} "Check parameters"
diff --git a/Carpet/CarpetRegrid2/src/make.code.defn b/Carpet/CarpetRegrid2/src/make.code.defn
index dbf29da7f..5106b913a 100644
--- a/Carpet/CarpetRegrid2/src/make.code.defn
+++ b/Carpet/CarpetRegrid2/src/make.code.defn
@@ -1,7 +1,7 @@
# Main make.code.defn file for thorn CarpetRegrid2
# Source files in this directory
-SRCS = regrid.cc
+SRCS = paramcheck.cc regrid.cc
# Subdirectories containing source files
SUBDIRS =
diff --git a/Carpet/CarpetRegrid2/src/paramcheck.cc b/Carpet/CarpetRegrid2/src/paramcheck.cc
new file mode 100644
index 000000000..51830038e
--- /dev/null
+++ b/Carpet/CarpetRegrid2/src/paramcheck.cc
@@ -0,0 +1,34 @@
+#include "cctk.h"
+#include "cctk_Arguments.h"
+#include "cctk_Parameters.h"
+
+#include "carpet.hh"
+
+
+
+namespace CarpetRegrid2 {
+
+ using namespace Carpet;
+
+
+
+ extern "C" {
+ void CarpetRegrid2_ParamCheck (CCTK_ARGUMENTS);
+ }
+
+
+
+ void CarpetRegrid2_ParamCheck (CCTK_ARGUMENTS)
+ {
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ if (num_centres >= 1 and num_levels_1 > maxreflevels or
+ num_centres >= 2 and num_levels_2 > maxreflevels or
+ num_centres >= 3 and num_levels_3 > maxreflevels)
+ {
+ CCTK_PARAMWARN ("The number of requested refinement levels is larger than the maximum number of levels specified by Carpet::max_refinement_levels");
+ }
+ }
+
+} // namespace CarpetRegrid2
diff --git a/Carpet/CarpetRegrid2/src/regrid.cc b/Carpet/CarpetRegrid2/src/regrid.cc
index d4495e63a..8f9866c77 100644
--- a/Carpet/CarpetRegrid2/src/regrid.cc
+++ b/Carpet/CarpetRegrid2/src/regrid.cc
@@ -20,6 +20,7 @@
namespace CarpetRegrid2 {
using namespace std;
+ using namespace Carpet;
@@ -88,6 +89,8 @@ namespace CarpetRegrid2 {
default:
assert (0);
}
+
+ assert (num_levels <= maxreflevels);
}