10#ifndef XPETRA_TPETRAVECTOR_DECL_HPP
11#define XPETRA_TPETRAVECTOR_DECL_HPP
22#include "Tpetra_Vector.hpp"
27template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
30template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
33template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
36template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
42template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
44 :
public virtual Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>,
133template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
136 typedef TpetraVector<Scalar, LocalOrdinal, GlobalOrdinal, Node> TpetraVectorClass;
138 return tX.getTpetra_Vector();
141template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
142RCP<Tpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
144 typedef TpetraVector<Scalar, LocalOrdinal, GlobalOrdinal, Node> TpetraVectorClass;
146 return tX.getTpetra_Vector();
149template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
150RCP<Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
151toXpetra(
RCP<Tpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>> vec) {
153 return rcp(
new TpetraVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>(vec));
155 return Teuchos::null;
158template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
159RCP<const Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
160toXpetra(
RCP<
const Tpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>> vec) {
162 return toXpetra(Teuchos::rcp_const_cast<Tpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>(vec));
165template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
168 return Teuchos::rcp_dynamic_cast<Xpetra::TpetraVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>(X,
true)->getTpetra_Vector();
171template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
174 return Teuchos::rcp_dynamic_cast<const Xpetra::TpetraVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>(X,
true)->getTpetra_Vector();
179#define XPETRA_TPETRAVECTOR_SHORT
#define XPETRA_DYNAMIC_CAST(type, obj, newObj, exceptionMsg)
static const EVerbosityLevel verbLevel_default
TpetraMultiVector(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > > &map, size_t NumVectors, bool zeroOut=true)
void sumIntoLocalValue(LocalOrdinal myRow, const Scalar &value)
Adds specified value to existing value at the specified location.
Scalar dot(const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &a) const
Computes dot product of this Vector against input Vector x.
Teuchos::ScalarTraits< Scalar >::magnitudeType normInf() const
Compute Inf-norm of this Vector.
TpetraVector(const Teuchos::RCP< Tpetra::Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &vec)
TpetraMultiVector constructor to wrap a Tpetra::MultiVector object.
Teuchos::ScalarTraits< Scalar >::magnitudeType norm2() const
Compute 2-norm of this Vector.
void replaceLocalValue(LocalOrdinal myRow, const Scalar &value)
Replace current value at the specified location with specified values.
void replaceGlobalValue(GlobalOrdinal globalRow, const Scalar &value)
Replace current value at the specified location with specified value.
std::string description() const
Return a simple one-line description of this object.
Scalar meanValue() const
Compute mean (average) value of this Vector.
RCP< Tpetra::Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getTpetra_Vector() const
Get the underlying Tpetra multivector.
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
Print the object with some verbosity level to an FancyOStream object.
TpetraVector(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &map, const Teuchos::ArrayView< const Scalar > &A)
Set multi-vector values from an array using Teuchos memory management classes. (copy).
Teuchos::ScalarTraits< Scalar >::magnitudeType norm1() const
Return 1-norm of this Vector.
virtual ~TpetraVector()
Destructor.
TpetraVector(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &map, bool zeroOut=true)
Sets all vector entries to zero.
void sumIntoGlobalValue(GlobalOrdinal globalRow, const Scalar &value)
Adds specified value to existing value at the specified location.
basic_FancyOStream< char > FancyOStream
RCP< const CrsGraph< int, GlobalOrdinal, Node > > toXpetra(const Epetra_CrsGraph &g)
RCP< const Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > toTpetra(const RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > &graph)
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)