20 #include "libmesh/elem_side_builder.h" 28 libmesh_assert_less(s, elem.
n_sides());
29 const std::size_t type_index =
static_cast<std::size_t
>(elem.
side_type(s));
32 std::unique_ptr<Elem> & side_elem =
_cached_elems[type_index];
40 return (*
this)(
const_cast<Elem &
>(elem), s);
virtual ElemType side_type(const unsigned int s) const =0
virtual std::unique_ptr< Elem > build_side_ptr(const unsigned int i)=0
Elem & operator()(Elem &elem, const unsigned int s)
This is the base class from which all geometric element types are derived.
std::vector< std::unique_ptr< Elem > > _cached_elems
Element cache for building sides; indexed by ElemType.
The libMesh namespace provides an interface to certain functionality in the library.
virtual unsigned int n_sides() const =0