#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:
- 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.
- 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).
- while we are at it, the method Intersection::intersectionGlobal could be renamed to Intersection::geometry.