[Dune] Dune Agenda 2011

Andreas Dedner dedner at mathematik.uni-freiburg.de
Tue Sep 28 16:45:54 CEST 2010


Hi,

I added a new page to our wiki - I think we decided, that that is a good
place for a discussion
on the agenda for our meetings?

I started by copying in Robert's suggestions...

Best
Andreas


On 27/09/10 13:11, Robert Kloefkorn wrote:
> Dear Dune Developers,
>
> the followings changes to the DUNE-Grid interface I do consider very
> useful and I think these can be achieved during the next year:
>
> =============================================
> 1) Performance issues of the Grid interface:
> =============================================
>
>  i) Entity and EntityPointers:
>     Entity can be stored (although this might be memory consuming)
>     meaning one can write:
>
>       Entity entity = *it;
>
>     For efficiency reasons the Entity class can be implemented as a
>     reference counted pointer which would allow both, easy use and no
> copying.
>
>     Code of the from
>
>       const Entity& entity = *it ;
>
>     will still be valid.
>
>     The best consequence of this is:
>
>  ii) removal of EntityPointer
>
>     The transition should be not to difficult since the typedef for
>     EntityPointer will point to Entity and on the Entity class we
> introduce
>     the method
>
>       const Entity* operator -> () const { return this; }
>
>     After this the interface will be much better to understand
>     better to use.
>
>     In fact, all methods returning a reference to an object should be
> revised.
>
>   iii) For "storage" of Entities in array-like structures we introduce
> the
>     concept EntityKey (appropriate name to be found) which only
>     contains the minimal information needed to create the corresponding
>     Entity from this. An appropriate method will be available on the
> Grid class.
>     This makes the implementation of Grids and the maintenance of current
>     grids much easier since the we do not have to implement two contrary
>     concepts in one class.
>
>   iv) the method jacobianInverseTransposed (and probably the method
>     jacobian) return not a FieldMatrix but an object specified by the
>     implementation (which can still be a FieldMatrix) which implements
> all
>     mult methods and casts into a FieldMatrix. With this extension we can
>     implement the jacobianInverseTransposed for Cartesian grids much more
>     efficiently, not the full matvec is needed in this case.
>
>   v) not only the jacobianInverseTransposed but also the Geometry (on
> Entity and
>     Intersection) should not be returned as a reference. This would
> improve
>     the performance of meta grids which is currently not good,
>     i.e. about 25% are lost when wrapping a grid to provide
>     additional features, e.g. GeometryGrid, PrismGrid, ....
>
>
> =============================================
> 2) Interface design issues:
> =============================================
>
>   i) The boundarySegmentIndex is put into an index set (like any other
>     index) instead of implementing it on an class. This is a
> contradiction
>     to the existing interface and also something one might only generate
>     when needed.
>
>
>  ii) Boundary projections have to become "user data". The current
>     approach is a contradiction to separation of data and grid
> structures.
>
>
>  iii) Persistent Index Container: Currently when a DoF mapping is built
>     that should be persistent also in an adaptive computation one would
>     have to use LocalIdSet in some sense which implies O(log(N)) index
>     access instead of O(1). Using AlbertaGrid or ALUGrid together with
>     DUNE-Fem there is a concept to overcome this shortcoming. This should
>     also be introduced in the DUNE-Grid interface and replace the
> LocalIdSet
>     (not the GlobalIdSet which is still needed as it is). We could
>     introduce a utility class that uses the current IdSet to
>     implement this feature (by default) and which can be specialized
>     for each grid if a better implementation is available.
>
>
> =============================================
> 3) Interface extension for special purpose:
> =============================================
>
>   i) Easier extension of the Grid interface to introduce new features
>     much more easily and, for example, to allow change of the
> interface in a better way.
>
>  ii) The method getRealImp() should be replaced by impl() and should
> be public which
>    would be a good step towards i). Together with this "capabilities"
> in a namespace
>    Extensions are needed that tell whether special features are
> available or not.
>
>
> Best regards
>
> Robert
>
>
> _______________________________________________
> Dune mailing list
> Dune at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20100928/ea190dad/attachment.htm>


More information about the Dune mailing list