Go to the documentation of this file.
19 #include "libmesh/libmesh_config.h"
21 #ifdef LIBMESH_ENABLE_PERIODIC
23 #include "libmesh/periodic_boundaries.h"
24 #include "libmesh/point_locator_base.h"
25 #include "libmesh/elem.h"
26 #include "libmesh/periodic_boundary.h"
27 #include "libmesh/mesh_base.h"
34 for (
auto & pr : *
this)
42 iterator i = this->find(
id);
52 const_iterator i = this->find(
id);
64 unsigned int side)
const
74 std::set<const Elem *> candidate_elements;
75 point_locator.operator()(p, candidate_elements);
81 for(
const Elem * elem_it : candidate_elements)
83 unsigned int s_neigh =
94 libmesh_error_msg(
"Periodic boundary neighbor not found");
104 #endif // LIBMESH_ENABLE_PERIODIC
const unsigned int invalid_uint
A number which is used quite often to represent an invalid or uninitialized value.
virtual Point get_corresponding_pos(const Point &pt) const =0
This function should be overridden by derived classes to define how one finds corresponding nodes on ...
virtual std::unique_ptr< Elem > build_side_ptr(const unsigned int i, bool proxy=true)=0
The base class for defining periodic boundaries.
The libMesh namespace provides an interface to certain functionality in the library.
IterBase * end
Also have a polymorphic pointer to the end object, this prevents iterating past the end.
PeriodicBoundaryBase * boundary(boundary_id_type id)
This is the MeshBase class.
A Point defines a location in LIBMESH_DIM dimensional Real space.
const MeshBase & get_mesh() const
Get a const reference to this PointLocator's mesh.
const Elem * neighbor(boundary_id_type boundary_id, const PointLocatorBase &point_locator, const Elem *e, unsigned int side) const
This is the base class from which all geometric element types are derived.
boundary_id_type pairedboundary
This is the base class for point locators.