aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2010-12-22 20:39:15 -0600
committerErik Schnetter <schnetter@cct.lsu.edu>2010-12-22 20:39:15 -0600
commit16d6d03145801470add8549d78d4bb22ab6e135f (patch)
treef5766d99947f0512f91affda513d4001f539dd6f
parentefc1e99e75da4cb69097b07c904bb4e8b27d1a6a (diff)
Carpet: Emit prolongation warnings only where prolongation is enabled
Emit warnings about wrong number of time levels for prolongation only for groups which have prolongation enabled.
-rw-r--r--Carpet/Carpet/src/Cycle.cc62
1 files changed, 27 insertions, 35 deletions
diff --git a/Carpet/Carpet/src/Cycle.cc b/Carpet/Carpet/src/Cycle.cc
index 582a966e5..566870cba 100644
--- a/Carpet/Carpet/src/Cycle.cc
+++ b/Carpet/Carpet/src/Cycle.cc
@@ -28,20 +28,33 @@ namespace Carpet {
tt->advance_time (mglevel, reflevel);
cctkGH->cctk_time = tt->get_time (mglevel, reflevel, timelevel);
+ int errors = 0;
+
for (int group=0; group<CCTK_NumGroups(); ++group) {
if (CCTK_QueryGroupStorageI(cctkGH, group)) {
int const activetimelevels = CCTK_ActiveTimeLevelsGI (cctkGH, group);
- if (activetimelevels > 1) {
- if (activetimelevels < prolongation_order_time+1) {
- char * const groupname = CCTK_GroupName (group);
- CCTK_VWarn (CCTK_WARN_ABORT, __LINE__, __FILE__, CCTK_THORNSTRING,
- "Group \"%s\" has %d only active time levels. Groups with more than one active time level need at least %d active time levels for prolongation_order_time=%d",
- groupname,
- activetimelevels, int(prolongation_order_time+1),
- int(prolongation_order_time));
- free (groupname);
+
+ switch (groupdata.AT(group).transport_operator) {
+ case op_Lagrange:
+ case op_ENO:
+ case op_WENO:
+ case op_Lagrange_monotone:
+ if (activetimelevels > 1) {
+ if (activetimelevels < prolongation_order_time+1) {
+ char * const groupname = CCTK_GroupName (group);
+ CCTK_VWarn (CCTK_WARN_ALERT, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "Group \"%s\" has %d only active time levels. Groups with more than one active time level need at least %d active time levels for prolongation_order_time=%d",
+ groupname,
+ activetimelevels, int(prolongation_order_time+1),
+ int(prolongation_order_time));
+ free (groupname);
+ ++ errors;
+ }
}
+ break;
+ default:
+ ; // do nothing
}
switch (CCTK_GroupTypeI(group)) {
@@ -82,6 +95,11 @@ namespace Carpet {
} // switch grouptype
} // if storage
} // for group
+
+ if (errors > 0) {
+ CCTK_VWarn (CCTK_WARN_ABORT, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "Errors in %d groups detected; aborting", errors);
+ }
}
@@ -100,19 +118,6 @@ namespace Carpet {
for (int group=0; group<CCTK_NumGroups(); ++group) {
if (CCTK_QueryGroupStorageI(cctkGH, group)) {
- int const activetimelevels = CCTK_ActiveTimeLevelsGI (cctkGH, group);
- if (activetimelevels > 1) {
- if (activetimelevels < prolongation_order_time+1) {
- char * const groupname = CCTK_GroupName (group);
- CCTK_VWarn (CCTK_WARN_ABORT, __LINE__, __FILE__, CCTK_THORNSTRING,
- "Group \"%s\" has %d only active time levels. Groups with more than one active time level need at least %d active time levels for prolongation_order_time=%d",
- groupname,
- activetimelevels, int(prolongation_order_time+1),
- int(prolongation_order_time));
- free (groupname);
- }
- }
-
switch (CCTK_GroupTypeI(group)) {
case CCTK_GF:
@@ -170,19 +175,6 @@ namespace Carpet {
for (int group=0; group<CCTK_NumGroups(); ++group) {
if (CCTK_QueryGroupStorageI(cctkGH, group)) {
- int const activetimelevels = CCTK_ActiveTimeLevelsGI (cctkGH, group);
- if (activetimelevels > 1) {
- if (activetimelevels < prolongation_order_time+1) {
- char * const groupname = CCTK_GroupName (group);
- CCTK_VWarn (CCTK_WARN_ABORT, __LINE__, __FILE__, CCTK_THORNSTRING,
- "Group \"%s\" has %d only active time levels. Groups with more than one active time level need at least %d active time levels for prolongation_order_time=%d",
- groupname,
- activetimelevels, int(prolongation_order_time+1),
- int(prolongation_order_time));
- free (groupname);
- }
- }
-
switch (CCTK_GroupTypeI(group)) {
case CCTK_GF: