freepooma-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Freepooma-devel] <pooma>/src/Particles/InterpolatorCIC.h


From: Richard Guenther
Subject: Re: [Freepooma-devel] <pooma>/src/Particles/InterpolatorCIC.h
Date: Fri, 1 Apr 2005 13:27:22 +0200 (CEST)

On Fri, 1 Apr 2005, Roman Krylov wrote:

> Hi all.
> Wholly agree with Richard and John !
> And I am not proposing to pollute the code with workarounds nor fork a
> branch with any dirt,
> I merely stated the problem.
> Surely it should be done in more sophisticated way than putting "if()"s
> everywhere, but...
> InterpolatorCIC is 'insisting' on |intgl|>1 many times the same way, is
> it good?
> if no, perhaps some refactoring should be done on that code.

I reproduced the problem, and it is that the grid layouts are overly
clever in deciding wether we really need internal guards or not.  I.e.,
even if specifying both internal and external guards at Layout
construction time (which PIC2d does not), we still get internal guards
zeroed for single-patch subdivisions because of:

(GridLayout.cpp:142)
  // Examine the partitioner for info about guard cells.  Change our
  // domains if necessary, and save guard cell info for later.

  this->hasInternalGuards_m = (gpar.hasInternalGuards() && gpar.maxSize()
> 1);
  if (this->hasInternalGuards_m)
    {
      this->internalGuards_m = gpar.internalGuards();
    }

where it asks the partitioner if it would create more than one patch.
Indeed, removing this check makes PIC2d pass, though I fear there may
be fallout in other cases.

Does anyone remember why we have this check to override users decision?

Thanks,
Richard.

--
Richard Guenther <richard dot guenther at uni-tuebingen dot de>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/






reply via email to

[Prev in Thread] Current Thread [Next in Thread]