Feature/topology to geometry type
This is part of !159 (merged) containing the parts that can be directly merged into master before a release, since they shouldn't break code
Disucssion:
-
@andreas.dedner: suggestion to keep the
addCone
etc methods on theGeometryType
- @oliver.sander: I suggested that change for purely political reasons: Adding public methods to GeometryType is an interface change that needs discussion, voting, ... stuff that takes time. Adding code to the Impl namespace is much easier.
- @oliver.sander: I don't mind public methods per se. It's just that we have to give them some extra attention, because they are so difficult to get rid of once they are there.
- @carsten.graeser: I agree with @andreas.dedner that addCone() and addTensor() are nice additions to the public interface. popHighest() is a different thing, because it very much assumes that one is aware of the implementation details of the GeometryType, namely the TopologyId. But this could be improved by writing more documentation and finding a better name. In the short run keeping this in Impl:: avoids any problems.
bool GeometryType::isPrismatic(step=dim-1) // undefined for step < 0 or step > dim-1
bool GeometryType::isConical(step=dim-1) // undefined for step < 0 or step > dim-1
constexpr GeometryTypes::GeometryTypes::prismaticExtension(gt)
constexpr GeometryTypes::GeometryTypes::conicalExtension(gt)
constexpr Impl::GeometryTypes::getBase()
Edited by Andreas Dedner