[Commits] [svn:einsteintoolkit] Hydro_Analysis/trunk/ (Rev. 123)

rhaas at tapir.caltech.edu rhaas at tapir.caltech.edu
Tue Nov 27 17:47:44 CST 2012


User: rhaas
Date: 2012/11/27 05:47 PM

Modified:
 /trunk/
  param.ccl
 /trunk/src/
  Hydro_Analysis.c

Log:
 Hydro_Analysis: add verbosity_level option to control
  how much data to output to stdout

File Changes:

Directory: /trunk/src/
======================

File [modified]: Hydro_Analysis.c
Delta lines: +42 -4
===================================================================
--- trunk/src/Hydro_Analysis.c	2012-11-27 23:47:09 UTC (rev 122)
+++ trunk/src/Hydro_Analysis.c	2012-11-27 23:47:44 UTC (rev 123)
@@ -90,7 +90,7 @@
   DECLARE_CCTK_ARGUMENTS
   DECLARE_CCTK_PARAMETERS
 
-  int set_maximum_location;
+  int set_maximum_location, warned_about_multiple_local_maxima = 0;
 
   /* Initialized MPI-local quantities */
   CCTK_REAL local_rho_max_loc[4], level_rho_max_loc[4];
@@ -115,6 +115,25 @@
       {
         #pragma omp critical
         {
+          // have to already warn here when we still have the actual coordinates around
+          if (verbosity_level >= 1 && round(local_rho_max_loc[3]) >= 1.)
+          { 
+            CCTK_WARN(1, "Found more than one identical maximum in single patch.");
+            if (verbosity_level >= 2)
+            {
+              if (round(local_rho_max_loc[3]) == 1.) { // once we detect the second maximum, output the first as well
+                CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING,
+                          "my candidate: (%g,%g,%g) with value %g.",
+                           local_rho_max_loc[0],local_rho_max_loc[1],local_rho_max_loc[2],
+                           *Hydro_Analysis_rho_max);
+              }
+              CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING,
+                        "my candidate: (%g,%g,%g) with value %g.",
+                         x[i3D], y[i3D], z[i3D],
+                         *Hydro_Analysis_rho_max);
+              warned_about_multiple_local_maxima = 1;
+            }
+          }
           local_rho_max_loc[0] += x[i3D];
           local_rho_max_loc[1] += y[i3D];
           local_rho_max_loc[2] += z[i3D];
@@ -149,11 +168,30 @@
         level_rho_max_loc[1] /= level_rho_max_loc[3];
         level_rho_max_loc[2] /= level_rho_max_loc[3];
 
+        if (verbosity_level >= 1 && !have_warned_about_multiple_maxima)
+        {
+          CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING,
+                     "Found more than one (%d) identical maximum, using average location (%g,%g,%g).",
+                     (int)round(level_rho_max_loc[3]),
+                     level_rho_max_loc[0], level_rho_max_loc[1],
+                     level_rho_max_loc[2]);
+          have_warned_about_multiple_maxima = 1;
+        }
+
         set_maximum_location = 1;
       } else {
-        CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING,
-                   "Found more than one (%d) identical maximum, not setting anything.",
-                   (int)round(level_rho_max_loc[3]));
+        if (verbosity_level >= 1)
+        {
+          CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING,
+                     "Found more than one (%d) identical maximum, not setting anything.",
+                     (int)round(level_rho_max_loc[3]));
+          if (verbosity_level >= 2 && !warned_about_multiple_local_maxima)
+          { 
+            CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING,
+                       "my candidate: (%g,%g,%g) with value %g.",
+                       local_rho_max_loc[0],local_rho_max_loc[1],local_rho_max_loc[2],
+                       *Hydro_Analysis_rho_max);
+          }
         }
         set_maximum_location = 0;
       }

Directory: /trunk/
==================

File [modified]: param.ccl
Delta lines: +7 -0
===================================================================
--- trunk/param.ccl	2012-11-27 23:47:09 UTC (rev 122)
+++ trunk/param.ccl	2012-11-27 23:47:44 UTC (rev 123)
@@ -11,6 +11,13 @@
 {
 } "false"
 
+INT verbosity_level "how much information to ouptut to the logs" STEERABLE = always
+{
+  0 :: "Output nothing"
+  1 :: "warn when finding multiple maxima"
+  2 :: "also output location of maxima" 
+} 1
+
 BOOLEAN Hydro_Analysis_rho_max_loc_only_positive_x "Restrict location search for density maximum to positive values of x"
 {
 } "false"



More information about the Commits mailing list