On 8/2/12 4:11 PM, Roland Haas wrote:
CCTK_ReductionArrayHandle is used in several thorns but it is not described in the ReferenceManual. Is it (still) supported? How is it different from CCTK_LocalArrayReductionHandle?
It's part of the "old" reduction interface. Which happens to be the one Carpet supports, so it is widely used :-). I doubt support will go away anytime soon. The calls are documented in the User manual in section C1.7.5 (page 84 in my build).
I see, so CCTK_ReductionArrayHandle is described in the User's Manual but not in the Reference Manual.
As for differences I'd consult this section and the reference manual. It seems that one is a reduction over local arrays (ie double a[100]) while the other reduces grid functions (or grid arrays or grid scalars most likely).
I found no reference saying that CCTK_ReductionArrayHandle should be used only for local arrays or only for grid functions.
Which of the two codes below is correct (in a subroutine called by the scheduler)? Why?
1)
CCTK_REAL local_array_in,local_array_out;
CCTK_INT handle = CCTK_LocalArrayReductionHandle("sum");
CCTK_ReduceLocArrayToArray1D(cctkGH, -1, handle, &local_array_in, local_array_out, 4, CCTK_VARIABLE_REAL));
2)
CCTK_REAL local_array_in,local_array_out;
CCTK_INT handle_sum = CCTK_ReductionHandle("sum");
CCTK_ReduceLocArrayToArray1D(cctkGH, -1, handle, &local_array_in, local_array_out, 4, CCTK_VARIABLE_REAL));
Best, Luca