[Dune] Getting rid of EntityPointer

Agnese, Marco m.agnese13 at imperial.ac.uk
Wed Jan 21 17:48:20 CET 2015


Hi Steffen,
I use the master for my codes.

So, also in the master, right now it is impossible to get rid of EntityPointer. Therefore I have to wait that father() returns an entity.

Thank you for your quick answer!
Cheers,
Marco.
________________________________________
From: Steffen Müthing [steffen.muething at iwr.uni-heidelberg.de]
Sent: Wednesday, January 21, 2015 4:41 PM
To: Agnese, Marco
Cc: dune at dune-project.org
Subject: Re: [Dune] Getting rid of EntityPointer

Hi Marco,

Am 21.01.2015 um 17:16 schrieb Agnese, Marco <m.agnese13 at imperial.ac.uk>:

> Hi Duners,
> since in the future releases of Dune EntityPointer will disappear, I am trying to get rid of them in my codes.
>
> Let's suppose that I am iterating over the entities, and I want to access the father at level 0 of a given entity.
> Using EntityPointer is very simple:
>
> EntityPtr entityPtr(*it);
> while(entityPtr->hasFather())
>  entityPtr=entityPtr->father();
>
> where it is my iterator. How can I do the same thing without using the EntityPointer?
> I can create a pointer to an entity as
>
> Entity* entityPtr(&(*it));
>
> but then, how can I go up in the hierarchical  grid?

that issue is being discussed in FS#1511. With the next release of Dune, it will become possible
to copy and store entities directly without needing an EntityPointer. But right now, methods like
father() (or Intersection::inside() / outside()) still return an EntityPointer, which makes it impossible
to get rid of EntityPointer in your code.

The discussion in FS#1511 basically revolves around whether we want to change all the places that
return an EntityPointer right now to instead return an Entity, so that users can start replacing EntityPointer
with Entity in their code in Dune 2.4. There would of course be backwards compatibility code that makes sure
your code won’t break if you still use EntityPointer, but you would get lots of deprecation warnings.

The other option preferred by some developers is to keep the EntityPointer in 2.4 and simply remove it in
DUNE 3.0 (the next release after 2.4) without a transition period. I don’t like that option because it breaks lots
of user code (in a hard way because you get compiler errors instead of deprecation warnings). But that is not
decided yet.

In any case, this only applies to the current master (and the upcoming 2.4 release). In 2.3, it is definitely
impossible to get rid of the EntityPointer.

Best,
Steffen

>
> Thank you in advance,
> Marco.
> _______________________________________________
> Dune mailing list
> Dune at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune





More information about the Dune mailing list