version 3.11-dev
Loading...
Searching...
No Matches
distributedintersectingentities.hh File Reference

Algorithms that find which geometric entities intersect across processes using a distributed (MPI-parallel) bounding box tree.

#include <vector>
#include <array>
#include <utility>
#include <dune/common/fvector.hh>
#include <dune/common/promotiontraits.hh>
#include <dune/geometry/type.hh>
#include <dune/geometry/multilineargeometry.hh>
#include <dune/grid/common/gridenums.hh>
#include <dune/grid/common/partitionset.hh>
#include <dumux/parallel/packing.hh>
#include <dumux/parallel/nonblockingsparseexchange.hh>
#include <dumux/geometry/boundingboxtree.hh>
#include <dumux/geometry/geometricentityset.hh>
#include <dumux/geometry/intersectingentities.hh>
#include <dumux/geometry/distributedboundingboxtree.hh>

Go to the source code of this file.

Classes

struct  Dumux::DistributedIntersectionInfo< DomainEntitySet, TargetEntitySet >
 An intersection of two entities of distributed entity sets. More...

Namespaces

namespace  Dumux
namespace  Dumux::Detail

Functions

template<class Entity, class PartitionSet>
bool Dumux::Detail::inPartition (const Entity &e, PartitionSet partitions)
 Whether an entity belongs to one of the given parallel partitions.
template<class Entity>
bool Dumux::Detail::isUniquelyOwned (const Entity &e)
 Whether an entity is uniquely owned by the calling process.
template<class EntitySet, class ctype, int dimworld>
std::vector< std::pair< int, std::size_t > > Dumux::intersectingEntities (const Dune::FieldVector< ctype, dimworld > &point, const DistributedBoundingBoxTree< EntitySet > &tree, bool isCartesianGrid=false, bool onlyOwned=true)
 Compute all intersections between entities and a point on a distributed tree.
template<class DomainEntitySet, class TargetEntitySet, class DomainPartitionSet = Dune::Partitions::Interior>
std::vector< DistributedIntersectionInfo< DomainEntitySet, TargetEntitySet > > Dumux::intersectingEntities (const DistributedBoundingBoxTree< DomainEntitySet > &treeA, const DistributedBoundingBoxTree< TargetEntitySet > &treeB, DomainPartitionSet domainPartitions={})
 Compute all intersections between two distributed bounding box trees.