diff --git a/src/mesh/Connectivity1D.hpp b/src/mesh/Connectivity1D.hpp index 9b9e11842ed2871d81add5fc2777ac3a52e01cb9..cc05b3f8ea3608dd753960d3e3cfcfae325417dc 100644 --- a/src/mesh/Connectivity1D.hpp +++ b/src/mesh/Connectivity1D.hpp @@ -31,8 +31,6 @@ private: Kokkos::View<double*> m_inv_cell_nb_nodes; - size_t m_max_nb_node_per_cell; - std::vector<std::vector<unsigned int>> _buildConnectivity(const size_t& number_of_cells) { @@ -70,11 +68,6 @@ public: return m_cell_to_node_matrix.numRows(); } - const size_t& maxNbNodePerCell() const - { - return m_max_nb_node_per_cell; - } - const Kokkos::View<const double*> invCellNbNodes() const { return m_inv_cell_nb_nodes; @@ -122,7 +115,6 @@ public: ConnectivityUtils utils; utils.computeNodeCellConnectivity(m_cell_to_node_matrix, - m_max_nb_node_per_cell, m_node_to_cell_matrix, m_node_to_cell_local_node_matrix); } diff --git a/src/mesh/Connectivity2D.hpp b/src/mesh/Connectivity2D.hpp index 99d313fd15b0d4164a1bfc75b0bd919d23867b3c..2714379f57b65521ce778b8d44fabbefe4e66084 100644 --- a/src/mesh/Connectivity2D.hpp +++ b/src/mesh/Connectivity2D.hpp @@ -42,8 +42,6 @@ class Connectivity2D Kokkos::View<unsigned short**> m_face_cell_local_face; Kokkos::View<unsigned short**> m_face_node_local_face; - size_t m_max_nb_node_per_cell; - struct Face { const unsigned int m_node0_id; @@ -125,20 +123,20 @@ class Connectivity2D = Kokkos::create_staticcrsgraph<ConnectivityMatrix>("face_to_cell_matrix", face_to_cell_vector); } - Kokkos::View<unsigned short**> face_cell_local_face("face_cell_local_face", - face_cells_map.size(), m_max_nb_node_per_cell); - { - int l=0; - for (const auto& face_cells_vector : face_cells_map) { - const auto& cells_vector = face_cells_vector.second; - for (unsigned short lj=0; lj<cells_vector.size(); ++lj) { - unsigned short cell_local_face = cells_vector[lj].second; - face_cell_local_face(l,lj) = cell_local_face; - } - ++l; - } - } - m_face_cell_local_face = face_cell_local_face; + // Kokkos::View<unsigned short**> face_cell_local_face("face_cell_local_face", + // face_cells_map.size(), m_max_nb_node_per_cell); + // { + // int l=0; + // for (const auto& face_cells_vector : face_cells_map) { + // const auto& cells_vector = face_cells_vector.second; + // for (unsigned short lj=0; lj<cells_vector.size(); ++lj) { + // unsigned short cell_local_face = cells_vector[lj].second; + // face_cell_local_face(l,lj) = cell_local_face; + // } + // ++l; + // } + // } + // m_face_cell_local_face = face_cell_local_face; } public: @@ -190,20 +188,15 @@ class Connectivity2D return m_cell_to_node_matrix.numRows(); } - const size_t& maxNbNodePerCell() const - { - return m_max_nb_node_per_cell; - } - const Kokkos::View<const double*> invCellNbNodes() const { return m_inv_cell_nb_nodes; } - const Kokkos::View<const unsigned short**> faceCellLocalFace() const - { - return m_face_cell_local_face; - } + // const Kokkos::View<const unsigned short**> faceCellLocalFace() const + // { + // return m_face_cell_local_face; + // } unsigned int getFaceNumber(const unsigned int node0_id, const unsigned int node1_id) const @@ -260,7 +253,6 @@ class Connectivity2D ConnectivityUtils utils; utils.computeNodeCellConnectivity(m_cell_to_node_matrix, - m_max_nb_node_per_cell, m_node_to_cell_matrix, m_node_to_cell_local_node_matrix); diff --git a/src/mesh/Connectivity3D.hpp b/src/mesh/Connectivity3D.hpp index 9e6afd7b279de1c88b659e80493d02415344c5a9..e57d9234a77f9a75e1e580ca672cc1a3946ddcf7 100644 --- a/src/mesh/Connectivity3D.hpp +++ b/src/mesh/Connectivity3D.hpp @@ -35,6 +35,7 @@ public: ConnectivityMatrixShort m_node_to_cell_local_node_matrix; // Stores numbering of nodes of each cell. + // gives an id to each node of each cell. (j,r) -> id // // This is different from m_cell_to_node_matrix which return the global id of // a local node in a cell @@ -49,10 +50,6 @@ private: Kokkos::View<const unsigned short*> m_node_nb_faces; Kokkos::View<const unsigned int**> m_node_faces; - size_t m_max_nb_node_per_cell; - size_t m_max_nb_face_per_cell; - size_t m_max_nb_node_per_face; - class Face { public: @@ -255,8 +252,6 @@ private: } } } - std::cerr << __FILE__ << ':' << __LINE__ << ':' - << rang::fg::red << " m_max_nb_node_per_face forced to 4" << rang::fg::reset << '\n'; { std::vector<std::vector<unsigned int>> face_to_node_vector(face_cells_map.size()); @@ -270,7 +265,6 @@ private: = Kokkos::create_staticcrsgraph<ConnectivityMatrix>("face_to_node_matrix", face_to_node_vector); } - m_max_nb_node_per_face = 4; { int l=0; for (const auto& face_cells_vector : face_cells_map) { @@ -335,10 +329,6 @@ private: = Kokkos::create_staticcrsgraph<ConnectivityMatrix>("cell_to_face_matrix", cell_to_face_vector); } - std::cerr << __FILE__ << ':' << __LINE__ << ':' - << rang::fg::red << " m_max_nb_face_per_cell forced to 6" << rang::fg::reset << '\n'; - m_max_nb_face_per_cell = 6; - { std::vector<std::vector<unsigned short>> cell_to_face_is_reversed_vector(this->numberOfCells()); for (size_t j=0; j<cell_to_face_is_reversed_vector.size(); ++j) { @@ -435,21 +425,6 @@ private: return m_cell_to_node_matrix.numRows(); } - const size_t& maxNbFacePerCell() const - { - return m_max_nb_face_per_cell; - } - - const size_t& maxNbNodePerCell() const - { - return m_max_nb_node_per_cell; - } - - const size_t& maxNbNodePerFace() const - { - return m_max_nb_node_per_face; - } - const Kokkos::View<const double*> invCellNbNodes() const { return m_inv_cell_nb_nodes; @@ -503,7 +478,6 @@ private: ConnectivityUtils utils; utils.computeNodeCellConnectivity(m_cell_to_node_matrix, - m_max_nb_node_per_cell, m_node_to_cell_matrix, m_node_to_cell_local_node_matrix); diff --git a/src/mesh/ConnectivityUtils.hpp b/src/mesh/ConnectivityUtils.hpp index f99e2b176da7d2c35136891d3a1ff0294373931b..d6e4b752723aca0c27d3b80508bcfeb62a09d902 100644 --- a/src/mesh/ConnectivityUtils.hpp +++ b/src/mesh/ConnectivityUtils.hpp @@ -13,19 +13,11 @@ class ConnectivityUtils { public: void computeNodeCellConnectivity(const ConnectivityMatrix& cell_to_node_matrix, - size_t& max_nb_node_per_cell, ConnectivityMatrix& node_to_cell_matrix, ConnectivityMatrixShort& node_to_cell_local_node_matrix) { std::map<unsigned int, std::vector<unsigned int>> node_cells_map; const size_t& number_of_cells = cell_to_node_matrix.numRows(); - using namespace Kokkos::Experimental; - Kokkos::parallel_reduce(number_of_cells, KOKKOS_LAMBDA(const int& j, size_t& nb_max) { - const auto& cell_nodes = cell_to_node_matrix.rowConst(j); - - const size_t n = cell_nodes.length; - if (n > nb_max) nb_max = n; - }, Kokkos::Max<size_t>(max_nb_node_per_cell)); for (unsigned int j=0; j<number_of_cells; ++j) { const auto& cell_nodes = cell_to_node_matrix.rowConst(j); diff --git a/src/mesh/MeshData.hpp b/src/mesh/MeshData.hpp index 5e0aa268f2d75ecf16ee8f119bc646e4b17aa114..6b600e4aa4fdf8be1e18a4ff0b46a4f809f29a34 100644 --- a/src/mesh/MeshData.hpp +++ b/src/mesh/MeshData.hpp @@ -101,7 +101,8 @@ private: } else if (dimension ==3) { const Kokkos::View<const Rd*> xr = m_mesh.xr(); - Kokkos::View<Rd**> Nlr("Nlr", m_mesh.connectivity().numberOfFaces(), m_mesh.connectivity().maxNbNodePerFace()); +#warning Rewrite using better data structures and remove this explicit 4 + Kokkos::View<Rd**> Nlr("Nlr", m_mesh.connectivity().numberOfFaces(), 4); Kokkos::parallel_for(m_mesh.numberOfFaces(), KOKKOS_LAMBDA(const int& l) { const auto& face_nodes = m_mesh.connectivity().m_face_to_node_matrix.rowConst(l);