Skip to content
Snippets Groups Projects
Commit 111ad07b authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Few clean-up in Face subclass

parent 2030346a
Branches
Tags
No related merge requests found
......@@ -53,9 +53,24 @@ private:
size_t m_max_nb_face_per_cell;
size_t m_max_nb_node_per_face;
struct Face
class Face
{
bool reversed = false;
private:
std::vector<unsigned int> m_node_id_list;
bool m_reversed;
public:
KOKKOS_INLINE_FUNCTION
const bool& reversed() const
{
return m_reversed;
}
KOKKOS_INLINE_FUNCTION
const std::vector<unsigned int>& nodeIdList() const
{
return m_node_id_list;
}
KOKKOS_INLINE_FUNCTION
std::vector<unsigned int> _sort(const std::vector<unsigned int>& node_list)
......@@ -68,7 +83,7 @@ private:
for (size_t i=0; i<node_list.size(); ++i) {
const size_t reverse_shift = node_list.size()-shift;
rotated_node_list[(reverse_shift+node_list.size()-i)%node_list.size()] = node_list[i];
reversed = true;
m_reversed = true;
}
} else {
for (size_t i=0; i<node_list.size(); ++i) {
......@@ -79,8 +94,6 @@ private:
return rotated_node_list;
}
std::vector<unsigned int> m_node_id_list;
KOKKOS_INLINE_FUNCTION
bool operator<(const Face& f) const
{
......@@ -106,11 +119,15 @@ private:
KOKKOS_INLINE_FUNCTION
Face(const std::vector<unsigned int>& given_node_id_list)
: m_node_id_list(_sort(given_node_id_list))
: m_node_id_list(_sort(given_node_id_list)),
m_reversed(false)
{
;
}
KOKKOS_INLINE_FUNCTION
Face() = delete;
KOKKOS_INLINE_FUNCTION
~Face() = default;
};
......@@ -136,42 +153,42 @@ private:
m_cell_nodes(j,1),
m_cell_nodes(j,2),
m_cell_nodes(j,3)});
face_cells_map[f0].push_back(std::make_tuple(j, 0, f0.reversed));
face_cells_map[f0].push_back(std::make_tuple(j, 0, f0.reversed()));
// face 1
Face f1({m_cell_nodes(j,4),
m_cell_nodes(j,7),
m_cell_nodes(j,6),
m_cell_nodes(j,5)});
face_cells_map[f1].push_back(std::make_tuple(j, 1, f1.reversed));
face_cells_map[f1].push_back(std::make_tuple(j, 1, f1.reversed()));
// face 2
Face f2({m_cell_nodes(j,0),
m_cell_nodes(j,3),
m_cell_nodes(j,7),
m_cell_nodes(j,4)});
face_cells_map[f2].push_back(std::make_tuple(j, 2, f2.reversed));
face_cells_map[f2].push_back(std::make_tuple(j, 2, f2.reversed()));
// face 3
Face f3({m_cell_nodes(j,1),
m_cell_nodes(j,5),
m_cell_nodes(j,6),
m_cell_nodes(j,2)});
face_cells_map[f3].push_back(std::make_tuple(j, 3, f3.reversed));
face_cells_map[f3].push_back(std::make_tuple(j, 3, f3.reversed()));
// face 4
Face f4({m_cell_nodes(j,0),
m_cell_nodes(j,4),
m_cell_nodes(j,5),
m_cell_nodes(j,1)});
face_cells_map[f4].push_back(std::make_tuple(j, 4, f4.reversed));
face_cells_map[f4].push_back(std::make_tuple(j, 4, f4.reversed()));
// face 5
Face f5({m_cell_nodes(j,3),
m_cell_nodes(j,2),
m_cell_nodes(j,6),
m_cell_nodes(j,7)});
face_cells_map[f5].push_back(std::make_tuple(j, 5, f5.reversed));
face_cells_map[f5].push_back(std::make_tuple(j, 5, f5.reversed()));
cell_nb_faces[j] = 6;
break;
......@@ -202,8 +219,8 @@ private:
int l=0;
for (const auto& face_cells_vector : face_cells_map) {
const Face& face = face_cells_vector.first;
for(size_t r=0; r<face.m_node_id_list.size(); ++r) {
face_nodes(l,r) = face.m_node_id_list[r];
for(size_t r=0; r<face.nodeIdList().size(); ++r) {
face_nodes(l,r) = face.nodeIdList()[r];
}
++l;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment