diff --git a/src/mesh/Connectivity.hpp b/src/mesh/Connectivity.hpp index 23a13a78d4ddba33c173a7e4188955373da86dd8..9c304864d89c5f494238ca71b318ee7b674777a6 100644 --- a/src/mesh/Connectivity.hpp +++ b/src/mesh/Connectivity.hpp @@ -30,8 +30,7 @@ #include <RefId.hpp> #include <ItemType.hpp> -#include <RefNodeList.hpp> -#include <RefFaceList.hpp> +#include <RefItemList.hpp> #include <SynchronizerManager.hpp> diff --git a/src/mesh/ConnectivityDispatcher.cpp b/src/mesh/ConnectivityDispatcher.cpp index 08fea56bfd2d023b0defffa79a0ed3aeb34d3723..6dcf3177c0d1d477e41ca85c66e7c6f71d0ec334 100644 --- a/src/mesh/ConnectivityDispatcher.cpp +++ b/src/mesh/ConnectivityDispatcher.cpp @@ -516,7 +516,7 @@ ConnectivityDispatcher<Dimension>::_buildItemReferenceList() block_type ref_bit{1<<i}; auto item_ref_list = m_connectivity.refFaceList(i_ref); - const auto& item_list = item_ref_list.faceList(); + const auto& item_list = item_ref_list.list(); for (size_t i_item=0; i_item<item_list.size(); ++i_item) { const ItemId& item_id = item_list[i_item]; item_references[item_id] |= ref_bit; diff --git a/src/mesh/GmshReader.cpp b/src/mesh/GmshReader.cpp index 662507e905e1958cbfb97ec77d85ff50d1534db8..35743518cc1d8add53d3f2b0f8850a4e3dd0e8b1 100644 --- a/src/mesh/GmshReader.cpp +++ b/src/mesh/GmshReader.cpp @@ -12,7 +12,7 @@ #include <Mesh.hpp> #include <MeshData.hpp> -#include <RefFaceList.hpp> +#include <RefItemList.hpp> #include <Messenger.hpp> #include <ArrayUtils.hpp> diff --git a/src/mesh/MeshNodeBoundary.hpp b/src/mesh/MeshNodeBoundary.hpp index 2f83c82dc3a1c5451d51bcd0b293e7d6090a7d4a..ae31e3240384b9d5d0cc28160cc557603c55b784 100644 --- a/src/mesh/MeshNodeBoundary.hpp +++ b/src/mesh/MeshNodeBoundary.hpp @@ -7,8 +7,7 @@ #include <Kokkos_Vector.hpp> #include <TinyVector.hpp> -#include <RefNodeList.hpp> -#include <RefFaceList.hpp> +#include <RefItemList.hpp> #include <ConnectivityMatrix.hpp> #include <IConnectivity.hpp> @@ -38,7 +37,7 @@ class MeshNodeBoundary const auto& face_to_cell_matrix = mesh.connectivity().faceToCellMatrix(); - const Array<const FaceId>& face_list = ref_face_list.faceList(); + const Array<const FaceId>& face_list = ref_face_list.list(); parallel_for(face_list.size(), PASTIS_LAMBDA(const int& l){ const auto& face_cells = face_to_cell_matrix[face_list[l]]; if (face_cells.size()>1) { @@ -74,7 +73,7 @@ class MeshNodeBoundary template <typename MeshType> MeshNodeBoundary(const MeshType&, const RefNodeList& ref_node_list) - : m_node_list(ref_node_list.nodeList()) + : m_node_list(ref_node_list.list()) { static_assert(Dimension == MeshType::Dimension); } diff --git a/src/mesh/RefFaceList.hpp b/src/mesh/RefFaceList.hpp deleted file mode 100644 index cbc7d3b997983c0bdc03d9513684cde8bd669873..0000000000000000000000000000000000000000 --- a/src/mesh/RefFaceList.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef REF_FACE_LIST_HPP -#define REF_FACE_LIST_HPP - -#include <Array.hpp> -#include <RefId.hpp> - -class RefFaceList -{ - private: - RefId m_ref_id; - Array<const FaceId> m_face_id_list; - - public: - const RefId& refId() const - { - return m_ref_id; - } - - const Array<const FaceId>& faceList() const - { - return m_face_id_list; - } - - RefFaceList(const RefId& ref_id, - const Array<const FaceId>& face_id_list) - : m_ref_id(ref_id), - m_face_id_list(face_id_list) - { - ; - } - - RefFaceList& operator=(const RefFaceList&) = default; - RefFaceList& operator=(RefFaceList&&) = default; - - RefFaceList() = default; - RefFaceList(const RefFaceList&) = default; - ~RefFaceList() = default; -}; - -#endif // REF_FACE_LIST_HPP diff --git a/src/mesh/RefItemList.hpp b/src/mesh/RefItemList.hpp new file mode 100644 index 0000000000000000000000000000000000000000..dea69f7ec79e2ca139eeb9f01600e687f6bea3d4 --- /dev/null +++ b/src/mesh/RefItemList.hpp @@ -0,0 +1,50 @@ +#ifndef REF_ITEM_LIST_HPP +#define REF_ITEM_LIST_HPP + +#include <Array.hpp> +#include <RefId.hpp> +#include <ItemId.hpp> + +template <ItemType item_type> +class RefItemList +{ + public: + using ItemId = ItemIdT<item_type>; + + private: + RefId m_ref_id; + Array<const ItemId> m_item_id_list; + + public: + const RefId& refId() const + { + return m_ref_id; + } + + const Array<const ItemId>& list() const + { + return m_item_id_list; + } + + RefItemList(const RefId& ref_id, + const Array<const ItemId>& item_id_list) + : m_ref_id(ref_id), + m_item_id_list(item_id_list) + { + ; + } + + RefItemList& operator=(const RefItemList&) = default; + RefItemList& operator=(RefItemList&&) = default; + + RefItemList() = default; + RefItemList(const RefItemList&) = default; + ~RefItemList() = default; +}; + +using RefNodeList = RefItemList<ItemType::node>; +using RefEdgeList = RefItemList<ItemType::edge>; +using RefFaceList = RefItemList<ItemType::face>; +using RefCellList = RefItemList<ItemType::cell>; + +#endif // REF_ITEM_LIST_HPP diff --git a/src/mesh/RefNodeList.hpp b/src/mesh/RefNodeList.hpp deleted file mode 100644 index 462d23bb3d35a6384fcd5176d0584419a586abc3..0000000000000000000000000000000000000000 --- a/src/mesh/RefNodeList.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef REF_NODE_LIST_HPP -#define REF_NODE_LIST_HPP - -#include <Array.hpp> -#include <RefId.hpp> - -class RefNodeList -{ - private: - RefId m_ref_id; - Array<const NodeId> m_node_id_list; - - public: - const RefId& refId() const - { - return m_ref_id; - } - - const Array<const NodeId>& nodeList() const - { - return m_node_id_list; - } - - RefNodeList(const RefId& ref_id, - const Array<const NodeId>& node_id_list) - : m_ref_id(ref_id), - m_node_id_list(node_id_list) - { - ; - } - - RefNodeList& operator=(const RefNodeList&) = default; - RefNodeList& operator=(RefNodeList&&) = default; - - RefNodeList() = default; - RefNodeList(const RefNodeList&) = default; - ~RefNodeList() = default; -}; - -#endif // REF_NODE_LIST_HPP diff --git a/src/scheme/BoundaryCondition.hpp b/src/scheme/BoundaryCondition.hpp index 0380f97c021b637a623146cd1be7f18524913e2d..669f546c19faf2e0cf059acef0f90ee2083682a4 100644 --- a/src/scheme/BoundaryCondition.hpp +++ b/src/scheme/BoundaryCondition.hpp @@ -6,7 +6,7 @@ #include <Array.hpp> -#include <RefNodeList.hpp> +#include <RefItemList.hpp> #include <MeshNodeBoundary.hpp> class BoundaryCondition