version 3.11-dev
Loading...
Searching...
No Matches
Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet > Class Template Reference

A class representing the intersection entities of two distributed geometric entity sets. More...

#include <dumux/geometry/distributedintersectionentityset.hh>

Inheritance diagram for Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >:

Description

template<class DomainEntitySet, class TargetEntitySet>
class Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >

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.

Note
This currently returns the raw (triangulated) intersections without the mixed-dimensional neighbor merging done by Dumux::IntersectionEntitySet.

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< EntityIteratorintersections (const DistributedIntersectionEntitySet &set)
 Range generator to iterate with range-based for loops over all intersections as follows: for (const auto& is : intersections(glue)) { ... }.

Member Typedef Documentation

◆ ctype

template<class DomainEntitySet, class TargetEntitySet>
using Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::ctype = typename Info::ctype

◆ EntityIterator

template<class DomainEntitySet, class TargetEntitySet>
using Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::EntityIterator = IntersectionIterator

◆ Geometry

template<class DomainEntitySet, class TargetEntitySet>
using Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::Geometry = Dune::AffineGeometry<ctype, dimIs, dimensionworld>

◆ GlobalPosition

template<class DomainEntitySet, class TargetEntitySet>
using Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::GlobalPosition = typename Info::GlobalPosition

Constructor & Destructor Documentation

◆ DistributedIntersectionEntitySet()

template<class DomainEntitySet, class TargetEntitySet>
Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::DistributedIntersectionEntitySet ( )
default

Member Function Documentation

◆ build() [1/2]

template<class DomainEntitySet, class TargetEntitySet>
void Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::build ( std::shared_ptr< const DomainEntitySet > domainSet,
std::shared_ptr< const TargetEntitySet > targetSet )
inline
Note
collective operation over the processes of the entity sets

◆ build() [2/2]

template<class DomainEntitySet, class TargetEntitySet>
void Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::build ( std::shared_ptr< const DomainTree > domainTree,
std::shared_ptr< const TargetTree > targetTree )
inline
Note
collective operation over the processes of the trees

◆ ibegin()

template<class DomainEntitySet, class TargetEntitySet>
IntersectionIterator Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::ibegin ( ) const
inline

◆ iend()

template<class DomainEntitySet, class TargetEntitySet>
IntersectionIterator Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::iend ( ) const
inline

◆ size()

template<class DomainEntitySet, class TargetEntitySet>
std::size_t Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::size ( ) const
inline

◆ intersections

template<class DomainEntitySet, class TargetEntitySet>
Dune::IteratorRange< EntityIterator > intersections ( const DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet > & set)
friend

Member Data Documentation

◆ dimensionworld

template<class DomainEntitySet, class TargetEntitySet>
int Dumux::DistributedIntersectionEntitySet< DomainEntitySet, TargetEntitySet >::dimensionworld = Info::dimensionworld
staticconstexpr

The documentation for this class was generated from the following file: