Skip to content

Commit b8f0df8

Browse files
committed
adding range checks in get_tuple_from_simplex_local_id
1 parent 13cb315 commit b8f0df8

File tree

2 files changed

+12
-22
lines changed

2 files changed

+12
-22
lines changed

src/wmtk/autogen/tet_mesh/get_tuple_from_simplex_local_id.hpp

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,11 @@
77
#endif
88

99
namespace wmtk::autogen::tet_mesh {
10-
/*
11-
namespace {
12-
template <size_t Dim>
13-
inline Tuple get_tuple_from_simplex_local_id_T(int8_t local_id, int64_t global_id)
14-
{
15-
const auto& arr = autogen::tet_mesh::auto_3d_table_complete_edge[local_id];
16-
assert(arr[Dim] == local_id);
17-
const auto& [lvid, leid, lfid] = arr;
18-
19-
20-
if (lvid < 0 || leid < 0 || lfid < 0) {
21-
throw std::runtime_error("tuple_from_id failed");
22-
}
23-
Tuple tuple = Tuple(lvid, leid, lfid, global_id);
24-
// accessor as parameter
25-
assert(is_ccw(tuple)); // is_ccw also checks for validity
26-
return tuple;
27-
}
28-
} // namespace
29-
*/
3010

3111
inline Tuple get_tuple_from_simplex_local_vertex_id(int8_t local_id, int64_t global_id)
3212
{
13+
assert(local_id >= 0);
14+
assert(local_id < 4);
3315
const auto& arr = autogen::tet_mesh::auto_3d_table_complete_vertex[local_id];
3416
const auto& [lvid, leid, lfid] = arr;
3517
assert(lvid == local_id);
@@ -45,6 +27,8 @@ inline Tuple get_tuple_from_simplex_local_vertex_id(int8_t local_id, int64_t glo
4527
}
4628
inline Tuple get_tuple_from_simplex_local_edge_id(int8_t local_id, int64_t global_id)
4729
{
30+
assert(local_id >= 0);
31+
assert(local_id < 6);
4832
const auto& arr = autogen::tet_mesh::auto_3d_table_complete_edge[local_id];
4933
const auto& [lvid, leid, lfid] = arr;
5034
assert(leid == local_id);
@@ -60,6 +44,8 @@ inline Tuple get_tuple_from_simplex_local_edge_id(int8_t local_id, int64_t globa
6044
}
6145
inline Tuple get_tuple_from_simplex_local_face_id(int8_t local_id, int64_t global_id)
6246
{
47+
assert(local_id >= 0);
48+
assert(local_id < 4);
6349
const auto& arr = autogen::tet_mesh::auto_3d_table_complete_face[local_id];
6450
const auto& [lvid, leid, lfid] = arr;
6551
assert(lfid == local_id);
@@ -73,8 +59,7 @@ inline Tuple get_tuple_from_simplex_local_face_id(int8_t local_id, int64_t globa
7359
assert(is_ccw(tuple)); // is_ccw also checks for validity
7460
return tuple;
7561
}
76-
inline Tuple
77-
get_tuple_from_simplex_local_id(PrimitiveType pt, int8_t local_id, int64_t global_fid)
62+
inline Tuple get_tuple_from_simplex_local_id(PrimitiveType pt, int8_t local_id, int64_t global_fid)
7863
{
7964
switch (pt) {
8065
case PrimitiveType::Vertex: return get_tuple_from_simplex_local_vertex_id(local_id, global_fid);

src/wmtk/autogen/tri_mesh/get_tuple_from_simplex_local_id.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
namespace wmtk::autogen::tri_mesh {
1010
inline Tuple get_tuple_from_simplex_local_vertex_id(int8_t local_id, int64_t global_fid) {
1111

12+
assert(local_id >= 0);
13+
assert(local_id < 3);
14+
1215
assert(autogen::tri_mesh::auto_2d_table_complete_vertex[local_id][0] == local_id);
1316
const int64_t leid = autogen::tri_mesh::auto_2d_table_complete_vertex[local_id][1];
1417
Tuple v_tuple = Tuple(local_id, leid, -1, global_fid);
@@ -17,6 +20,8 @@ namespace wmtk::autogen::tri_mesh {
1720
return v_tuple;
1821
}
1922
inline Tuple get_tuple_from_simplex_local_edge_id(int8_t local_id, int64_t global_fid) {
23+
assert(local_id >= 0);
24+
assert(local_id < 3);
2025
assert(autogen::tri_mesh::auto_2d_table_complete_edge[local_id][1] == local_id);
2126
const int64_t lvid = autogen::tri_mesh::auto_2d_table_complete_edge[local_id][0];
2227

0 commit comments

Comments
 (0)