73 class MultiVecAdapter<Kokkos::View<Scalar**, Kokkos::LayoutLeft, ExecutionSpace> >
77 typedef Tpetra::Map<>::node_type node_t;
78 typedef Kokkos::View<Scalar**,Kokkos::LayoutLeft, ExecutionSpace> multivec_t;
79 typedef int local_ordinal_t;
80 typedef Tpetra::Map<>::global_ordinal_type global_ordinal_t;
81 typedef size_t global_size_t;
82 typedef Scalar scalar_t;
84 typedef Kokkos::View<scalar_t**, Kokkos::LayoutLeft, ExecutionSpace> kokkos_view_t;
86 friend Teuchos::RCP<MultiVecAdapter<multivec_t> > createMultiVecAdapter<> (Teuchos::RCP<multivec_t>);
87 friend Teuchos::RCP<const MultiVecAdapter<multivec_t> > createConstMultiVecAdapter<> (Teuchos::RCP<const multivec_t>);
89 static const char* name;
115 if(getComm()->getSize() == 1){
121 bool isGloballyIndexed()
const;
123 Teuchos::RCP<
const Tpetra::Map<
129 return Teuchos::null;
133 Teuchos::RCP<const Teuchos::Comm<int> >
getComm()
const
135 return Tpetra::getDefaultComm();
141 return mv_->extent(0);
148 return mv_->extent(1);
155 return mv_->extent(0);
162 return mv_->extent(1);
169 return mv_->getStride();
176 return mv_->isConstantStride();
180 Scalar * getMVPointer_impl()
const;
183 Teuchos::RCP<multivec_t> clone()
const;
214 get1dCopy (
const Teuchos::ArrayView<scalar_t>& av,
217 const Tpetra::Map<local_ordinal_t,
219 node_t> > distribution_map,
222 template<
typename KV>
224 get1dCopy_kokkos_view (
bool bInitialize, KV& kokkos_view,
227 const Tpetra::Map<local_ordinal_t,
229 node_t> > distribution_map,
232 deep_copy_or_assign_view(bInitialize, kokkos_view, *mv_, bAssigned);
249 Teuchos::ArrayRCP<scalar_t> get1dViewNonConst (
bool local =
false);
261 put1dData (
const Teuchos::ArrayView<const scalar_t>& new_data,
264 const Tpetra::Map<local_ordinal_t,
266 node_t> > distribution_map,
269 template<
typename KV>
271 put1dData_kokkos_view (KV& kokkos_new_data,
274 const Tpetra::Map<local_ordinal_t,
276 node_t> > distribution_map,
278 deep_copy_or_assign_view(*mv_, kokkos_new_data);
283 std::string description ()
const;
287 describe (Teuchos::FancyOStream& os,
288 const Teuchos::EVerbosityLevel verbLevel =
289 Teuchos::Describable::verbLevel_default)
const;
294 Teuchos::RCP<multivec_t>
mv_;
297 typedef Tpetra::Export<local_ordinal_t, global_ordinal_t, node_t>
export_type;
300 typedef Tpetra::Import<local_ordinal_t, global_ordinal_t, node_t>
import_type;