Skip to content

#457 adding generic geometries

Metadata

Property Value
Reported by Andreas Dedner (A.S.Dedner@warwick.ac.uk)
Reported at Nov 10, 2008 15:03
Type Feature Request
Version Git (pre2.4) [autotools]
Operating System Unspecified / All
Last edited by Martin Nolte (nolte@mathematik.uni-freiburg.de)
Last edited at May 7, 2009 11:08
Closed by Martin Nolte (nolte@mathematik.uni-freiburg.de)
Closed at May 7, 2009 11:08
Closed in version Unknown
Resolution Implemented
Comment A generic way to add the subindex / subid method has been implemented. All grids should support these methods by now. This completes the transition.

Description

Problem: The new generic geometries lead to some renumbering of subentities dim>codim>1 for cube, dim>codim>0 for simplex, codim>0 for pyramid/prism Therefore, some methods taking or returning numbers for subentity will behave differently.

Solution: renaming of corresponding methods and classes.

Methods (hopefully complete): Old -> New Intersection::intersectionInSelf -> Intersection::geometryInInside Intersection::intersectionInNeighbor -> Intersection::geometryInOutside Intersection::numberInSelf -> Intersection::numberInInside Intersection::numberInNeighbor -> Intersection::numberInOutside

Entity::entity -> Entity::subEntity IndexSet::subIndex(E,i) -> IndexSet::subIndex<codim,subcodim>(E,i) or IndexSet::subIndex(E,subcodim,i) IdSet::subIndex(E,i) -> IdSet::subId<codim,subcodim>(E,i) or IdSet::subId(E,subcodim,i) Geometry::operator[] -> Geometry::corner

Classes: Old -> New ReferenceElementContainer -> ReferenceElements (extends old struct) ReferenceElement -> not needed - get type from REProvider

Questions:

  1. Which part of grid/genericgeometry should be moved to dune-common (prehaps needed for dune-localfunction)? Suggestion: at least the topology stuff, prehaps reference elements.
  2. Geometry could return (together with the dune type) also the generic topology id (is an uint and together with dimension can be used for array lookup).
  3. while we are at it, the method Intersection::intersectionGlobal could be renamed to Intersection::geometry.