A class representing the intersection entities of two distributed geometric entity sets. More...
#include <dumux/geometry/distributedintersectionentityset.hh>
The intersections are distributed by domain ownership: each process holds exactly those intersections whose domain (first) entity it owns. The union over all processes equals the result of a sequential intersection of the global entity sets. The target (second) entity of an intersection may be owned by a remote process; it is identified by its global (rank, local index) identifier rather than by a local entity.
Classes | |
| class | IntersectionEntity |
| A view on a single intersection entity. More... | |
| class | IntersectionIterator |
| An iterator over the intersection entities. More... | |
Public Types | |
| using | ctype = typename Info::ctype |
| using | GlobalPosition = typename Info::GlobalPosition |
| using | Geometry = Dune::AffineGeometry<ctype, dimIs, dimensionworld> |
| the geometry of an intersection (always a simplex) | |
| using | EntityIterator = IntersectionIterator |
Public Member Functions | |
| DistributedIntersectionEntitySet ()=default | |
| Default constructor. | |
| void | build (std::shared_ptr< const DomainEntitySet > domainSet, std::shared_ptr< const TargetEntitySet > targetSet) |
| Build the intersections from two distributed entity sets. | |
| void | build (std::shared_ptr< const DomainTree > domainTree, std::shared_ptr< const TargetTree > targetTree) |
| Build the intersections from two distributed bounding box trees. | |
| std::size_t | size () const |
| the number of (process-local) intersections | |
| IntersectionIterator | ibegin () const |
| begin iterator over the (process-local) intersections | |
| IntersectionIterator | iend () const |
| end iterator over the (process-local) intersections | |
Static Public Attributes | |
| static constexpr int | dimensionworld = Info::dimensionworld |
Friends | |
| Dune::IteratorRange< EntityIterator > | intersections (const DistributedIntersectionEntitySet &set) |
| Range generator to iterate with range-based for loops over all intersections as follows: for (const auto& is : intersections(glue)) { ... }. | |
| using Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::ctype = typename Info::ctype |
| using Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::EntityIterator = IntersectionIterator |
| using Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::Geometry = Dune::AffineGeometry<ctype, dimIs, dimensionworld> |
| using Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::GlobalPosition = typename Info::GlobalPosition |
|
default |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
friend |
|
staticconstexpr |