From ac4c1c19aee055a670433955e304b8d11b553942 Mon Sep 17 00:00:00 2001 From: knarf Date: Fri, 4 Jun 2010 19:27:33 +0000 Subject: Fix search for density maximum if finer levels do not contain it git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/Hydro_Analysis/trunk@108 b6729ddc-ac74-4bd1-908c-9dc7244c52a1 --- src/Hydro_Analysis.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Hydro_Analysis.c b/src/Hydro_Analysis.c index 2270f8a..d02b64c 100644 --- a/src/Hydro_Analysis.c +++ b/src/Hydro_Analysis.c @@ -86,10 +86,11 @@ void Hydro_Analysis_LocationSearch(CCTK_ARGUMENTS) DECLARE_CCTK_PARAMETERS /* Initialized MPI-local quantities */ - CCTK_REAL local_rho_max_loc[3]; + CCTK_REAL local_rho_max_loc[4], level_rho_max_loc[4]; local_rho_max_loc[0] = 0.0; local_rho_max_loc[1] = 0.0; local_rho_max_loc[2] = 0.0; + local_rho_max_loc[3] = 0.0; // Information if it was found at all on this level /* Look for the location of the global maximum. * This algorithm will have problems when that occurs at more than @@ -110,6 +111,7 @@ void Hydro_Analysis_LocationSearch(CCTK_ARGUMENTS) local_rho_max_loc[0] = x[i3D]; local_rho_max_loc[1] = y[i3D]; local_rho_max_loc[2] = z[i3D]; + local_rho_max_loc[3] = 1.; } } } @@ -123,7 +125,16 @@ void Hydro_Analysis_LocationSearch(CCTK_ARGUMENTS) if (handle_sum < 0) CCTK_WARN(0, "Unable to get reduction handle 'sum'."); if (CCTK_ReduceLocArrayToArray1D(cctkGH, -1, handle_sum, &local_rho_max_loc, - Hydro_Analysis_rho_max_loc, 3, CCTK_VARIABLE_REAL)) + level_rho_max_loc, 4, CCTK_VARIABLE_REAL)) CCTK_WARN(0, "Error while reducing local_rho_max_loc"); + if (level_rho_max_loc[3]) { + Hydro_Analysis_rho_max_loc[0] = level_rho_max_loc[0]; + Hydro_Analysis_rho_max_loc[1] = level_rho_max_loc[1]; + Hydro_Analysis_rho_max_loc[2] = level_rho_max_loc[2]; + } +/* CCTK_VInfo(CCTK_THORNSTRING, "New location: %g,%g,%g", + Hydro_Analysis_rho_max_loc[0], + Hydro_Analysis_rho_max_loc[1], + Hydro_Analysis_rho_max_loc[2]); */ } -- cgit v1.2.3