47 type(
mesh_t),
private,
pointer :: msh => null()
60 type(
mesh_t),
target,
intent(in) :: msh
61 real(kind=
dp),
intent(in),
optional :: padding
62 type(
hex_t),
allocatable :: elements(:)
68 call this%search_tree%init(msh%nelv)
71 allocate(elements(msh%nelv))
73 select type(el => msh%elements(i)%e)
81 if (
present(padding))
then
82 call this%search_tree%build(elements, padding)
84 call this%search_tree%build(elements)
89 if (this%search_tree%get_size() .ne. (msh%nelv))
then
90 call neko_error(
"Error building the search tree.")
99 if (
associated(this%msh))
then
113 call this%search_tree%query_overlaps(p, -1, overlaps)
Axis Aligned Bounding Box (aabb) Tree data structure.
Axis Aligned Bounding Box (aabb) implementation in Fortran.
Defines a hexahedron element.
Implements a mesh intersection detector.
subroutine intersect_detector_free(this)
Destroy an intersector detector.
subroutine intersect_detector_overlap(this, p, overlaps)
Computes the overlap between elements and a given point p.
subroutine intersect_detector_init(this, msh, padding)
Initialise an intersector detector for a given mesh msh.
integer, parameter, public dp
Implements a dynamic stack ADT.
Axis Aligned Bounding Box (aabb) Tree.
A point in with coordinates .