3.5-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
triangulation.hh File Reference

Functionality to triangulate point clouds. More...

#include <vector>
#include <array>
#include <algorithm>
#include <type_traits>
#include <tuple>
#include <dune/common/exceptions.hh>
#include <dune/common/fvector.hh>
#include <dumux/common/math.hh>
#include <dumux/geometry/intersectspointsimplex.hh>
#include <dumux/geometry/grahamconvexhull.hh>

Go to the source code of this file.

Description

Functionality to triangulate point clouds.

Note
Most of the implemented algorithms currently do not scale for large point clouds and are only meant to be used with a small number of points

Classes

struct  Dumux::TriangulationPolicy::MidPointPolicy
struct  Dumux::TriangulationPolicy::ConvexHullPolicy
struct  Dumux::TriangulationPolicy::DelaunayPolicy
 Delaunay-type triangulations. More...

Namespaces

namespace  Dumux
namespace  Dumux::TriangulationPolicy

Typedefs

template<int dim, int dimWorld>
using Dumux::TriangulationPolicy::DefaultPolicy = std::tuple_element_t<dim-1, Detail::DefaultDimPolicies>
 Default policy for a given dimension.
template<int dim, int dimWorld, class ctype>
using Dumux::Triangulation = std::vector< std::array<Dune::FieldVector<ctype, dimWorld>, dim+1> >
 The default data type to store triangulations.

Functions

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).
template<int dim, int dimWorld, class Policy = TriangulationPolicy::DefaultPolicy<dim, dimWorld>, class RandomAccessContainer, std::enable_if_t< std::is_same_v< Policy, TriangulationPolicy::MidPointPolicy > &&dim==2, int > = 0>
Triangulation< dim, dimWorld, typename RandomAccessContainer::value_type::value_type > Dumux::triangulate (const RandomAccessContainer &convexHullPoints)
 Triangulate area given points of a convex hull (2d).
template<int dim, int dimWorld, class Policy = TriangulationPolicy::DefaultPolicy<dim, dimWorld>, class RandomAccessContainer, std::enable_if_t< std::is_same_v< Policy, TriangulationPolicy::ConvexHullPolicy > &&dim==2, int > = 0>
Triangulation< dim, dimWorld, typename RandomAccessContainer::value_type::value_type > Dumux::triangulate (const RandomAccessContainer &points)
 Triangulate area given points (2d).
template<int dim, int dimWorld, class Policy = TriangulationPolicy::DefaultPolicy<dim, dimWorld>, class RandomAccessContainer, std::enable_if_t< std::is_same_v< Policy, TriangulationPolicy::ConvexHullPolicy > &&dim==3, int > = 0>
Triangulation< dim, dimWorld, typename RandomAccessContainer::value_type::value_type > Dumux::triangulate (const RandomAccessContainer &points)
 Triangulate volume given a point cloud (3d).