Algorithms that finds which geometric entites intersect. More...
#include <cmath>
#include <type_traits>
#include <vector>
#include <algorithm>
#include <limits>
#include <dune/common/fvector.hh>
#include <dumux/common/math.hh>
#include <dumux/geometry/boundingboxtree.hh>
#include <dumux/geometry/intersectspointgeometry.hh>
#include <dumux/geometry/geometryintersection.hh>
#include <dumux/geometry/triangulation.hh>
Go to the source code of this file.
Algorithms that finds which geometric entites intersect.
Classes | |
class | Dumux::IntersectionInfo< dimworld, CoordTypeA, CoordTypeB > |
An intersection object resulting from the intersection of two primitives in an entity set. More... | |
Namespaces | |
namespace | Dumux |
Functions | |
template<class EntitySet , class ctype , int dimworld> | |
std::vector< std::size_t > | Dumux::intersectingEntities (const Dune::FieldVector< ctype, dimworld > &point, const BoundingBoxTree< EntitySet > &tree, bool isCartesianGrid=false) |
Compute all intersections between entities and a point. More... | |
template<class EntitySet , class ctype , int dimworld> | |
void | Dumux::intersectingEntities (const Dune::FieldVector< ctype, dimworld > &point, const BoundingBoxTree< EntitySet > &tree, std::size_t node, std::vector< std::size_t > &entities, bool isCartesianGrid=false) |
Compute intersections with point for all nodes of the bounding box tree recursively. More... | |
template<class Geometry , class EntitySet > | |
std::vector< IntersectionInfo< Geometry::coorddimension, typename Geometry::ctype, typename EntitySet::ctype > > | Dumux::intersectingEntities (const Geometry &geometry, const BoundingBoxTree< EntitySet > &tree) |
Compute all intersections between a geometry and a bounding box tree. More... | |
template<class Geometry , class EntitySet > | |
void | Dumux::intersectingEntities (const Geometry &geometry, const BoundingBoxTree< EntitySet > &tree, const std::array< typename Geometry::ctype, 2 *Geometry::coorddimension > &bBox, std::size_t nodeIdx, std::vector< IntersectionInfo< Geometry::coorddimension, typename Geometry::ctype, typename EntitySet::ctype > > &intersections) |
Compute intersections with point for all nodes of the bounding box tree recursively. More... | |
template<class EntitySet0 , class EntitySet1 > | |
std::vector< IntersectionInfo< EntitySet0::dimensionworld, typename EntitySet0::ctype, typename EntitySet1::ctype > > | Dumux::intersectingEntities (const BoundingBoxTree< EntitySet0 > &treeA, const BoundingBoxTree< EntitySet1 > &treeB) |
Compute all intersections between two bounding box trees. More... | |
template<class EntitySet0 , class EntitySet1 > | |
void | Dumux::intersectingEntities (const BoundingBoxTree< EntitySet0 > &treeA, const BoundingBoxTree< EntitySet1 > &treeB, std::size_t nodeA, std::size_t nodeB, std::vector< IntersectionInfo< EntitySet0::dimensionworld, typename EntitySet0::ctype, typename EntitySet1::ctype > > &intersections) |
Compute all intersections between two all bounding box tree nodes recursively. More... | |
template<class ctype , int dimworld> | |
std::size_t | Dumux::intersectingEntityCartesianGrid (const Dune::FieldVector< ctype, dimworld > &point, const Dune::FieldVector< ctype, dimworld > &min, const Dune::FieldVector< ctype, dimworld > &max, const std::array< int, std::size_t(dimworld)> &cells) |
Compute the index of the intersecting element of a Cartesian grid with a point The grid is given by the lower left corner (min), the upper right corner (max) and the number of cells in each direction (cells). More... | |