Go to the documentation of this file.
20 #ifndef LIBMESH_POINT_LOCATOR_TREE_H
21 #define LIBMESH_POINT_LOCATOR_TREE_H
24 #include "libmesh/point_locator_base.h"
25 #include "libmesh/tree_base.h"
86 virtual void clear()
override;
98 virtual void init()
override;
108 const std::set<subdomain_id_type> * allowed_subdomains =
nullptr)
const override;
115 std::set<const Elem *> & candidate_elements,
116 const std::set<subdomain_id_type> * allowed_subdomains =
nullptr)
const override;
127 const std::set<subdomain_id_type> * allowed_subdomains,
128 bool use_close_to_point,
137 const std::set<subdomain_id_type> * allowed_subdomains,
199 #endif // LIBMESH_POINT_LOCATOR_TREE_H
virtual void enable_out_of_mesh_mode() override
Enables out-of-mesh mode.
Trees::BuildType _build_type
How the underlying tree is built.
unsigned int _target_bin_size
Target bin size, which gets passed to the constructor of _tree.
The libMesh namespace provides an interface to certain functionality in the library.
static const Real TOLERANCE
BuildType
enum defining how to build the tree.
PointLocatorTree(const MeshBase &mesh, const PointLocatorBase *master=nullptr)
Constructor.
void set_target_bin_size(unsigned int target)
Set the target bin size.
This is the MeshBase class.
virtual void clear() override
Clears the locator.
A Point defines a location in LIBMESH_DIM dimensional Real space.
This is the base class for trees, it allows pointer usage of trees.
bool _out_of_mesh_mode
true if out-of-mesh mode is enabled.
virtual void init() override
Initializes the locator, so that the operator() methods can be used.
virtual const Elem * operator()(const Point &p, const std::set< subdomain_id_type > *allowed_subdomains=nullptr) const override
Locates the element in which the point with global coordinates p is located, optionally restricted to...
const Elem * perform_linear_search(const Point &p, const std::set< subdomain_id_type > *allowed_subdomains, bool use_close_to_point, Real close_to_point_tolerance=TOLERANCE) const
As a fallback option, it's helpful to be able to do a linear search over the entire mesh.
This is the base class from which all geometric element types are derived.
const Elem * _element
Pointer to the last element that was found by the tree.
virtual void disable_out_of_mesh_mode() override
Disables out-of-mesh mode (default).
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
unsigned int get_target_bin_size() const
Get the target bin size.
TreeBase * _tree
Pointer to our tree.
This is the base class for point locators.
~PointLocatorTree()
Destructor.
std::set< const Elem * > perform_fuzzy_linear_search(const Point &p, const std::set< subdomain_id_type > *allowed_subdomains, Real close_to_point_tolerance=TOLERANCE) const
A method to check if "fat" point p is in multiple elements.