20#ifndef LIBMESH_EDGE_INF_EDGE2_H
21#define LIBMESH_EDGE_INF_EDGE2_H
23#include "libmesh/libmesh_common.h"
25#ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS
28#include "libmesh/edge.h"
80 libmesh_assert_less(i, this->
n_nodes());
87 virtual unsigned int n_sub_elem()
const override {
return 1; }
92 virtual bool is_vertex(
const unsigned int i)
const override;
97 virtual bool is_edge(
const unsigned int i)
const override;
102 virtual bool is_face(
const unsigned int i)
const override;
109 const unsigned int s)
const override;
111 virtual std::vector<unsigned int>
nodes_on_side(
const unsigned int s)
const override;
118 const unsigned int e)
const override;
132 std::vector<dof_id_type> & conn)
const override;
139#ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS
144 virtual bool infinite ()
const override {
return true; }
156 override {
return (i > 0); }
170#ifdef LIBMESH_ENABLE_AMR
177 const unsigned int)
const override
178 { libmesh_not_implemented();
return 0.; }
The BoundaryInfo class contains information relevant to boundary conditions including storing faces,...
The Edge is an element in 1D.
virtual unsigned int n_nodes() const override
This is the base class from which all geometric element types are derived.
const Point & point(const unsigned int i) const
The InfEdge2 is an infinite element in 1D composed of 2 nodes.
InfEdge2(const InfEdge2 &)=delete
virtual bool is_vertex(const unsigned int i) const override
virtual unsigned int n_sub_elem() const override
virtual bool is_node_on_side(const unsigned int n, const unsigned int s) const override
static const int num_nodes
Geometric constants for InfEdge2.
LIBMESH_ENABLE_TOPOLOGY_CACHES
virtual Point master_point(const unsigned int i) const override
virtual bool is_mid_infinite_edge_node(const unsigned int i) const override
virtual Order default_order() const override
virtual bool is_edge(const unsigned int i) const override
virtual ElemType type() const override
InfEdge2(Elem *p=nullptr)
Constructor.
virtual void connectivity(const unsigned int se, const IOPackage iop, std::vector< dof_id_type > &conn) const override
virtual bool infinite() const override
InfEdge2 & operator=(const InfEdge2 &)=delete
virtual ~InfEdge2()=default
Node * _nodelinks_data[2]
Data for links to nodes.
InfEdge2(InfEdge2 &&)=delete
virtual bool is_face(const unsigned int i) const override
virtual Real embedding_matrix(const unsigned int, const unsigned int, const unsigned int) const override
Matrix used to create the elements children.
virtual void flip(BoundaryInfo *) override final
No such thing as a misoriented InfEdge.
virtual Point origin() const override
virtual std::vector< unsigned int > nodes_on_side(const unsigned int s) const override
virtual bool is_node_on_edge(const unsigned int n, const unsigned int e) const override
A Node is like a Point, but with more information.
A Point defines a location in LIBMESH_DIM dimensional Real space.
The libMesh namespace provides an interface to certain functionality in the library.
IOPackage
libMesh interfaces with several different software packages for the purposes of creating,...
ElemType
Defines an enum for geometric element types.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real