diff --git a/src/mesh/ItemToItemMatrix.hpp b/src/mesh/ItemToItemMatrix.hpp index d03ee9e0caccef03a89ca4ed001ede3c73bebcd6..20f57dc33ed1ce4840b6f152b61ea7a6b47a63e4 100644 --- a/src/mesh/ItemToItemMatrix.hpp +++ b/src/mesh/ItemToItemMatrix.hpp @@ -60,6 +60,15 @@ class ItemToItemMatrix return SubItemList<RowType>(m_connectivity_matrix.rowConst(source_id)); } + template <typename IndexType> + const auto operator[](const IndexType& source_id) const + { + static_assert(std::is_same<IndexType, SourceItemId>(), + "ItemToItemMatrix must be indexed using correct ItemId"); + using RowType = decltype(m_connectivity_matrix.rowConst(source_id)); + return SubItemList<RowType>(m_connectivity_matrix.rowConst(source_id)); + } + ItemToItemMatrix(const ConnectivityMatrix& connectivity_matrix) : m_connectivity_matrix{connectivity_matrix} { diff --git a/src/mesh/MeshNodeBoundary.hpp b/src/mesh/MeshNodeBoundary.hpp index fe84d78602b5c6f798c341ecdcc087da41d01cdf..0a4b9ec63ff74b71e25342144871c34e3236c163 100644 --- a/src/mesh/MeshNodeBoundary.hpp +++ b/src/mesh/MeshNodeBoundary.hpp @@ -52,7 +52,7 @@ class MeshNodeBoundary = mesh.connectivity().faceToNodeMatrix(); for (size_t l=0; l<face_list.size(); ++l) { - const size_t face_number = face_list[l]; + const FaceId face_number = face_list[l]; const auto& face_nodes = face_to_node_matrix[face_number]; for (size_t r=0; r<face_nodes.size(); ++r) {