Template Class Element

Inheritance Relationships

Base Type

Class Documentation

template<int dim>
class Element : public bitrl::utils::geom::MeshEntity

Wraps the notion of an element.

forward declarations

Public Types

typedef Element<dim> *neighbor_ptr_t
typedef Element<dim> &neighbor_ref_t
typedef const Element<dim> &cneighbor_ref_t
typedef Node<dim> *node_ptr_t
typedef element_traits<Element<dim>>::edge_ptr_t edge_ptr_t
typedef element_traits<Element<dim>>::cedge_ptr_t cedge_ptr_t
typedef element_traits<Element<dim>>::edge_ref_t edge_ref_t
typedef element_traits<Element<dim>>::cedge_ref_t cedge_ref_t
typedef element_traits<Element<dim>>::face_ptr_t face_ptr_t
typedef element_traits<Element<dim>>::cface_ptr_t cface_ptr_t
typedef element_traits<Element<dim>>::face_ref_t face_ref_t
typedef element_traits<Element<dim>>::cface_ref_t cface_ref_t

Public Functions

virtual ~Element()

Destructor.

virtual uint_t n_vertices() const = 0

How many vertices the element has.

virtual uint_t n_nodes() const = 0

How many nodes the element has.

virtual void set_node(uint_t i, node_ptr_t node)

Set the i-th node.

virtual void append_node(node_ptr_t node)

Append a node to the nodes list.

virtual void resize_nodes()

Reserve space for nodes.

virtual node_ptr_t get_node(uint_t n)

Returns the i-th node.

virtual uint_t n_edges() const = 0

How many edges the element has.

virtual uint_t n_faces() const = 0

How many faces the element has.

virtual void resize_faces() = 0

Resize the space for the faces.

virtual cface_ref_t get_face(uint_t f) const = 0

Returns the f-face.

virtual face_ref_t get_face(uint_t f) = 0

Returns the f-face.

virtual void set_face(uint_t f, face_ptr_t face) = 0

Set the f-th face of the element.

virtual void set_neighbor(uint_t n, neighbor_ptr_t neigh)

Set the i-th neighbor.

virtual uint_t n_neighbors() const = 0

Returns the number of neighbors.

virtual void resize_neighbors()

Reserve space for neighbors.

virtual cneighbor_ref_t get_neighbor(uint_t n) const

Access the n-th neighbor.

virtual neighbor_ptr_t neighbor_ptr(uint_t n)

Access the n-th neighbor pointer.

virtual const neighbor_ptr_t neighbor_ptr(uint_t n) const

Access the n-th neighbor pointer.

virtual void face_vertices(uint_t f, std::vector<uint_t> &ids) const = 0

Returns the node ids of the vertices of the given face.

virtual real_t volume() const = 0

Returns the volume of the element.

virtual GeomPoint<dim> centroid() const

Returns the average location of the vertices of the element.

virtual uint_t which_face_am_i(cface_ref_t face) const = 0

Returns the local id relevant to the calling object of the passed object.

virtual const DynVec<real_t> face_normal_vector(uint_t f) const = 0

Returns the face normal vector.

uint_t which_neighbor_am_i(const Element<dim> &element) const

Returns the local id relevant to the calling object of the passed object.

std::vector<node_ptr_t> get_vertices() const

Return the vertices of the element.

Protected Functions

Element()

Constructor.

Element(uint_t id, uint_t pid)

Constructor.

Element(uint_t id, uint_t pid, const std::any &data)

Constructor.

Protected Attributes

std::vector<neighbor_ptr_t> neginbors_

The neighbors of the element.

std::vector<node_ptr_t> nodes_

The nodes of the element.