48 template <
typename VectorType>
59 template <
typename VectorType>
70 template <
typename VectorType>
71 inline typename VectorType::value_type
80#ifdef DEAL_II_WITH_TRILINOS
93 vector[0][trilinos_i] +=
value;
110 vector[0][trilinos_i] =
value;
124 return vector[0][trilinos_i];
129# ifdef DEAL_II_TRILINOS_WITH_TPETRA
130 template <
typename NumberType,
typename MemorySpace>
132 LinearAlgebra::TpetraWrappers::Vector<NumberType, MemorySpace>>
153 template <
typename NumberType,
typename MemorySpace>
157 add(
const typename VectorType::value_type
value,
164 vector.getMap()->getLocalElement(
167# if DEAL_II_TRILINOS_VERSION_GTE(13, 2, 0)
168 auto vector_2d = vector.template getLocalView<Kokkos::HostSpace>(
169 Tpetra::Access::ReadWrite);
171 vector.template sync<Kokkos::HostSpace>();
172 auto vector_2d = vector.template getLocalView<Kokkos::HostSpace>();
174 auto vector_1d = Kokkos::subview(vector_2d, Kokkos::ALL(), 0);
175# if !DEAL_II_TRILINOS_VERSION_GTE(13, 2, 0)
177 vector.template modify<Kokkos::HostSpace>();
179 vector_1d(trilinos_i) +=
value;
180# if !DEAL_II_TRILINOS_VERSION_GTE(13, 2, 0)
181 vector.template sync<
182 typename Tpetra::Vector<NumberType, int, types::signed_global_dof_index>::
183 device_type::memory_space>();
189 template <
typename NumberType,
typename MemorySpace>
193 set(
const typename VectorType::value_type
value,
200 vector.getMap()->getLocalElement(
203# if DEAL_II_TRILINOS_VERSION_GTE(13, 2, 0)
204 auto vector_2d = vector.template getLocalView<Kokkos::HostSpace>(
205 Tpetra::Access::ReadWrite);
207 vector.template sync<Kokkos::HostSpace>();
208 auto vector_2d = vector.template getLocalView<Kokkos::HostSpace>();
210 auto vector_1d = Kokkos::subview(vector_2d, Kokkos::ALL(), 0);
212# if !DEAL_II_TRILINOS_VERSION_GTE(13, 2, 0)
213 vector.template modify<Kokkos::HostSpace>();
215 vector_1d(trilinos_i) =
value;
216# if !DEAL_II_TRILINOS_VERSION_GTE(13, 2, 0)
217 vector.template sync<
218 typename Tpetra::Vector<NumberType, int, types::signed_global_dof_index>::
219 device_type::memory_space>();
225 template <
typename NumberType,
typename MemorySpace>
226 inline typename LinearAlgebra::TpetraWrappers::Vector<
NumberType,
227 MemorySpace>::value_type
229 LinearAlgebra::TpetraWrappers::Vector<NumberType, MemorySpace>>::
230 get(
const LinearAlgebra::TpetraWrappers::Vector<NumberType, MemorySpace> &V,
234# if DEAL_II_TRILINOS_VERSION_GTE(13, 2, 0)
237 vector.template getLocalView<Kokkos::HostSpace>(Tpetra::Access::ReadOnly);
240 vector.template sync<Kokkos::HostSpace>();
241 auto vector_2d = vector.template getLocalView<Kokkos::HostSpace>();
243 auto vector_1d = Kokkos::subview(vector_2d, Kokkos::ALL(), 0);
245 vector.getMap()->getLocalElement(
247 return vector_1d(trilinos_i);