|
template<class ctype , int dimworld> |
bool | Dumux::intersectsPointBoundingBox (const Dune::FieldVector< ctype, dimworld > &point, const Dune::FieldVector< ctype, dimworld > &min, const Dune::FieldVector< ctype, dimworld > &max) |
| Determine if a point intersects an axis-aligned bounding box The bounding box is given by the lower left corner (min) and the upper right corner (max) More...
|
|
template<class ConvexGeometry > |
static Sphere< typename ConvexGeometry::ctype, ConvexGeometry::coorddimension > | Dumux::boundingSphere (const ConvexGeometry &geometry) |
| Computes a bounding sphere of a convex polytope geometry (Dune::Geometry interface) More...
|
|
template<class Scalar , int dim> |
static Sphere< Scalar, dim > | Dumux::boundingSphere (const std::vector< Dune::FieldVector< Scalar, dim > > &points) |
| Computes a bounding sphere of points. More...
|
|
template<class Corners > |
Corners::value_type | Dumux::center (const Corners &corners) |
| The center of a given list of corners. More...
|
|
template<class Point > |
static Sphere< typename Point::value_type, Point::dimension > | Dumux::circumSphereOfTriangle (const Point &a, const Point &b, const Point &c) |
| Computes the circumsphere of a triangle. More...
|
|
template<class Geometry , typename std::enable_if_t< Geometry::mydimension==2, int > = 0> |
static Sphere< typename Geometry::ctype, Geometry::coorddimension > | Dumux::circumSphereOfTriangle (const Geometry &triangle) |
| Computes the circumsphere of a triangle. More...
|
|
template<class Geometry > |
Geometry::ctype | Dumux::diameter (const Geometry &geo) |
| Computes the longest distance between points of a geometry. More...
|
|
template<class Geometry > |
static Geometry::ctype | Dumux::averageDistancePointGeometry (const typename Geometry::GlobalCoordinate &p, const Geometry &geometry, std::size_t integrationOrder=2) |
| Compute the average distance from a point to a geometry by integration. More...
|
|
template<class Point > |
static Point::value_type | Dumux::squaredDistancePointLine (const Point &p, const Point &a, const Point &b) |
| Compute the squared distance from a point to a line through the points a and b. More...
|
|
template<class Geometry > |
static Geometry::ctype | Dumux::squaredDistancePointLine (const typename Geometry::GlobalCoordinate &p, const Geometry &geometry) |
| Compute the squared distance from a point to a line given by a geometry with two corners. More...
|
|
template<class Point > |
static Point::value_type | Dumux::distancePointLine (const Point &p, const Point &a, const Point &b) |
| Compute the distance from a point to a line through the points a and b. More...
|
|
template<class Geometry > |
static Geometry::ctype | Dumux::distancePointLine (const typename Geometry::GlobalCoordinate &p, const Geometry &geometry) |
| Compute the distance from a point to a line given by a geometry with two corners. More...
|
|
template<class Point > |
static Point::value_type | Dumux::squaredDistancePointSegment (const Point &p, const Point &a, const Point &b) |
| Compute the squared distance from a point to the segment connecting the points a and b. More...
|
|
template<class Geometry > |
static Geometry::ctype | Dumux::squaredDistancePointSegment (const typename Geometry::GlobalCoordinate &p, const Geometry &geometry) |
| Compute the squared distance from a point to a given segment geometry. More...
|
|
template<class Point > |
static Point::value_type | Dumux::distancePointSegment (const Point &p, const Point &a, const Point &b) |
| Compute the distance from a point to the segment connecting the points a and b. More...
|
|
template<class Geometry > |
static Geometry::ctype | Dumux::distancePointSegment (const typename Geometry::GlobalCoordinate &p, const Geometry &geometry) |
| Compute the distance from a point to a given segment geometry. More...
|
|
template<class Point > |
static Point::value_type | Dumux::squaredDistancePointTriangle (const Point &p, const Point &a, const Point &b, const Point &c) |
| Compute the shortest squared distance from a point to the triangle connecting the points a, b and c See https://www.iquilezles.org/www/articles/triangledistance/triangledistance.htm. More...
|
|
template<class Geometry > |
static Geometry::ctype | Dumux::squaredDistancePointTriangle (const typename Geometry::GlobalCoordinate &p, const Geometry &geometry) |
| Compute the shortest squared distance from a point to a given triangle geometry. More...
|
|
template<class Point > |
static Point::value_type | Dumux::distancePointTriangle (const Point &p, const Point &a, const Point &b, const Point &c) |
| Compute the shortest distance from a point to the triangle connecting the points a, b and c. More...
|
|
template<class Geometry > |
static Geometry::ctype | Dumux::distancePointTriangle (const typename Geometry::GlobalCoordinate &p, const Geometry &geometry) |
| Compute the shortest distance from a point to a given triangle geometry. More...
|
|
template<class Geometry > |
static Geometry::ctype | Dumux::squaredDistancePointPolygon (const typename Geometry::GlobalCoordinate &p, const Geometry &geometry) |
| Compute the shortest squared distance from a point to a given polygon geometry. More...
|
|
template<class Geometry > |
static Geometry::ctype | Dumux::distancePointPolygon (const typename Geometry::GlobalCoordinate &p, const Geometry &geometry) |
| Compute the shortest distance from a point to a given polygon geometry. More...
|
|
template<class Geometry > |
static Geometry::ctype | Dumux::averageDistanceSegmentGeometry (const typename Geometry::GlobalCoordinate &a, const typename Geometry::GlobalCoordinate &b, const Geometry &geometry, std::size_t integrationOrder=2) |
| Compute the average distance from a segment to a geometry by integration. More...
|
|
template<class ctype , int dimWorld> |
static ctype | Dumux::distance (const Dune::FieldVector< ctype, dimWorld > &a, const Dune::FieldVector< ctype, dimWorld > &b) |
| Compute the shortest distance between two points. More...
|
|
template<class ctype , int dimWorld> |
static ctype | Dumux::squaredDistance (const Dune::FieldVector< ctype, dimWorld > &a, const Dune::FieldVector< ctype, dimWorld > &b) |
| Compute the shortest squared distance between two points. More...
|
|
template<class Geo1 , class Geo2 > |
static auto | Dumux::squaredDistance (const Geo1 &geo1, const Geo2 &geo2) |
| Compute the shortest distance between two geometries. More...
|
|
template<class Geo1 , class Geo2 > |
static auto | Dumux::distance (const Geo1 &geo1, const Geo2 &geo2) |
| Compute the shortest distance between two geometries. More...
|
|
template<class EntitySet , class ctype , int dimworld, typename std::enable_if_t<(EntitySet::Entity::Geometry::mydimension > 0), int > = 0> |
void | Dumux::Detail::closestEntity (const Dune::FieldVector< ctype, dimworld > &point, const BoundingBoxTree< EntitySet > &tree, std::size_t node, ctype &minSquaredDistance, std::size_t &eIdx) |
| Compute the closest entity in an AABB tree (index and shortest squared distance) recursively. More...
|
|
template<class EntitySet , class ctype , int dimworld> |
std::pair< ctype, std::size_t > | Dumux::closestEntity (const Dune::FieldVector< ctype, dimworld > &point, const BoundingBoxTree< EntitySet > &tree, ctype minSquaredDistance=std::numeric_limits< ctype >::max()) |
| Compute the closest entity in an AABB tree to a point (index and shortest squared distance) More...
|
|
template<class EntitySet , class ctype , int dimworld> |
ctype | Dumux::squaredDistance (const Dune::FieldVector< ctype, dimworld > &point, const BoundingBoxTree< EntitySet > &tree, ctype minSquaredDistance=std::numeric_limits< ctype >::max()) |
| Compute the shortest squared distance to entities in an AABB tree. More...
|
|
template<class EntitySet , class ctype , int dimworld> |
ctype | Dumux::distance (const Dune::FieldVector< ctype, dimworld > &point, const BoundingBoxTree< EntitySet > &tree, ctype minSquaredDistance=std::numeric_limits< ctype >::max()) |
| Compute the shortest distance to entities in an AABB tree. More...
|
|
template<class Geo1 , class Geo2 , class ctype , class GetFacetCornerIndices , class ComputeNormalFunction > |
bool | Dumux::Detail::computeSegmentIntersection (const Geo1 &geo1, const Geo2 &geo2, ctype baseEps, ctype &tfirst, ctype &tlast, const GetFacetCornerIndices &getFacetCornerIndices, const ComputeNormalFunction &computeNormal) |
| Algorithm to find segment-like intersections of a polygon/polyhedron with a segment. The result is stored in the form of the local coordinates tfirst and tlast on the segment geo1. More...
|
|
template<class ctype > |
int | Dumux::getOrientation (const Dune::FieldVector< ctype, 3 > &a, const Dune::FieldVector< ctype, 3 > &b, const Dune::FieldVector< ctype, 3 > &c, const Dune::FieldVector< ctype, 3 > &normal) |
| Returns the orientation of a sequence a-->b-->c in one plane (defined by normal vector) More...
|
|
template<int dim, class ctype , std::enable_if_t<(dim==2), int > = 0> |
std::vector< Dune::FieldVector< ctype, 3 > > | Dumux::grahamConvexHullImpl (std::vector< Dune::FieldVector< ctype, 3 > > &points) |
| Compute the points making up the convex hull around the given set of unordered points. More...
|
|
template<int dim, class ctype , std::enable_if_t<(dim==2), int > = 0> |
std::vector< Dune::FieldVector< ctype, 2 > > | Dumux::grahamConvexHullImpl (const std::vector< Dune::FieldVector< ctype, 2 > > &points) |
| Compute the points making up the convex hull around the given set of unordered points. More...
|
|
template<int dim, class ctype , int dimWorld> |
std::vector< Dune::FieldVector< ctype, dimWorld > > | Dumux::grahamConvexHull (std::vector< Dune::FieldVector< ctype, dimWorld > > &points) |
| Compute the points making up the convex hull around the given set of unordered points. More...
|
|
template<int dim, class ctype , int dimWorld> |
std::vector< Dune::FieldVector< ctype, dimWorld > > | Dumux::grahamConvexHull (const std::vector< Dune::FieldVector< ctype, dimWorld > > &points) |
| Compute the points making up the convex hull around the given set of unordered points. More...
|
|
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 , class IntersectionPolicy > |
std::vector< IntersectionInfo< Geometry::coorddimension, typename Geometry::ctype, typename EntitySet::ctype > > | Dumux::intersectingEntities (const Geometry &geometry, const BoundingBoxTree< EntitySet > &tree, IntersectionPolicy intersectionPolicy) |
| 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 Geometry , class EntitySet , class IntersectionPolicy > |
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, IntersectionPolicy intersectionPolicy) |
| 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 , class IntersectionPolicy > |
std::vector< IntersectionInfo< EntitySet0::dimensionworld, typename EntitySet0::ctype, typename EntitySet1::ctype > > | Dumux::intersectingEntities (const BoundingBoxTree< EntitySet0 > &treeA, const BoundingBoxTree< EntitySet1 > &treeB, IntersectionPolicy intersectionPolicy) |
| 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 EntitySet0 , class EntitySet1 , class IntersectionPolicy > |
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, IntersectionPolicy intersectionPolicy) |
| 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...
|
|
template<class ctype , int dimworld, class Geometry , typename std::enable_if_t<(Geometry::mydimension==3), int > = 0> |
bool | Dumux::intersectsPointGeometry (const Dune::FieldVector< ctype, dimworld > &point, const Geometry &g) |
| Find out whether a point is inside a three-dimensional geometry. More...
|
|
template<class ctype , int dimworld, typename std::enable_if_t<(dimworld==3), int > = 0> |
bool | Dumux::intersectsPointSimplex (const Dune::FieldVector< ctype, dimworld > &point, const Dune::FieldVector< ctype, dimworld > &p0, const Dune::FieldVector< ctype, dimworld > &p1, const Dune::FieldVector< ctype, dimworld > &p2, const Dune::FieldVector< ctype, dimworld > &p3) |
| Find out whether a point is inside the tetrahedron (p0, p1, p2, p3) (dimworld is 3) More...
|
|
template<class ctype , int dimworld, typename std::enable_if_t<(dimworld==3), int > = 0> |
bool | Dumux::intersectsPointSimplex (const Dune::FieldVector< ctype, dimworld > &point, const Dune::FieldVector< ctype, dimworld > &p0, const Dune::FieldVector< ctype, dimworld > &p1, const Dune::FieldVector< ctype, dimworld > &p2) |
| Find out whether a point is inside the triangle (p0, p1, p2) (dimworld is 3) More...
|
|
template<class ctype , int dimworld, typename std::enable_if_t<(dimworld==3||dimworld==2), int > = 0> |
bool | Dumux::intersectsPointSimplex (const Dune::FieldVector< ctype, dimworld > &point, const Dune::FieldVector< ctype, dimworld > &p0, const Dune::FieldVector< ctype, dimworld > &p1) |
| Find out whether a point is inside the interval (p0, p1) (dimworld is 2 or 3) More...
|
|
template<class CoordScalar > |
bool | Dumux::pointsAreCoplanar (const std::vector< Dune::FieldVector< CoordScalar, 3 > > &points, const CoordScalar scale) |
| Checks if four points lie within the same plane. More...
|
|
template<class CoordScalar > |
bool | Dumux::pointsAreCoplanar (const std::vector< Dune::FieldVector< CoordScalar, 3 > > &points) |
| Checks if four points lie within the same plane. More...
|
|
template<class CoordScalar > |
std::vector< Dune::FieldVector< CoordScalar, 3 > > | Dumux::getReorderedPoints (const std::vector< Dune::FieldVector< CoordScalar, 3 > > &points) |
| Returns a vector of points following the dune ordering. Convenience method that creates a temporary object in case no array of orientations is desired. More...
|
|
template<class CoordScalar > |
std::vector< Dune::FieldVector< CoordScalar, 3 > > | Dumux::getReorderedPoints (const std::vector< Dune::FieldVector< CoordScalar, 3 > > &points, std::array< int, 4 > &orientations) |
| Returns a vector of points following the dune ordering. More...
|
|
template<class CoordScalar , bool enableSanityCheck = true> |
auto | Dumux::makeDuneQuadrilaterial (const std::vector< Dune::FieldVector< CoordScalar, 3 > > &points) |
| Creates a dune quadrilateral geometry given 4 corner points. More...
|
|
template<class Vector > |
Vector | Dumux::normal (const Vector &v) |
| Create a vector normal to the given one (v is expected to be non-zero) More...
|
|
template<class Vector > |
Vector | Dumux::unitNormal (const Vector &v) |
| Create a vector normal to the given one (v is expected to be non-zero) More...
|
|
template<int dim, int dimWorld, class Policy = TriangulationPolicy::DefaultPolicy<dim, dimWorld>, class RandomAccessContainer , std::enable_if_t< std::is_same_v< Policy, TriangulationPolicy::DelaunayPolicy > &&dim==1, int > = 0> |
Triangulation< dim, dimWorld, typename RandomAccessContainer::value_type::value_type > | Dumux::triangulate (const RandomAccessContainer &points) |
| Triangulate area given points of a convex hull (1d) More...
|
|
template<int dim, class CornerF > |
auto | Dumux::convexPolytopeVolume (Dune::GeometryType type, const CornerF &c) |
| Compute the volume of several common geometry types. More...
|
|
template<class Geometry > |
auto | Dumux::convexPolytopeVolume (const Geometry &geo) |
| The volume of a given geometry. More...
|
|
template<class Geometry > |
auto | Dumux::volume (const Geometry &geo, unsigned int integrationOrder=4) |
| The volume of a given geometry. More...
|
|
template<class Geometry , class Transformation > |
auto | Dumux::volume (const Geometry &geo, Transformation transformation, unsigned int integrationOrder=4) |
| The volume of a given geometry with an extrusion/transformation policy. More...
|
|