From 6c086f9e7c729ec27baf34544646382e6cd5d8fb Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Wed, 18 Jul 2018 11:28:22 +0200 Subject: [PATCH] Replace NodeByCellData::value function by NodeByCellData::operator[] Allow to access to the vector values directly (not using connectivity) --- src/mesh/MeshData.hpp | 8 ++++---- src/scheme/NodeByCellData.hpp | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/mesh/MeshData.hpp b/src/mesh/MeshData.hpp index 56d98058c..5e0aa268f 100644 --- a/src/mesh/MeshData.hpp +++ b/src/mesh/MeshData.hpp @@ -90,12 +90,12 @@ private: const NodeByCellData<Rd>& Cjr = m_Cjr; Kokkos::parallel_for(m_Cjr.numberOfValues(), KOKKOS_LAMBDA(const int& j){ - m_ljr.value(j) = l2Norm(Cjr.value(j)); + m_ljr[j] = l2Norm(Cjr[j]); }); const NodeByCellData<double>& ljr = m_ljr; Kokkos::parallel_for(m_Cjr.numberOfValues(), KOKKOS_LAMBDA(const int& j){ - m_njr.value(j) = (1./ljr.value(j))*Cjr.value(j); + m_njr[j] = (1./ljr[j])*Cjr[j]; }); } else if (dimension ==3) { @@ -151,12 +151,12 @@ private: const NodeByCellData<Rd>& Cjr = m_Cjr; Kokkos::parallel_for(m_Cjr.numberOfValues(), KOKKOS_LAMBDA(const int& j){ - m_ljr.value(j) = l2Norm(Cjr.value(j)); + m_ljr[j] = l2Norm(Cjr[j]); }); const NodeByCellData<double>& ljr = m_ljr; Kokkos::parallel_for(m_Cjr.numberOfValues(), KOKKOS_LAMBDA(const int& j){ - m_njr.value(j) = (1./ljr.value(j))*Cjr.value(j); + m_njr[j] = (1./ljr[j])*Cjr[j]; }); } static_assert((dimension<=3), "only 1d, 2d and 3d are implemented"); diff --git a/src/scheme/NodeByCellData.hpp b/src/scheme/NodeByCellData.hpp index 4659ec148..fd99cdcff 100644 --- a/src/scheme/NodeByCellData.hpp +++ b/src/scheme/NodeByCellData.hpp @@ -30,7 +30,7 @@ class NodeByCellData return m_sub_values[i]; } - KOKKOS_INLINE_FUNCTION + KOKKOS_FORCEINLINE_FUNCTION DataType& operator[](const size_t& i) { Assert(i<m_size); @@ -66,7 +66,7 @@ class NodeByCellData KOKKOS_RESTRICT const DataType* const m_sub_values; const size_t m_size; public: - KOKKOS_INLINE_FUNCTION + KOKKOS_FORCEINLINE_FUNCTION const DataType& operator[](const size_t& i) const { Assert(i<m_size); @@ -98,13 +98,13 @@ class NodeByCellData NodeByCellData& operator=(const NodeByCellData&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_FORCEINLINE_FUNCTION DataType& operator()(const size_t& j, const size_t& r) { return m_values[m_node_id_per_cell_matrix.row_map[j]+r]; } - KOKKOS_INLINE_FUNCTION + KOKKOS_FORCEINLINE_FUNCTION const DataType& operator()(const size_t& j, const size_t& r) const { return m_values[m_node_id_per_cell_matrix.row_map[j]+r]; @@ -116,14 +116,14 @@ class NodeByCellData return m_values.extent(0); } - KOKKOS_INLINE_FUNCTION - DataType& value(const size_t& i) + KOKKOS_FORCEINLINE_FUNCTION + DataType& operator[](const size_t& i) { return m_values[i]; } - KOKKOS_INLINE_FUNCTION - const DataType& value(const size_t & i) const + KOKKOS_FORCEINLINE_FUNCTION + const DataType& operator[](const size_t & i) const { return m_values[i]; } -- GitLab