[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