From ffa02dbbfb29511a6d60d2823fa36775fb6027d2 Mon Sep 17 00:00:00 2001 From: yye00 Date: Tue, 1 Nov 2005 18:50:38 +0000 Subject: commits to change IOBasic to use the new reduction interface. This breaks the testsuite for testcomplex because of a new reduction scheme for complex numbers. WaveToy1DF77 also fails with inconsistency, failing at 3,7 processors with varying files and differences between them. Currently investigating these failurse in detail. git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/IOBasic/trunk@169 b589c3ab-70e8-4b4d-a09f-cba2dd200880 --- src/Startup.c | 4 ++-- src/WriteInfo.c | 20 ++++++++++++++------ src/WriteScalar.c | 18 +++++++++++++----- 3 files changed, 29 insertions(+), 13 deletions(-) diff --git a/src/Startup.c b/src/Startup.c index b88d09e..bde7264 100644 --- a/src/Startup.c +++ b/src/Startup.c @@ -238,7 +238,7 @@ static void *IOBasic_SetupGH (tFleshConfig *config, int conv_level, cGH *GH) or the 'IOBasic::out{Info|Scalar}_reductions' parameter. @enddesc @calls CCTK_GroupTypeFromVarI - CCTK_ReductionHandle + CCTK_LocalArrayReductionHandle @var vindex @vdesc index of the variable to set info output @@ -391,7 +391,7 @@ void IOBasic_AssignReductionList (int vindex, const char *optstring, void *arg) string_start = string_end; /* get the reduction handle from the reduction operator */ - reduction_handle = CCTK_ReductionHandle (reduction_op); + reduction_handle = CCTK_LocalArrayReductionHandle (reduction_op); if (reduction_handle < 0) { CCTK_VWarn (5, __LINE__, __FILE__, CCTK_THORNSTRING, diff --git a/src/WriteInfo.c b/src/WriteInfo.c index 163a3c7..cb73a24 100644 --- a/src/WriteInfo.c +++ b/src/WriteInfo.c @@ -30,7 +30,7 @@ CCTK_FILEVERSION(CactusBase_IOBasic_WriteInfo_c) @enddesc @calls CCTK_VarDataPtrI - CCTK_Reduce + CCTK_ReduceGridArrays @var GH @vdesc Pointer to CCTK grid hierarchy @@ -61,8 +61,16 @@ int IOBasic_WriteInfo (const cGH *GH, int vindex) iobasicGH *myGH; void *ptr; iobasic_reduction_t *reduction; - - + + int input_array[1]; + CCTK_INT output_array_type_codes[1]; + CCTK_REAL output_value; + void * reduction_value[1]; + + input_array[0] = vindex; + output_array_type_codes[0] = CCTK_VARIABLE_REAL; + reduction_value[0] = &output_value; + myGH = CCTK_GHExtension (GH, "IOBasic"); reduction = myGH->info_reductions[vindex].reductions; @@ -169,9 +177,9 @@ int IOBasic_WriteInfo (const cGH *GH, int vindex) /* for CCTK_GF and CCTK_ARRAY variables: loop over all reductions */ while (reduction) { - reduction->is_valid = CCTK_Reduce (GH, -1, reduction->handle, 1, - CCTK_VARIABLE_REAL, - &reduction->value, 1, vindex) == 0; + reduction->is_valid = CCTK_ReduceGridArrays (GH, -1, reduction->handle, -1, 1, input_array , 1, output_array_type_codes, reduction_value) == 0; + reduction->value = output_value; + if (! reduction->is_valid) { CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING, diff --git a/src/WriteScalar.c b/src/WriteScalar.c index f0902a3..58a467b 100644 --- a/src/WriteScalar.c +++ b/src/WriteScalar.c @@ -113,7 +113,7 @@ int IOBasic_WriteScalar (const cGH *GH, int vindex, const char *alias) suitable for postprocessing by either gnuplot or xgraph. @enddesc - @calls CCTK_Reduce + @calls CCTK_ReduceGridArrays CCTK_ReductionHandle IOUtil_RestartFromRecovery IOUtil_AdvertiseFile @@ -149,7 +149,15 @@ static int IOBasic_WriteScalarGA (const cGH *GH, int vindex, const char *alias) iobasic_reduction_t *reduction; DECLARE_CCTK_PARAMETERS - + int input_array[1]; + CCTK_INT output_array_type_codes[1]; + CCTK_REAL output_value; + void * reduction_value[1]; + + input_array[0] = vindex; + output_array_type_codes[0] = CCTK_VARIABLE_REAL; + reduction_value[0] = &output_value; + /* set output format */ sprintf (format_str, "%%%s\t%%%s\n", out_format, out_format); @@ -164,9 +172,9 @@ static int IOBasic_WriteScalarGA (const cGH *GH, int vindex, const char *alias) while (reduction) { /* do the reduction (all processors) */ - reduction->is_valid = CCTK_Reduce (GH, 0, reduction->handle, 1, - CCTK_VARIABLE_REAL, - &reduction->value, 1, vindex) == 0; + reduction->is_valid = CCTK_ReduceGridArrays (GH, 0, reduction->handle, -1, 1, input_array , 1, output_array_type_codes, reduction_value) == 0; + reduction->value = output_value; + if (! reduction->is_valid) { CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING, -- cgit v1.2.3