Class FindIntersections

Class Documentation

class FindIntersections

Public Functions

inline FindIntersections(Omega_h::Mesh &source_mesh, Omega_h::Mesh &target_mesh)
template<int Dim>
void adjBasedIntersectSearch(const Kokkos::View<const LO*> &start_elements, const Omega_h::LOs &tgt2src_offsets, Omega_h::Write<Omega_h::LO> &nIntersections, Omega_h::Write<Omega_h::LO> &tgt2src_indices, bool is_count_only, bool use_prefilter = true)

Performs adjacency-based intersection search between target and source elements.

For each target element, starting from the source element that contains its centroid, a queue-based BFS traversal is used over the adjacency graph of source elements. If an element intersects the target triangle (based on area tolerance), it is included.

See also

r3d::intersect_simplices, intersectTargets

Note

Templated on spatial dimension Dim: linear triangles (Dim==2) or linear tetrahedra (Dim==3), using r3d::intersect_simplices for geometric intersection.

Parameters:
  • start_elements – For each target element, the source element containing its centroid (from a point search over the source mesh)

  • tgt2src_offsets – Offsets array (only used when writing indices).

  • nIntersections – [out] Number of intersecting source elements per target element.

  • tgt2src_indices – [out] Indices of intersecting source elements.

  • is_count_only – If true, only counts intersections; if false, also fills tgt2src_indices.

  • use_prefilter – if true, skip degenerate clips