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

Replace NodeByCellData::value function by NodeByCellData::operator[]

Allow to access to the vector values directly (not using connectivity)
parent e43bafa5
Branches
Tags
1 merge request!6Feature/crs
...@@ -90,12 +90,12 @@ private: ...@@ -90,12 +90,12 @@ private:
const NodeByCellData<Rd>& Cjr = m_Cjr; const NodeByCellData<Rd>& Cjr = m_Cjr;
Kokkos::parallel_for(m_Cjr.numberOfValues(), KOKKOS_LAMBDA(const int& j){ 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; const NodeByCellData<double>& ljr = m_ljr;
Kokkos::parallel_for(m_Cjr.numberOfValues(), KOKKOS_LAMBDA(const int& j){ 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) { } else if (dimension ==3) {
...@@ -151,12 +151,12 @@ private: ...@@ -151,12 +151,12 @@ private:
const NodeByCellData<Rd>& Cjr = m_Cjr; const NodeByCellData<Rd>& Cjr = m_Cjr;
Kokkos::parallel_for(m_Cjr.numberOfValues(), KOKKOS_LAMBDA(const int& j){ 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; const NodeByCellData<double>& ljr = m_ljr;
Kokkos::parallel_for(m_Cjr.numberOfValues(), KOKKOS_LAMBDA(const int& j){ 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"); static_assert((dimension<=3), "only 1d, 2d and 3d are implemented");
......
...@@ -30,7 +30,7 @@ class NodeByCellData ...@@ -30,7 +30,7 @@ class NodeByCellData
return m_sub_values[i]; return m_sub_values[i];
} }
KOKKOS_INLINE_FUNCTION KOKKOS_FORCEINLINE_FUNCTION
DataType& operator[](const size_t& i) DataType& operator[](const size_t& i)
{ {
Assert(i<m_size); Assert(i<m_size);
...@@ -66,7 +66,7 @@ class NodeByCellData ...@@ -66,7 +66,7 @@ class NodeByCellData
KOKKOS_RESTRICT const DataType* const m_sub_values; KOKKOS_RESTRICT const DataType* const m_sub_values;
const size_t m_size; const size_t m_size;
public: public:
KOKKOS_INLINE_FUNCTION KOKKOS_FORCEINLINE_FUNCTION
const DataType& operator[](const size_t& i) const const DataType& operator[](const size_t& i) const
{ {
Assert(i<m_size); Assert(i<m_size);
...@@ -98,13 +98,13 @@ class NodeByCellData ...@@ -98,13 +98,13 @@ class NodeByCellData
NodeByCellData& operator=(const NodeByCellData&) = default; NodeByCellData& operator=(const NodeByCellData&) = default;
KOKKOS_INLINE_FUNCTION KOKKOS_FORCEINLINE_FUNCTION
DataType& operator()(const size_t& j, const size_t& r) DataType& operator()(const size_t& j, const size_t& r)
{ {
return m_values[m_node_id_per_cell_matrix.row_map[j]+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 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]; return m_values[m_node_id_per_cell_matrix.row_map[j]+r];
...@@ -116,14 +116,14 @@ class NodeByCellData ...@@ -116,14 +116,14 @@ class NodeByCellData
return m_values.extent(0); return m_values.extent(0);
} }
KOKKOS_INLINE_FUNCTION KOKKOS_FORCEINLINE_FUNCTION
DataType& value(const size_t& i) DataType& operator[](const size_t& i)
{ {
return m_values[i]; return m_values[i];
} }
KOKKOS_INLINE_FUNCTION KOKKOS_FORCEINLINE_FUNCTION
const DataType& value(const size_t & i) const const DataType& operator[](const size_t & i) const
{ {
return m_values[i]; return m_values[i];
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment