From d5c046bcb16ae8e4f307c14405196e6663187dbf Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Wed, 1 Jun 2005 14:42:00 +0000 Subject: CarpetRegrid: Better error messages for wrong refinement specifications Check that there are no more than Carpet::max_refinement_levels-1 refinement levels specified, and abort with an error message if so. When aligning the grid size to the outer boundary, align lower and upper boundary at the same time. Otherwise there is an intermediate grid size which may not be a multiple of the grid spacing. darcs-hash:20050601144240-891bb-a558598231e19322eba7f02339b767c92c603edf.gz --- Carpet/CarpetRegrid/src/manualcoordinatelist.cc | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'Carpet') diff --git a/Carpet/CarpetRegrid/src/manualcoordinatelist.cc b/Carpet/CarpetRegrid/src/manualcoordinatelist.cc index b444549d4..e2c3b946c 100644 --- a/Carpet/CarpetRegrid/src/manualcoordinatelist.cc +++ b/Carpet/CarpetRegrid/src/manualcoordinatelist.cc @@ -65,6 +65,9 @@ namespace CarpetRegrid { } catch (input_error) { CCTK_WARN (0, "Could not parse parameter \"coordinates\""); } + if (newbbss.size() >= spacereffacts.size()) { + CCTK_WARN (0, "Parameter \"coordinates\" defines too many refinement levels; at most Carpet::max_refinement_levels - 1 may be defined"); + } } vector > newobss; @@ -75,31 +78,28 @@ namespace CarpetRegrid { newobss.resize(newbbss.size()); for (size_t rl=0; rl= spacereffacts.size()) { + CCTK_WARN (0, "Parameter \"outerbounds\" defines too many refinement levels; at most Carpet::max_refinement_levels - 1 may be defined"); + } bool good = newobss.size() == newbbss.size(); if (good) { for (size_t rl=0; rl