21#include "libmesh/libmesh_config.h"
23#ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS
25#include "libmesh/inf_fe.h"
26#include "libmesh/inf_fe_macro.h"
27#include "libmesh/fe.h"
28#include "libmesh/elem.h"
29#include "libmesh/enum_to_string.h"
92 const Order base_mapping_order)
94 switch (base_elem.
dim())
105 libmesh_error_msg(
"Unsupported base_elem dim = " << base_elem.
dim());
116 const unsigned int n_onion)
118 libmesh_assert_less (n_onion, 2);
131 return static_cast<unsigned int>(o_radial);
This is the base class from which all geometric element types are derived.
virtual unsigned short dim() const =0
virtual ElemType type() const =0
virtual std::unique_ptr< Elem > build_side_ptr(const unsigned int i)=0
virtual unsigned int n_shape_functions() const override
static unsigned int n_base_mapping_sf(const Elem &base_elem, const Order base_mapping_order)
static ElemType get_elem_type(const ElemType type)
static std::unique_ptr< const Elem > build_elem(const Elem *inf_elem)
Build the base element of an infinite element.
static unsigned int n_dofs_at_node(const Order o_radial, const unsigned int n_onion)
std::string enum_to_string(const T e)
The libMesh namespace provides an interface to certain functionality in the library.
ElemType
Defines an enum for geometric element types.