Xpetra Version of the Day
Loading...
Searching...
No Matches
Xpetra_TpetraVector_def.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Xpetra: A linear algebra interface package
4//
5// Copyright 2012 NTESS and the Xpetra contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef XPETRA_TPETRAVECTOR_DEF_HPP
11#define XPETRA_TPETRAVECTOR_DEF_HPP
13
14namespace Xpetra {
15
16template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
19 bool zeroOut)
20 : TpetraMultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>(map, 1, zeroOut) {
21}
22
23template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
27 : TpetraMultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>(map, A, map->getLocalNumElements(), 1) {
28}
29
30template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
34
35template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
37 replaceGlobalValue(GlobalOrdinal globalRow, const Scalar& value) {
38 XPETRA_MONITOR("TpetraVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>::replaceGlobalValue");
39 getTpetra_Vector()->replaceGlobalValue(globalRow, value);
40}
41
42template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
44 sumIntoGlobalValue(GlobalOrdinal globalRow, const Scalar& value) {
45 XPETRA_MONITOR("TpetraVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>::sumIntoGlobalValue");
46 getTpetra_Vector()->sumIntoGlobalValue(globalRow, value);
47}
48
49template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
51 replaceLocalValue(LocalOrdinal myRow, const Scalar& value) {
52 XPETRA_MONITOR("TpetraVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>::replaceLocalValue");
53 getTpetra_Vector()->replaceLocalValue(myRow, value);
54}
55
56template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
58 sumIntoLocalValue(LocalOrdinal myRow, const Scalar& value) {
59 XPETRA_MONITOR("TpetraVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>::sumIntoLocalValue");
60 getTpetra_Vector()->sumIntoLocalValue(myRow, value);
61}
62
63template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
66 norm1() const {
67 XPETRA_MONITOR("TpetraVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>::norm1");
68 return getTpetra_Vector()->norm1();
69}
70
71template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
74 norm2() const {
75 XPETRA_MONITOR("TpetraVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>::norm2");
76 return getTpetra_Vector()->norm2();
77}
78
79template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
82 normInf() const {
83 XPETRA_MONITOR("TpetraVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>::normInf");
84 return getTpetra_Vector()->normInf();
85}
86
87template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
88Scalar
90 meanValue() const {
91 XPETRA_MONITOR("TpetraVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>::meanValue");
92 return getTpetra_Vector()->meanValue();
93}
94
95template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
96std::string
98 description() const {
99 XPETRA_MONITOR("TpetraVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>::description");
100 return getTpetra_Vector()->description();
101}
102
103template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
105 describe(Teuchos::FancyOStream& out, const Teuchos::EVerbosityLevel verbLevel) const {
106 XPETRA_MONITOR("TpetraVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>::describe");
107 getTpetra_Vector()->describe(out, verbLevel);
108}
109
110template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
111Scalar
114 XPETRA_MONITOR("TpetraVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>::dot");
115 return getTpetra_Vector()->dot(*toTpetra(a));
116}
117
118template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
123
124template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
130
131} // namespace Xpetra
132
133#endif
#define XPETRA_MONITOR(funcName)
RCP< Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getTpetra_MultiVector() const
Get the underlying Tpetra multivector.
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.
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.
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.
RCP< const Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > toTpetra(const RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > &graph)