From 049ce8a3bf87bbebd787dc781b76e4320e5c7231 Mon Sep 17 00:00:00 2001 From: baiotti Date: Thu, 27 Oct 2005 15:34:30 +0000 Subject: Do not use ADMMAcros (C version), since they are bugged (for Carpet). Finish changes that ensure compatibility with Carpet and multiprocessor runs. Not tested extensively. git-svn-id: http://svn.aei.mpg.de/numrel/AEIThorns/ADMMass/trunk@5 54511f98-0e4f-0410-826e-eb8b393f5a1e --- src/volume_integral.c | 112 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 78 insertions(+), 34 deletions(-) (limited to 'src/volume_integral.c') diff --git a/src/volume_integral.c b/src/volume_integral.c index b80b215..ee4009d 100644 --- a/src/volume_integral.c +++ b/src/volume_integral.c @@ -1,3 +1,12 @@ + /*@@ + @file volume_integral.c + @date Wed Oct 5 10:18:34 2005 + @author Frank Loeffler and Luca Baiotti + @desc + Computes the ADM mass as a volume integral. + @enddesc + @@*/ + #include #include #include @@ -19,19 +28,23 @@ void ADMMass_Volume(CCTK_ARGUMENTS) CCTK_INT i,j,k, ijk, ghost; CCTK_REAL detg, idetg; CCTK_REAL u[3][3], dg[3][3][3]; - /* CCTK_REAL local_sum = 0.0;*/ - CCTK_REAL radius; + CCTK_REAL radius, twoDX, twoDY, twoDZ; CCTK_INT mask_descriptor, state_descriptor_outside; mask_descriptor = SpaceMask_GetTypeBits("OutsideMask"); state_descriptor_outside = SpaceMask_GetStateBits("OutsideMask", "outside"); - /* grid-function strides for ADMMacros */ + /* grid-function strides */ const CCTK_INT di = 1; const CCTK_INT dj = cctk_lsh[0]; const CCTK_INT dk = cctk_lsh[0]*cctk_lsh[1]; + /* deonminators for derivatives */ + twoDX = 2.0 * CCTK_DELTA_SPACE(0); + twoDY = 2.0 * CCTK_DELTA_SPACE(1); + twoDZ = 2.0 * CCTK_DELTA_SPACE(2); + if (ADMMass_use_surface_distance_as_volume_radius && (ADMMass_volume_radius[*ADMMass_LoopCounter] < 0.0)) radius = ADMMass_surface_distance[*ADMMass_LoopCounter]; @@ -59,22 +72,18 @@ void ADMMass_Volume(CCTK_ARGUMENTS) } #include "CactusEinstein/ADMMacros/src/macro/UPPERMET_declare.h" -#include "CactusEinstein/ADMMacros/src/macro/DG_declare.h" -#include "CactusEinstein/ADMMacros/src/macro/ADM_Spacing_declare.h" - /* Compute everywhere. These ADMMacros in C only have second order differencing. */ - for(i=2; i