aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorknarf <knarf@b6729ddc-ac74-4bd1-908c-9dc7244c52a1>2010-01-12 16:31:45 +0000
committerknarf <knarf@b6729ddc-ac74-4bd1-908c-9dc7244c52a1>2010-01-12 16:31:45 +0000
commite7c1aff4934fc4595e6c5b205fcfb736fda1444a (patch)
treea27db54e85b78676f63dc02d0ccfc183aae56daf
parentd125e83b10fade7a1f24691802412e129799d89a (diff)
update
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/Hydro_Analysis/trunk@31 b6729ddc-ac74-4bd1-908c-9dc7244c52a1
-rw-r--r--interface.ccl6
-rw-r--r--param.ccl6
-rw-r--r--schedule.ccl13
-rw-r--r--src/Hydro_Analysis.c25
4 files changed, 37 insertions, 13 deletions
diff --git a/interface.ccl b/interface.ccl
index a5b27b7..060ec29 100644
--- a/interface.ccl
+++ b/interface.ccl
@@ -6,4 +6,10 @@ inherits: Grid, HydroBase
CCTK_REAL Hydro_Analysis_rho_max type = SCALAR tags='checkpoint="no"' "value of the maximum of rho"
+CCTK_REAL Hydro_Analysis_rho_sum type = SCALAR tags='checkpoint="no"' "value of the sum of rho"
+
CCTK_REAL Hydro_Analysis_rho_max_loc[3] type = SCALAR tags='checkpoint="no"' "coordinate location of the maximum of rho"
+
+CCTK_REAL Hydro_Analysis_rho_center_volume_weighted_gf[3] type = GF Timelevels = 3 tags='checkpoint="no" tensortypealias="vector"' "temporary GF to obtain the coordinate location of the volume weightes center of mass via a reduction"
+
+CCTK_REAL Hydro_Analysis_rho_center_volume_weighted[3] type = SCALAR tags='checkpoint="no"' "coordinate location of the volume weightes center of mass"
diff --git a/param.ccl b/param.ccl
index 0445a5f..3ab7385 100644
--- a/param.ccl
+++ b/param.ccl
@@ -7,3 +7,9 @@ BOOLEAN Hydro_Analysis_rho_max_search "Look for the value and location of the ma
BOOLEAN Hydro_Analysis_rho_max_loc_only_positive_x "Restrict location search for density maximum to positive values of x"
{
} "false"
+
+
+BOOLEAN Hydro_Analysis_weighted_center_of_mass "Look for the location of the center of mass"
+{
+} "false"
+
diff --git a/schedule.ccl b/schedule.ccl
index 764a822..b9fba6e 100644
--- a/schedule.ccl
+++ b/schedule.ccl
@@ -2,12 +2,21 @@
STORAGE: Hydro_Analysis_rho_max
STORAGE: Hydro_Analysis_rho_max_loc
+STORAGE: Hydro_Analysis_rho_center_volume_weighted
+ STORAGE: Hydro_Analysis_rho_center_volume_weighted_gf[3]
schedule group Hydro_Analysis AT POSTSTEP
{
+ STORAGE: Hydro_Analysis_rho_sum
} "Group for Hydro_Analysis routines"
-schedule Hydro_Analysis_GlobalReduction IN Hydro_Analysis
+schedule Hydro_Analysis_PrepareReduction IN Hydro_Analysis
+{
+ LANG: C
+ OPTIONS: global-early
+} "Compute the local reduction results"
+
+schedule Hydro_Analysis_Reduction IN Hydro_Analysis AFTER Hydro_Analysis_PrepareReduction
{
LANG: C
OPTIONS: global
@@ -15,7 +24,7 @@ schedule Hydro_Analysis_GlobalReduction IN Hydro_Analysis
if (Hydro_Analysis_rho_max_search)
{
- schedule Hydro_Analysis_LocationSearch IN Hydro_Analysis AFTER Hydro_Analysis_GlobalReduction
+ schedule Hydro_Analysis_LocationSearch IN Hydro_Analysis AFTER Hydro_Analysis_Reduction
{
LANG: C
OPTIONS: global loop-local
diff --git a/src/Hydro_Analysis.c b/src/Hydro_Analysis.c
index b3aae2a..5fef8a1 100644
--- a/src/Hydro_Analysis.c
+++ b/src/Hydro_Analysis.c
@@ -10,20 +10,23 @@ void Hydro_Analysis_PrepareReduction(CCTK_ARGUMENTS)
DECLARE_CCTK_PARAMETERS
printf("local\n");
- #pragma omp parallel
+ if (Hydro_Analysis_weighted_center_of_mass)
{
- LC_LOOP3(local_reduction, i,j,k,
- cctk_nghostzones[0], cctk_nghostzones[1], cctk_nghostzones[2],
- cctk_lsh[0] - cctk_nghostzones[0], cctk_lsh[1] - cctk_nghostzones[1],
- cctk_lsh[2] - cctk_nghostzones[2], cctk_lsh[0], cctk_lsh[1], cctk_lsh[2])
+ #pragma omp parallel
{
- CCTK_INT i3D = CCTK_GFINDEX3D(cctkGH, i, j, k);
- CCTK_INT size= cctk_lsh[0] * cctk_lsh[1] * cctk_lsh[2];
- Hydro_Analysis_rho_center_volume_weighted_gf[i3D+0*size] = rho[i3D] * x[i3D];
- Hydro_Analysis_rho_center_volume_weighted_gf[i3D+1*size] = rho[i3D] * y[i3D];
- Hydro_Analysis_rho_center_volume_weighted_gf[i3D+2*size] = rho[i3D] * z[i3D];
+ LC_LOOP3(local_reduction, i,j,k,
+ cctk_nghostzones[0], cctk_nghostzones[1], cctk_nghostzones[2],
+ cctk_lsh[0] - cctk_nghostzones[0], cctk_lsh[1] - cctk_nghostzones[1],
+ cctk_lsh[2] - cctk_nghostzones[2], cctk_lsh[0], cctk_lsh[1], cctk_lsh[2])
+ {
+ CCTK_INT i3D = CCTK_GFINDEX3D(cctkGH, i, j, k);
+ CCTK_INT size= cctk_lsh[0] * cctk_lsh[1] * cctk_lsh[2];
+ Hydro_Analysis_rho_center_volume_weighted_gf[i3D+0*size] = rho[i3D] * x[i3D];
+ Hydro_Analysis_rho_center_volume_weighted_gf[i3D+1*size] = rho[i3D] * y[i3D];
+ Hydro_Analysis_rho_center_volume_weighted_gf[i3D+2*size] = rho[i3D] * z[i3D];
+ }
+ LC_ENDLOOP3(local_reduction);
}
- LC_ENDLOOP3(local_reduction);
}
}