18 #ifndef LIBMESH_PERIODIC_BOUNDARIES_H
19 #define LIBMESH_PERIODIC_BOUNDARIES_H
22 #include "libmesh/libmesh_config.h"
24 #ifdef LIBMESH_ENABLE_PERIODIC
27 #include "libmesh/vector_value.h"
38 class PeriodicBoundaryBase;
39 class PointLocatorBase;
49 class PeriodicBoundaries :
public std::map<boundary_id_type, std::unique_ptr<PeriodicBoundaryBase>>
68 const PointLocatorBase & point_locator,
71 unsigned int * neigh_side =
nullptr)
const;
76 #endif // LIBMESH_ENABLE_PERIODIC
78 #endif // LIBMESH_PERIODIC_BOUNDARIES_H
We're using a class instead of a typedef to allow forward declarations and future flexibility...
const Elem * neighbor(boundary_id_type boundary_id, const PointLocatorBase &point_locator, const Elem *e, unsigned int side, unsigned int *neigh_side=nullptr) const
PeriodicBoundaryBase * boundary(boundary_id_type id)
PeriodicBoundaries()=default
The base class for defining periodic boundaries.