[Dune] Intersection iterator problem

Jö Fahlke jorrit at jorrit.de
Tue Aug 4 17:14:09 CEST 2009


OK, there seem to be several issues.

There is a transition going on in Dune from some old nongeneric reference
elements to a new generic implementation.  Unfortunately, this changes the
indices of subentities withing entities, such as faces within elements.  All
methods dealing with these indices have been renamed or changed in some way,
such that two versions of each method can coexist, one for the old numbering,
one for the new one.  I believe (but please ask Benedikt about this) that the
Hades3D code ist still using the old numbering.

You are using the expression

  faceMapper.map<codimofface>(*elementIter,faceIntersIter->indexInInside())

This uses the mapper's map method with a codim template parameter -- which is
the method for the old indices.  (The map method for the new indices takes no
template parameters and receives the codim as a third run-time parameter
instead.)  However, the intersection's indexInInside method uses the new
numbering -- this is, why you get non-matching global indices.  You probably
want to use the method numberInSelf instead.

Note also that there is a second transition going on: IntersectionIterators
used to be both Intersection and Iterator, meaning that you would call the
methods directly on the IntersectionIterator without dereferencing it to get
an Intersection object.  This is now changing: the IntersectionIterators can
now be dereferences (like proper iterators) and will yield an intersection
object, which is then used to call methods like indexInInside.  To get to the
point: I'm not sure whether the old numbering method numberInSelf is available
both at Intersection and the IntersectionIterator, or on the
IntersectionIterator only.  So you might need to try
"faceIntersIter.numberInSelf()" instead of "faceIntersIter->numberInSelf()".

You might have missed the numberInSelf method if you are using the
documentation for the unstable modules since it seem to have disappeared there
already.  Since you are using the old numbering, you are probably better off
using the documentation for the 1.2 release
(http://www.dune-project.org/doc-1.2/doxygen/html/).  Of course, unless you
have a specific reason to use the unstable branch of Dune, you should use some
released version.  The unstable branch is in active development and might
break at any time or not even compile for a week or two.

Bye,
Jö.

-- 
Interpunktion, Orthographie und Grammatik der Email ist frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein
zufällig und ist nicht beabsichtigt.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 827 bytes
Desc: Digital signature
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20090804/a1cd25d2/attachment.sig>


More information about the Dune mailing list