BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_CommTable.hpp
Go to the documentation of this file.
1/*
2 * BELFEM -- The Berkeley Lab Finite Element Framework
3 * Copyright (c) 2026, The Regents of the University of California,
4 * through Lawrence Berkeley National Laboratory (subject to receipt of any required
5 * approvals from the U.S. Dept. of Energy). All rights reserved.
6 *
7 * Developers: Christian Messe, Gregory Giard
8 *
9 * See the top-level LICENSE file for the complete license and disclaimer.
10 */
11
12#ifndef BELFEM_CL_COMMTABLE_HPP
13#define BELFEM_CL_COMMTABLE_HPP
14
15#include "typedefs.hpp"
16#include "cl_Cell.hpp"
17
18namespace belfem
19{
20 namespace mesh
21 {
22 class Distributor;
23
25 {
26 // contains the indices
27 Cell< index_t > mNodes ;
28 Cell< index_t > mEdges ;
29 Cell< index_t > mFaces ;
30 Cell< index_t > mElements ;
31 Cell< index_t > mFacets ;
32 Cell< index_t > mVertices ;
33 Cell< index_t > mControlPoints ;
34
35 // give distributor access to writable functions
36 friend Distributor ;
37
38 public:
39
40 CommTable() = default ;
41
42 ~CommTable() = default;
43
44 const Cell< index_t > & nodes() const;
45 const Cell< index_t > & edges() const;
46 const Cell< index_t > & faces() const;
47 const Cell< index_t > & elements() const;
48 const Cell< index_t > & facets() const;
49 const Cell< index_t > & vertices() const;
50 const Cell< index_t > & control_points() const;
51
59
60 protected:
61
69 };
70
71//-----------------------------------------------------------------------
72
73 inline const Cell< index_t > &
75 {
76 return mNodes ;
77 }
78
79 inline const Cell< index_t > &
81 {
82 return mEdges ;
83 }
84
85 inline const Cell< index_t > &
87 {
88 return mFaces ;
89 }
90
91 inline const Cell< index_t > &
93 {
94 return mElements ;
95 }
96 inline const Cell< index_t > &
98 {
99 return mFacets ;
100 }
101 inline const Cell< index_t > &
103 {
104 return mVertices ;
105 }
106
107 inline Cell< index_t > &
109 {
110 return mNodes ;
111 }
112
113 inline Cell< index_t > &
115 {
116 return mEdges ;
117 }
118
119 inline Cell< index_t > &
121 {
122 return mFaces ;
123 }
124
125 inline Cell< index_t > &
127 {
128 return mElements ;
129 }
130 inline Cell< index_t > &
132 {
133 return mFacets ;
134 }
135 inline Cell< index_t > &
137 {
138 return mVertices ;
139 }
140
141 inline index_t
143 {
144 return mNodes.size();
145 }
146
147 inline index_t
149 {
150 return mEdges.size();
151 }
152
153 inline index_t
155 {
156 return mFaces.size();
157 }
158
159 inline index_t
161 {
162 return mElements.size();
163 }
164
165 inline index_t
167 {
168 return mFacets.size();
169 }
170
171 inline index_t
173 {
174 return mVertices.size();
175 }
176
177 inline index_t
179 {
180 return mControlPoints.size();
181 }
182
183 inline const
185 {
186 return mControlPoints ;
187 }
188
189 inline
191 {
192 return mControlPoints ;
193 }
194 }
195}
196#endif //BELFEM_CL_COMMTABLE_HPP
index_t number_of_nodes() const
Definition cl_CommTable.hpp:142
const Cell< index_t > & elements() const
Definition cl_CommTable.hpp:92
const Cell< index_t > & edges() const
Definition cl_CommTable.hpp:80
const Cell< index_t > & faces() const
Definition cl_CommTable.hpp:86
const Cell< index_t > & vertices() const
Definition cl_CommTable.hpp:102
index_t number_of_control_points() const
Definition cl_CommTable.hpp:178
const Cell< index_t > & facets() const
Definition cl_CommTable.hpp:97
const Cell< index_t > & control_points() const
Definition cl_CommTable.hpp:184
index_t number_of_vertices() const
Definition cl_CommTable.hpp:172
index_t number_of_facets() const
Definition cl_CommTable.hpp:166
index_t number_of_faces() const
Definition cl_CommTable.hpp:154
index_t number_of_elements() const
Definition cl_CommTable.hpp:160
index_t number_of_edges() const
Definition cl_CommTable.hpp:148
const Cell< index_t > & nodes() const
Definition cl_CommTable.hpp:74
Definition cl_Mesh_Distributor.hpp:31
Definition cl_EF_EdgeFunction.hpp:17
USER GUIDES:
Definition cl_Capacitor.cpp:16
uint32_t index_t
Definition typedefs.hpp:52