[Carpet] local reduction handles
Bela Szilagyi
szilagyi at aei.mpg.de
Mon Oct 22 18:04:05 CEST 2007
On Monday 22 October 2007 17:12:10 Erik Schnetter wrote:
> If you only want to use local reduction operators, then you can just
> activate thorn CactusBase/LocalReduce. It is independent of Carpet.
Loading thorn CactusBase/LocalReduce does not solve the problem.
Apparently I hit a bug in thorn EllSOR:
ConfMetric.c reads:
134: int sum_handle=-1;
/* ... */
151: sum_handle = CCTK_LocalArrayReductionHandle("sum");
/* ... */
535: /* reduction operation on processor-local residual values */
536: ierr = CCTK_ReduceArraysGlobally(GH, -1,sum_handle, -1,
1,input_array,0,
537: input_array_dim,
538: input_array_type_codes,
539: 1,
540: input_array_type_codes,
541: reduction_value);
542:
543: if (ierr<0)
544: {
545: CCTK_WARN(1,"SORConfMetric3D: Reduction of residual failed");
546: }
That is, the handle of the local reduction operator is passed to the global
reduction function.
Replacing the call to CCTK_LocalArrayReductionHandle with an equivalent call
to CCTK_ReductionHandle does not solve the issue.
Apparently EllSOR is assuming the new interface. Is there an easy fix? (aside
from using PUGH...)
Bela.
More information about the developers
mailing list