diff options
author | Erik Schnetter <schnetter@gmail.com> | 2012-06-20 16:53:27 -0700 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2012-06-20 16:53:27 -0700 |
commit | b772958074cf5db54b5e76e1fb9b0ac9cf727425 (patch) | |
tree | 0773eb7e34e1807cf9ccb8472813d8efa7fbf3b9 | |
parent | 3d87230fa63a6ef52b43a02da095cad8d9fc64e2 (diff) |
Carpet: CCTK_ActiveTimeLevels: Return minimum instead of sum
Return the minimum instead of the sum of the number of active time levels.
-rw-r--r-- | Carpet/Carpet/src/Storage.cc | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/Carpet/Carpet/src/Storage.cc b/Carpet/Carpet/src/Storage.cc index 3153ef48d..01104a401 100644 --- a/Carpet/Carpet/src/Storage.cc +++ b/Carpet/Carpet/src/Storage.cc @@ -1,4 +1,6 @@ +#include <algorithm> #include <cassert> +#include <climits> #include <cstdlib> #include <cctk.h> @@ -60,7 +62,7 @@ namespace Carpet { int const min_ml = all_ml ? 0 : mglevel; int const max_ml = all_ml ? mglevels : mglevel+1; - int total_num_timelevels = 0; + int min_num_timelevels = INT_MAX; for (int n=0; n<n_groups; ++n) { int const group = groups[n]; @@ -202,19 +204,21 @@ namespace Carpet { // Complain if there are not enough active time levels GroupStorageCheck (cctkGH, group, ml, rl); - // Record current number of time levels - // Note: This adds the time levels of all refinement levels - total_num_timelevels - += groupdata.AT(group).activetimelevels.AT(ml).AT(rl); + // Record (minimum of) current number of time levels + min_num_timelevels = + min(min_num_timelevels, + groupdata.AT(group).activetimelevels.AT(ml).AT(rl)); } // for rl } // for ml } // for n + if (min_num_timelevels == INT_MAX) { + min_num_timelevels = 0; + } - // return total_num_timelevels; return do_allow_past_timelevels ? - total_num_timelevels : min(1,total_num_timelevels); + min_num_timelevels : min(1,min_num_timelevels); } |