[Dune] isi entscheidung?

Oliver Sander sander at mi.fu-berlin.de
Thu Jun 1 14:22:38 CEST 2006


Ich habe folgende Anmerkungen:

Die Methode hasBoundaryIntersection() halte ich für einen faulen
Kompromiß.  Wofür würde man sie verwenden?  Doch wohl meistens, um einen
Iterator über die Randsegmente zu bekommen.  Der wird durch diese
Methode zwar schneller, aber man muß immer noch über alle Elemente.
Da wäre es doch besser, gleich einen {Level|Leaf}RandIterator
einzuführen, der dann z.B. bei uniformen Gittern nochmal deutlich
schneller sein kann.

Zweiter Punkt:  Genau wie die IndexSets jetzt schon die zu ihnen
gehörigen Level- bzw. Leaf-Iteratoren kennen und bereitstellen
müssen sie das in Zukunft auch für die IntersectionIteratoren.

Viele Grüße,
Oliver

************************************************************************
* Oliver Sander                ** email: sander at mi.fu-berlin.de        *
* Freie Universität Berlin     ** phone: + 49 (30) 838 75217           *
* Institut für Mathematik II   ** URL  : page.mi.fu-berlin.de/~sander  *
* Arnimallee 6                 ** -------------------------------------*
* 14195 Berlin, Germany        ** Member of MATHEON (www.matheon.de)   *
************************************************************************

On Thu, 1 Jun 2006, Andreas Dedner wrote:

> Ist jetzt die folgende Aenderung im Entity Interface
> Konsens (fuer 1.0)?
>
> IntersectionIterators:
>
>  IntersectionIterator ibegin () const DUNE_DEPRECATED
>    {
>      return realEntity.ibegin();
>    }
>  IntersectionIterator iend () const DUNE_DEPRECATED
>    {
>      return realEntity.iend();
>    }
>  LevelIntersectionIterator libegin () const
>    {
>      return realEntity.libegin();
>    }
>  LevelIntersectionIterator liend () const
>    {
>      return realEntity.liend();
>    }
>  LeafIntersectionIterator leafibegin () const
>    {
>      return realEntity.leafibegin();
>    }
>  LeafIntersectionIterator leafiend () const
>    {
>      return realEntity.leafiend();
>    }
>
> Boundary Info
>  bool hasBoundaryIntersection() const
>    {
>      return realEntity.hasBoundaryIntersection();
>    }
>
> Etwa so was in class
> EntityDefaultImplementation
>
>  bool hasBoundaryIntersection() const
>    {
>      bool ret = false;
>      LevelIntersectionIterator end = liend();
>      for (LevelIntersectionIterator iter = libegin();
>           iter != end; ++iter) {
>        if (iter.boundary()) {
>          ret = true;
>          break;
>        }
>      }
>      return ret;
>    }
>
> _______________________________________________
> Dune mailing list
> Dune at hal.iwr.uni-heidelberg.de
> http://hal.iwr.uni-heidelberg.de/cgi-bin/mailman/listinfo/dune
>


More information about the Dune mailing list