Go to the documentation of this file.
20 #ifndef LIBMESH_POINT_LOCATOR_BASE_H
21 #define LIBMESH_POINT_LOCATOR_BASE_H
24 #include "libmesh/reference_counted_object.h"
25 #include "libmesh/libmesh_common.h"
27 #ifdef LIBMESH_FORWARD_DECLARE_ENUMS
33 #include "libmesh/enum_point_locator_type.h"
46 class PointLocatorBase;
92 virtual void clear() = 0;
98 virtual void init() = 0;
106 const std::set<subdomain_id_type> * allowed_subdomains =
nullptr)
const = 0;
113 std::set<const Elem *> & candidate_elements,
114 const std::set<subdomain_id_type> * allowed_subdomains =
nullptr)
const = 0;
134 const std::set<subdomain_id_type> * allowed_subdomains =
nullptr,
217 #endif // LIBMESH_POINT_LOCATOR_BASE_H
const PointLocatorBase * _master
Const pointer to our master, initialized to nullptr if none given.
virtual void set_close_to_point_tol(Real close_to_point_tol)
Set a tolerance to use when determining if a point is contained within the mesh.
This class implements reference counting.
The libMesh namespace provides an interface to certain functionality in the library.
bool _verbose
Boolean flag to indicate whether to print out extra info.
static const Real TOLERANCE
Real _close_to_point_tol
The tolerance to use.
Real get_close_to_point_tol() const
Get the close-to-point tolerance.
virtual void disable_out_of_mesh_mode()=0
Disables out-of-mesh mode (default).
virtual void enable_out_of_mesh_mode()=0
Enables out-of-mesh mode.
bool _use_close_to_point_tol
true if we will use a user-specified tolerance for locating the element.
virtual void init()=0
Initializes the point locator, so that the operator() methods can be used.
This is the MeshBase class.
static std::unique_ptr< PointLocatorBase > build(PointLocatorType t, const MeshBase &mesh, const PointLocatorBase *master=nullptr)
Builds an PointLocator for the mesh mesh.
virtual const Elem * operator()(const Point &p, const std::set< subdomain_id_type > *allowed_subdomains=nullptr) const =0
Locates the element in which the point with global coordinates p is located.
A Point defines a location in LIBMESH_DIM dimensional Real space.
A Node is like a Point, but with more information.
virtual const Node * locate_node(const Point &p, const std::set< subdomain_id_type > *allowed_subdomains=nullptr, Real tol=TOLERANCE) const
const MeshBase & get_mesh() const
Get a const reference to this PointLocator's mesh.
virtual ~PointLocatorBase()
Destructor.
const MeshBase & _mesh
constant reference to the mesh in which the point is looked for.
This is the base class from which all geometric element types are derived.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void clear()=0
Clears the PointLocator.
virtual void unset_close_to_point_tol()
Specify that we do not want to use a user-specified tolerance to determine if a point is contained wi...
This is the base class for point locators.
bool _initialized
true when properly initialized, false otherwise.
void ErrorVector unsigned int
PointLocatorBase(const MeshBase &mesh, const PointLocatorBase *master)
Constructor.