13#ifndef dealii_vector_element_access_h
14#define dealii_vector_element_access_h
27 template <
typename VectorType>
32 add(
const typename VectorType::value_type
value,
37 set(
typename VectorType::value_type
value,
41 static typename VectorType::value_type
47 template <
typename VectorType>
58 template <
typename VectorType>
69 template <
typename VectorType>
70 inline typename VectorType::value_type
78#ifdef DEAL_II_TRILINOS_WITH_EPETRA
87 Epetra_FEVector &vector = V.trilinos_vector();
91 vector[0][trilinos_i] +=
value;
104 Epetra_FEVector &vector = V.trilinos_vector();
108 vector[0][trilinos_i] =
value;
118 const Epetra_FEVector &vector = V.trilinos_vector();
122 return vector[0][trilinos_i];
128#ifdef DEAL_II_TRILINOS_WITH_TPETRA
129 template <
typename NumberType,
typename MemorySpace>
131 LinearAlgebra::TpetraWrappers::Vector<NumberType, MemorySpace>>
153 template <
typename NumberType,
typename MemorySpace>
157 add(
const typename VectorType::value_type
value,
162 auto vector = V.trilinos_vector();
164 vector.getMap()->getLocalElement(
167 auto vector_2d = vector.template getLocalView<Kokkos::HostSpace>(
168 Tpetra::Access::ReadWriteStruct{});
169 auto vector_1d = Kokkos::subview(vector_2d, Kokkos::ALL(), 0);
170 vector_1d(trilinos_i) +=
value;
175 template <
typename NumberType,
typename MemorySpace>
179 set(
const typename VectorType::value_type
value,
184 auto vector =
V.trilinos_vector();
186 vector.getMap()->getLocalElement(
189 auto vector_2d = vector.template getLocalView<Kokkos::HostSpace>(
190 Tpetra::Access::ReadWriteStruct{});
191 auto vector_1d = Kokkos::subview(vector_2d, Kokkos::ALL(), 0);
193 vector_1d(trilinos_i) =
value;
198 template <
typename NumberType,
typename MemorySpace>
207 const auto &vector =
V.trilinos_vector();
208 auto vector_2d = vector.template getLocalView<Kokkos::HostSpace>(
209 Tpetra::Access::ReadOnlyStruct{});
210 auto vector_1d = Kokkos::subview(vector_2d, Kokkos::ALL(), 0);
212 vector.getMap()->getLocalElement(
214 return vector_1d(trilinos_i);
* x_component_mask set(0, true)
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
static VectorType::value_type get(const VectorType &V, const types::global_dof_index i)
static void set(typename VectorType::value_type value, const types::global_dof_index i, VectorType &V)
static void add(const typename VectorType::value_type value, const types::global_dof_index i, VectorType &V)
static VectorType::value_type get(const VectorType &V, const types::global_dof_index i)
static void set(typename VectorType::value_type value, const types::global_dof_index i, VectorType &V)
static void add(const typename VectorType::value_type value, const types::global_dof_index i, VectorType &V)