std::vector<unsigned> Pyramid14::nodes_on_side(const unsigned int s) const { libmesh_assert_less(s, n_sides()); auto trim = (s == 4) ? 0 : 3; return {std::begin(side_nodes_map[s]), std::end(side_nodes_map[s]) - trim}; }
std::vector<unsigned> InfQuad6::nodes_on_side(const unsigned int s) const { libmesh_assert_less(s, n_sides()); auto trim = (s == 0) ? 0 : 1; return {std::begin(side_nodes_map[s]), std::end(side_nodes_map[s]) - trim}; }
bool Pyramid14::is_node_on_side(const unsigned int n, const unsigned int s) const { libmesh_assert_less (s, n_sides()); return std::find(std::begin(side_nodes_map[s]), std::end(side_nodes_map[s]), n) != std::end(side_nodes_map[s]); }
bool InfPrism6::is_node_on_side(const unsigned int n, const unsigned int s) const { libmesh_assert_less (s, n_sides()); for (unsigned int i = 0; i != 4; ++i) if (side_nodes_map[s][i] == n) return true; return false; }
bool Quad9::is_node_on_side(const unsigned int n, const unsigned int s) const { libmesh_assert(s < n_sides()); for (unsigned int i = 0; i != 3; ++i) if (side_nodes_map[s][i] == n) return true; return false; }
std::vector<unsigned> Hex8::nodes_on_side(const unsigned int s) const { libmesh_assert_less(s, n_sides()); return {std::begin(side_nodes_map[s]), std::end(side_nodes_map[s])}; }