bitrl & cuberl Documentation
Simulation engine for reinforcement learning agents
Loading...
Searching...
No Matches
edge_element.h
Go to the documentation of this file.
1#ifndef EDGE_ELEMENT_H
2#define EDGE_ELEMENT_H
3
6
7namespace bitrl
8{
9namespace utils
10{
11namespace geom
12{
13template <int dim> class EdgeElem;
14
15template <int dim> class EdgeElem : public FaceElement<dim, 1>
16{
17 public:
19
22
24 EdgeElem(uint_t id, uint_t n_nodes, uint_t proc_id);
25};
26
27template <> class EdgeElem<1> : public Element<1>
28{
29 public:
41
44
46 virtual uint_t n_nodes() const override { return 2; }
47
49 virtual void set_node(uint_t i, node_ptr_t node) override final;
50
52 virtual node_ptr_t get_node(uint_t n) override final;
53
55 virtual uint_t n_vertices() const override final { return 2; }
56
58 virtual uint_t n_edges() const override final { return 2; }
59
61 virtual uint_t n_faces() const override final { return 2; }
62
66 virtual void resize_faces() override final {}
67
70 virtual void set_face(uint_t, face_ptr_t) override final {}
71
73 virtual cface_ref_t get_face(uint_t f) const override;
74
76 virtual face_ref_t get_face(uint_t f) override;
77
79 virtual uint_t n_neighbors() const { return 2; }
80
83 virtual void face_vertices(uint_t f, std::vector<uint_t> &ids) const override final;
84
86 virtual real_t volume() const override final;
87
92 {
93 throw std::logic_error("Not implemented");
94 }
95
97 virtual const DynVec<real_t> face_normal_vector(uint_t f) const override final
98 {
99 throw std::logic_error("Not implemented");
100 }
101};
102
103} // namespace geom
104} // namespace utils
105} // namespace bitrl
106#endif // EDGE_ELEMENT_H
Element< 1 >::neighbor_ref_t neighbor_ref_t
Definition edge_element.h:31
Element< 1 >::neighbor_ptr_t neighbor_ptr_t
Definition edge_element.h:30
virtual void resize_faces() override final
Resize the space for the faces an EdgeElem<1> does not have edges/faces these are Node type.
Definition edge_element.h:66
virtual const DynVec< real_t > face_normal_vector(uint_t f) const override final
Returns the face normal vector.
Definition edge_element.h:97
virtual void set_face(uint_t, face_ptr_t) override final
Set the f-th face of the element An EdgeElem<1> does not have extra faces.
Definition edge_element.h:70
virtual uint_t n_vertices() const override final
How many vertices the element has.
Definition edge_element.h:55
Element< 1 >::cedge_ref_t cedge_ref_t
Definition edge_element.h:36
Element< 1 >::cface_ptr_t cface_ptr_t
Definition edge_element.h:38
Element< 1 >::face_ptr_t face_ptr_t
Definition edge_element.h:37
Element< 1 >::cedge_ptr_t cedge_ptr_t
Definition edge_element.h:34
Element< 1 >::face_ref_t face_ref_t
Definition edge_element.h:39
Element< 1 >::cface_ref_t cface_ref_t
Definition edge_element.h:40
Element< 1 >::edge_ptr_t edge_ptr_t
Definition edge_element.h:33
virtual uint_t n_faces() const override final
How many faces the element has.
Definition edge_element.h:61
virtual uint_t n_neighbors() const
Returns the number of neighbors.
Definition edge_element.h:79
virtual uint_t n_nodes() const override
How many nodes the element has.
Definition edge_element.h:46
Element< 1 >::edge_ref_t edge_ref_t
Definition edge_element.h:35
virtual uint_t n_edges() const override final
How many edges the element has.
Definition edge_element.h:58
Element< 1 >::node_ptr_t node_ptr_t
Definition edge_element.h:32
Definition edge_element.h:16
FaceElement< 2, 1 >::node_ptr_t node_ptr_t
Definition edge_element.h:18
Wraps the notion of an element.
Definition element.h:30
element_traits< Element< dim > >::edge_ref_t edge_ref_t
Definition element.h:39
element_traits< Element< dim > >::face_ref_t face_ref_t
Definition element.h:43
element_traits< Element< dim > >::cedge_ref_t cedge_ref_t
Definition element.h:40
element_traits< Element< dim > >::cface_ref_t cface_ref_t
Definition element.h:44
element_traits< Element< dim > >::cface_ptr_t cface_ptr_t
Definition element.h:42
element_traits< Element< dim > >::edge_ptr_t edge_ptr_t
Definition element.h:37
element_traits< Element< dim > >::face_ptr_t face_ptr_t
Definition element.h:41
element_traits< Element< dim > >::cedge_ptr_t cedge_ptr_t
Definition element.h:38
Definition edge_face_selector.h:12
Wraps the notion of a node. A node is simply a point in dim-space that can hold dofs.
Definition node.h:24
OutT resolve(const std::string &name, const std::map< std::string, std::any > &input)
Definition std_map_utils.h:25
Definition bitrl_consts.h:14
double real_t
real_t
Definition bitrl_types.h:23
Eigen::RowVectorX< T > DynVec
Dynamically sized row vector.
Definition bitrl_types.h:74
std::size_t uint_t
uint_t
Definition bitrl_types.h:43