![]() |
Dune-Functions 2.11
|
A geometry embedding a descendent element into an ancestor. More...
#include <dune/functions/common/geometryinancestor.hh>
Public Types | |
| using | LocalCoordinate = typename Element::Geometry::LocalCoordinate |
| Type of local coordinate (local within fine element). | |
| using | GlobalCoordinate = typename Element::Geometry::LocalCoordinate |
| Type of global coordinate (local within coarse element). | |
Public Member Functions | |
| GeometryInAncestor ()=default | |
| GeometryInAncestor (GeometryInAncestor &&)=delete | |
| GeometryInAncestor (const GeometryInAncestor &other) | |
| Copy constructor. | |
| GeometryInAncestor (const GeometryInAncestor &other, const Element &fineElement) | |
| Copy construction setting an external fine element. | |
| template<class F> requires (std::is_invocable_r_v<bool,F,Element>) | |
| const Element & | bind (const Element &fineElement, F &&includeFather) |
| Bind this GeometryInAncestor to a fine element and search coarse element. | |
| template<class F> requires (std::is_invocable_r_v<bool,F,Element>) | |
| const Element & | bind (Element &&fineElement, F &&includeFather) |
| Bind this GeometryInAncestor to a fine element and search coarse element. | |
| const Element & | fineElement () const |
| Return the fine element. | |
| const Element & | coarseElement () const |
| Return the coarse element. | |
| GlobalCoordinate | global (LocalCoordinate x) const |
| Map local coordinate in fine element into coarse element. | |
| LocalCoordinate | local (GlobalCoordinate x) const |
| Map local coordinate in coarse element into fine element. | |
A geometry embedding a descendent element into an ancestor.
| Element | Type of elements considered by this embedding |
This class will store a chain of geometryInFather objects connecting a coarse element with a fine element. The global() and local() methods of the GeometryInAncestor simply chain those stored geometryInFather objects. Since this requires that objects of type GeometryInAncestor allocate dynamic memory, they are not intended to be created on the fly within a hot loop. Instead one reused a single GeometryInAncestor object by binding if to a new element.
Currently this only provides the local() and global() methods of the geometry interface.
| using Dune::Functions::GeometryInAncestor< Element >::GlobalCoordinate = typename Element::Geometry::LocalCoordinate |
Type of global coordinate (local within coarse element).
| using Dune::Functions::GeometryInAncestor< Element >::LocalCoordinate = typename Element::Geometry::LocalCoordinate |
Type of local coordinate (local within fine element).
|
default |
|
delete |
|
inline |
Copy constructor.
If the original GeometryInAncestor holds a pointer to an external fine Element, the new GeometryInAncestor points to the same external fine Element.
|
inline |
Copy construction setting an external fine element.
This copies the original GeometryInAncestor and sets the pointer to the external fine element passed additionally.
|
inline |
Bind this GeometryInAncestor to a fine element and search coarse element.
| fineElement | The fine element to be bound to |
| includeFather | Unary predicate indicating whether father element should be traversed |
Build the geometry information by traversing the fathers starting from the given fineElement as long as includeFather(element) returns true to obtain a chain of geometryInFather objects connecting the fineElement with a coarseElement. The coarseElement is the first element where includeFather(coarseElement) returns false.
This overload for an l-value fineElement will store a pointer to fineElement.
|
inline |
Bind this GeometryInAncestor to a fine element and search coarse element.
| fineElement | The fine element to be bound to |
| includeFather | Unary predicate indicating whether father element should be traversed |
Build the geometry information by traversing the fathers starting from the given fineElement as long as includeFather(element) returns true to obtain a chain of geometryInFather objects connecting the fineElement with a coarseElement. The coarseElement is the first element where includeFather(coarseElement) returns false.
This overload for an r-value fineElement will store a copy of the fineElement.
|
inline |
Return the coarse element.
|
inline |
Return the fine element.
|
inline |
Map local coordinate in fine element into coarse element.
|
inline |
Map local coordinate in coarse element into fine element.