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.
|
| 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.
|