diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2010-12-22 20:39:15 -0600 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2010-12-22 20:39:15 -0600 |
commit | 16d6d03145801470add8549d78d4bb22ab6e135f (patch) | |
tree | f5766d99947f0512f91affda513d4001f539dd6f /Carpet | |
parent | efc1e99e75da4cb69097b07c904bb4e8b27d1a6a (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.
Diffstat (limited to 'Carpet')
-rw-r--r-- | Carpet/Carpet/src/Cycle.cc | 62 |
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: |