46 #ifndef XPETRA_TPETRAVECTOR_DECL_HPP
47 #define XPETRA_TPETRAVECTOR_DECL_HPP
53 #include "Xpetra_TpetraMultiVector.hpp"
55 #include "Xpetra_TpetraMap.hpp"
58 #include "Tpetra_Vector.hpp"
63 template<
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
64 RCP<Tpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
toTpetra(Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>&);
66 template<
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
67 RCP<Tpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
toTpetra(
const Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>&);
69 template<
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
70 RCP<const Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
toXpetra(RCP<
const Tpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>> vec);
72 template<
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
73 RCP<Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
toXpetra(RCP<Tpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>> vec);
78 template<
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node = KokkosClassic::DefaultNode::DefaultNodeType>
80 :
public virtual Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
157 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
173 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
177 typename dual_view_type::t_host_um getHostLocalView()
const;
179 typename dual_view_type::t_dev_um getDeviceLocalView()
const;
191 template<
class TargetDeviceType>
192 typename Kokkos::Impl::if_c<
193 Kokkos::Impl::is_same<typename dual_view_type::t_dev_um::execution_space::memory_space, typename TargetDeviceType::memory_space>::value,
194 typename dual_view_type::t_dev_um,
195 typename dual_view_type::t_host_um>::type
196 getLocalView()
const;
205 template<
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
211 return tX.getTpetra_Vector();
214 template<
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
215 RCP<Tpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
220 return tX.getTpetra_Vector();
223 template<
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
224 RCP<Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
225 toXpetra(
RCP<Tpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>> vec)
230 return Teuchos::null;
233 template<
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
234 RCP<const Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
235 toXpetra(
RCP<
const Tpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>> vec)
238 return toXpetra(Teuchos::rcp_const_cast<Tpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>(vec));
243 #define XPETRA_TPETRAVECTOR_SHORT
244 #endif // XPETRA_TPETRAVECTOR_DECL_HPP