|
DOLFINx
0.5.1
DOLFINx C++ interface
|
Geometry data structures and algorithms. More...
Classes | |
| class | BoundingBoxTree |
| Axis-Aligned bounding box binary tree. It is used to find entities in a collection (often a mesh::Mesh). More... | |
Functions | |
| std::array< double, 3 > | compute_distance_gjk (const std::span< const double > &p, const std::span< const double > &q) |
| Calculate the distance between two convex bodies p and q, each defined by a set of points, using the Gilbert–Johnson–Keerthi (GJK) distance algorithm. More... | |
| BoundingBoxTree | create_midpoint_tree (const mesh::Mesh &mesh, int tdim, const std::span< const std::int32_t > &entity_indices) |
| Create a bounding box tree for a subset of entities (local to process) based on the entity midpoints. More... | |
| std::vector< std::array< int, 2 > > | compute_collisions (const BoundingBoxTree &tree0, const BoundingBoxTree &tree1) |
| Compute all collisions between two BoundingBoxTrees (local to process) More... | |
| graph::AdjacencyList< std::int32_t > | compute_collisions (const BoundingBoxTree &tree, const std::span< const double > &points) |
| Compute all collisions between bounding boxes and for a set of points. More... | |
| std::vector< std::int32_t > | compute_closest_entity (const BoundingBoxTree &tree, const BoundingBoxTree &midpoint_tree, const mesh::Mesh &mesh, const std::span< const double > &points) |
| Compute closest mesh entity to a point. More... | |
| double | compute_squared_distance_bbox (const std::array< std::array< double, 3 >, 2 > &b, const std::array< double, 3 > &x) |
| Compute squared distance between point and bounding box. More... | |
| std::vector< double > | shortest_vector (const mesh::Mesh &mesh, int dim, const std::span< const std::int32_t > &entities, const std::span< const double > &points) |
| Compute the shortest vector from a mesh entity to a point. More... | |
| std::vector< double > | squared_distance (const mesh::Mesh &mesh, int dim, const std::span< const std::int32_t > &entities, const std::span< const double > &points) |
| Compute the squared distance between a point and a mesh entity. The distance is computed between the ith input points and the ith input entity. More... | |
| graph::AdjacencyList< int > | compute_colliding_cells (const mesh::Mesh &mesh, const graph::AdjacencyList< std::int32_t > &candidate_cells, const std::span< const double > &points) |
| From a Mesh, find which cells collide with a set of points. More... | |
Geometry data structures and algorithms.
Tools for geometric data structures and operations, e.g. searching.
| std::vector< std::int32_t > compute_closest_entity | ( | const BoundingBoxTree & | tree, |
| const BoundingBoxTree & | midpoint_tree, | ||
| const mesh::Mesh & | mesh, | ||
| const std::span< const double > & | points | ||
| ) |
Compute closest mesh entity to a point.
| [in] | tree | The bounding box tree for the entities |
| [in] | midpoint_tree | A bounding box tree with the midpoints of all the mesh entities. This is used to accelerate the search |
| [in] | mesh | The mesh |
| [in] | points | The set of points (shape=(num_points, 3)). Storage is row-major. |
| graph::AdjacencyList< std::int32_t > compute_colliding_cells | ( | const mesh::Mesh & | mesh, |
| const graph::AdjacencyList< std::int32_t > & | candidate_cells, | ||
| const std::span< const double > & | points | ||
| ) |
From a Mesh, find which cells collide with a set of points.
| [in] | mesh | The mesh |
| [in] | candidate_cells | List of candidate colliding cells for the ith point in points |
| [in] | points | The points to check for collision (shape=(num_points, 3)). Storage is row-major. |
| graph::AdjacencyList< std::int32_t > compute_collisions | ( | const BoundingBoxTree & | tree, |
| const std::span< const double > & | points | ||
| ) |
Compute all collisions between bounding boxes and for a set of points.
| [in] | tree | The bounding box tree |
| [in] | points | The points (shape=(num_points, 3)). Storage is row-major. |
| std::vector< std::array< int, 2 > > compute_collisions | ( | const BoundingBoxTree & | tree0, |
| const BoundingBoxTree & | tree1 | ||
| ) |
Compute all collisions between two BoundingBoxTrees (local to process)
| [in] | tree0 | First BoundingBoxTree |
| [in] | tree1 | Second BoundingBoxTree |
| std::array< double, 3 > compute_distance_gjk | ( | const std::span< const double > & | p, |
| const std::span< const double > & | q | ||
| ) |
Calculate the distance between two convex bodies p and q, each defined by a set of points, using the Gilbert–Johnson–Keerthi (GJK) distance algorithm.
| [in] | p | Body 1 list of points, shape (num_points, 3). Row-major storage. |
| [in] | q | Body 2 list of points, shape (num_points, 3). Row-major storage. |
| double compute_squared_distance_bbox | ( | const std::array< std::array< double, 3 >, 2 > & | b, |
| const std::array< double, 3 > & | x | ||
| ) |
Compute squared distance between point and bounding box.
| [in] | b | Bounding box coordinates |
| [in] | x | A point |
b and the point x. Returns zero if x is inside box. | geometry::BoundingBoxTree create_midpoint_tree | ( | const mesh::Mesh & | mesh, |
| int | tdim, | ||
| const std::span< const std::int32_t > & | entity_indices | ||
| ) |
Create a bounding box tree for a subset of entities (local to process) based on the entity midpoints.
| [in] | mesh | The mesh |
| [in] | tdim | The topological dimension of the entity |
| [in] | entity_indices | List of local entity indices |
| std::vector< double > shortest_vector | ( | const mesh::Mesh & | mesh, |
| int | dim, | ||
| const std::span< const std::int32_t > & | entities, | ||
| const std::span< const double > & | points | ||
| ) |
Compute the shortest vector from a mesh entity to a point.
| [in] | mesh | The mesh |
| [in] | dim | The topological dimension of the mesh entity |
| [in] | entities | The list of entities (local to process) |
| [in] | points | The set of points (shape=(num_points, 3)), using row-major storage |
| std::vector< double > squared_distance | ( | const mesh::Mesh & | mesh, |
| int | dim, | ||
| const std::span< const std::int32_t > & | entities, | ||
| const std::span< const double > & | points | ||
| ) |
Compute the squared distance between a point and a mesh entity. The distance is computed between the ith input points and the ith input entity.
| [in] | mesh | Mesh containing the entities |
| [in] | dim | The topological dimension of the mesh entities |
| [in] | entities | The indices of the mesh entities (local to process) |
| [in] | points | The set points from which to computed the shortest (shape=(num_points, 3)). Storage is row-major. |