bitrl & cuberl Documentation
Simulation engine for reinforcement learning agents
Loading...
Searching...
No Matches
quad_element.h
Go to the documentation of this file.
1#ifndef QUAD_ELEMENT_H
2#define QUAD_ELEMENT_H
3
4#include "bitrl/bitrl_types.h"
6
7#include <any>
8
9namespace bitrl
10{
11namespace utils
12{
13namespace geom
14{
15
21
31
32template <int dim> class Quad;
33
34template <> class Quad<2> : public Element<2>
35{
36
37 public:
49
51 explicit Quad(uint_t nnodes = 4);
52
54 explicit Quad(uint_t id, uint_t pid, const std::any &data, uint_t n = 4);
55
57 virtual uint_t n_nodes() const override final { return n_nodes_per_edge_; }
58
60 virtual uint_t n_vertices() const override final { return 4; }
61
63 virtual uint_t n_neighbors() const override final { return 4; }
64
66 virtual void resize_faces();
67
69 virtual void set_face(uint_t f, face_ptr_t face) override final;
70
72 virtual uint_t n_faces() const final { return 4; }
73
75 virtual cface_ref_t get_face(uint_t f) const override;
76
78 virtual face_ref_t get_face(uint_t f) override;
79
81 virtual uint_t n_edges() const final { return 4; }
82
85 virtual void face_vertices(uint_t f, std::vector<uint_t> &ids) const override;
86
88 virtual real_t volume() const override final;
89
92 virtual uint_t which_face_am_i(cface_ref_t face) const override final;
93
95 virtual const DynVec<real_t> face_normal_vector(uint_t f) const override final;
96
97 private:
102 uint_t n_nodes_per_edge_;
103
105 std::vector<face_ptr_t> faces_;
106};
107
108} // namespace geom
109} // namespace utils
110} // namespace bitrl
111#endif
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
Wraps the notion of a node. A node is simply a point in dim-space that can hold dofs.
Definition node.h:24
Element< 2 >::edge_ref_t edge_ref_t
Definition quad_element.h:43
Element< 2 >::face_ref_t face_ref_t
Definition quad_element.h:47
Element< 2 >::neighbor_ref_t neighbor_ref_t
Definition quad_element.h:40
virtual uint_t n_neighbors() const override final
A quad has 4 neighbors independent of the dimension.
Definition quad_element.h:63
Element< 2 >::neighbor_ptr_t neighbor_ptr_t
Definition quad_element.h:39
virtual uint_t n_faces() const final
A quad has 4 sides independent of the dimension.
Definition quad_element.h:72
Element< 2 >::face_ptr_t face_ptr_t
Definition quad_element.h:45
virtual uint_t n_nodes() const override final
Returns the total number of nodes for the element.
Definition quad_element.h:57
virtual uint_t n_vertices() const override final
A quad has 4 vertices independent of the dimension.
Definition quad_element.h:60
virtual uint_t n_edges() const final
A quad has 4 edges independent of the dimension.
Definition quad_element.h:81
Element< 2 >::cedge_ref_t cedge_ref_t
Definition quad_element.h:44
Element< 2 >::node_ptr_t node_ptr_t
Definition quad_element.h:38
Element< 2 >::cedge_ptr_t cedge_ptr_t
Definition quad_element.h:42
Element< 2 >::cface_ptr_t cface_ptr_t
Definition quad_element.h:46
Element< 2 >::edge_ptr_t edge_ptr_t
Definition quad_element.h:41
Element< 2 >::cface_ref_t cface_ref_t
Definition quad_element.h:48
Definition quad_element.h:32
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