BELFEM
0.9.0
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
cl_Mesh_BfmFile.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, through
4
* 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_MESH_BFMFILE_HPP
13
#define BELFEM_CL_MESH_BFMFILE_HPP
14
15
#include "
cl_HDF5.hpp
"
16
17
#ifndef BELFEM_HDF5
18
typedef
void
hvl_t
;
19
#endif
20
21
22
namespace
belfem
23
{
24
class
Mesh ;
25
26
namespace
mesh
27
{
28
class
ProtoMesh ;
29
30
31
class
BfmFile
32
{
33
const
string
mFilePath;
34
35
Mesh
* mMesh =
nullptr
;
36
bool
mOwnMesh = true ;
37
38
ProtoMesh
* mProto = nullptr ;
39
40
HDF5
* mFile =
nullptr
;
41
42
Map< id_t, uint >
mNumNodesPerElement ;
43
44
45
46
//------------------------------------------------------------------------------
47
public
:
48
//------------------------------------------------------------------------------
49
50
BfmFile
(
51
const
string
& aFilePath,
52
Mesh
* aMesh =
nullptr
);
53
54
//------------------------------------------------------------------------------
55
56
~BfmFile
() ;
57
58
//------------------------------------------------------------------------------
59
60
size_t
61
checksum
()
const
;
62
67
uint64_t
68
config_tag
()
const
;
69
70
string
71
config_text
()
const
;
72
73
Mesh
*
74
get
() ;
75
76
//------------------------------------------------------------------------------
77
78
void
79
save
();
80
81
void
82
load
();
83
84
//------------------------------------------------------------------------------
85
private
:
86
//------------------------------------------------------------------------------
87
88
89
void
90
save_meta_data();
91
92
void
93
load_meta_data();
94
95
void
96
save_node_data();
97
98
void
99
load_node_data();
100
101
void
102
save_group_data(
const
GroupType
aType );
103
104
void
105
load_group_data(
const
GroupType
aType );
106
107
void
108
save_element_data();
109
110
void
111
load_element_data();
112
113
void
114
save_facet_data(
const
bool
aSaveTopology =
false
);
115
116
void
117
load_facet_data();
118
119
void
120
save_edge_data();
121
122
void
123
load_edge_data();
124
125
void
126
save_face_data();
127
128
void
129
load_face_data();
130
131
void
132
save_control_point_data();
133
134
void
135
load_control_point_data();
136
137
void
138
save_node_duplicate_data();
139
140
void
141
load_node_duplicate_data();
142
143
void
144
save_hanging_entities();
145
146
void
147
load_hanging_entities();
148
149
void
150
save_hanging_nodes(
const
hsize_t
aNumNodes );
151
152
void
153
load_hanging_nodes();
154
155
void
156
save_hanging_edges(
const
hsize_t
aNumEdges );
157
158
void
159
load_hanging_edges();
160
161
void
162
save_hanging_faces(
const
hsize_t
aNumFaces );
163
164
void
165
load_hanging_faces();
166
167
void
168
save_hanging_facets(
const
hsize_t
aNumFacets );
169
170
void
171
load_hanging_facets();
172
173
void
174
save_hanging_control_points(
const
hsize_t
aNumControlPoints );
175
176
void
177
load_hanging_control_points();
178
179
void
180
save_periodicity_data();
181
182
void
183
save_periodic_planes();
184
185
void
186
save_periodic_nodes();
187
188
void
189
save_periodic_edges();
190
191
void
192
save_periodic_faces();
193
194
void
195
save_periodic_facets();
196
197
void
198
load_periodicity_data();
199
200
void
201
load_periodic_planes();
202
203
void
204
load_periodic_nodes();
205
206
void
207
load_periodic_edges();
208
209
void
210
load_periodic_faces();
211
212
void
213
load_periodic_facets();
214
215
void
216
save_thinshell_data();
217
218
void
219
load_thinshell_data();
220
221
void
222
save_vertex_data();
223
224
void
225
load_vertex_data();
226
227
void
228
save_curve_data();
229
230
void
231
load_curve_data();
232
};
233
234
inline
235
Mesh
*
236
BfmFile::get
()
237
{
238
mOwnMesh = false ;
239
return
mMesh ;
240
}
241
242
}
243
}
244
#endif
// BELFEM_CL_MESH_BFMFILE_HPP
cl_HDF5.hpp
hvl_t
void hvl_t
Definition
cl_Mesh_BfmFile.hpp:18
belfem::HDF5
Hierarchical data format I/O.
Definition
cl_HDF5.hpp:39
belfem::Map< id_t, uint >
belfem::Mesh
Top-level container for all mesh entities.
Definition
cl_Mesh.hpp:60
belfem::mesh::BfmFile::BfmFile
BfmFile(const string &aFilePath, Mesh *aMesh=nullptr)
Definition
cl_Mesh_BfmFile.cpp:29
belfem::mesh::BfmFile::checksum
size_t checksum() const
Definition
cl_Mesh_BfmFile.cpp:45
belfem::mesh::BfmFile::config_text
string config_text() const
Definition
cl_Mesh_BfmFile.cpp:86
belfem::mesh::BfmFile::save
void save()
Definition
cl_Mesh_BfmFile.cpp:110
belfem::mesh::BfmFile::load
void load()
Definition
cl_Mesh_BfmFile.cpp:152
belfem::mesh::BfmFile::get
Mesh * get()
Definition
cl_Mesh_BfmFile.hpp:236
belfem::mesh::BfmFile::config_tag
uint64_t config_tag() const
Definition
cl_Mesh_BfmFile.cpp:62
belfem::mesh::ProtoMesh
Definition
cl_ProtoMesh.hpp:39
belfem
USER GUIDES:
Definition
cl_Capacitor.cpp:16
belfem::hsize_t
int hsize_t
Definition
hdf5_types.hpp:22
belfem::GroupType
GroupType
Definition
Mesh_Enums.hpp:130
mesh
Definition
__init__.py:1
src
mesh
cl_Mesh_BfmFile.hpp
Generated by
1.18.0