24#include "libmesh/tree_node.h"
25#include "libmesh/tree_base.h"
43template <
unsigned int N>
51 unsigned int target_bin_size,
79 {
return root.n_active_bins(); }
87 const std::set<subdomain_id_type> * allowed_subdomains =
nullptr,
97 std::set<const Elem *> & candidate_elements,
98 const std::set<subdomain_id_type> * allowed_subdomains =
nullptr,
107 const std::set<subdomain_id_type> * allowed_subdomains =
nullptr,
This is the base class from which all geometric element types are derived.
This is the MeshBase class.
A Point defines a location in LIBMESH_DIM dimensional Real space.
This is the base class for trees, it allows pointer usage of trees.
This class defines a node on a tree.
This class defines a tree that may be used for fast point location in space.
Tree(const Tree< N > &)=delete
Copy-constructor.
virtual void print_elements(std::ostream &my_out=libMesh::out) const override
Prints the nodes.
virtual void print_nodes(std::ostream &my_out=libMesh::out) const override
Prints the nodes.
virtual const Elem * find_element(const Point &p, const std::set< subdomain_id_type > *allowed_subdomains=nullptr, Real relative_tol=TOLERANCE) const override
TreeNode< N > root
The tree root.
const Elem * operator()(const Point &p, const std::set< subdomain_id_type > *allowed_subdomains=nullptr, Real relative_tol=TOLERANCE) const
virtual void find_elements(const Point &p, std::set< const Elem * > &candidate_elements, const std::set< subdomain_id_type > *allowed_subdomains=nullptr, Real relative_tol=TOLERANCE) const override
Adds to candidate_elements any elements containing the specified point p, optionally restricted to a ...
virtual unsigned int n_active_bins() const override
const Trees::BuildType build_type
How the tree is built.
~Tree()=default
Destructor.
Tree< 4 > QuadTree
A QuadTree is a tree appropriate for 2D meshes.
Tree< 2 > BinaryTree
A BinaryTree is a tree appropriate for 1D meshes.
BuildType
enum defining how to build the tree.
Tree< 8 > OctTree
An OctTree is a tree appropriate for 3D meshes.
The libMesh namespace provides an interface to certain functionality in the library.
static constexpr Real TOLERANCE
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real