Xpetra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
Xpetra_BlockedVector_decl.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_BLOCKEDVECTOR_DECL_HPP
11
#define XPETRA_BLOCKEDVECTOR_DECL_HPP
12
13
/* this file is automatically generated - do not edit (see script/interfaces.py) */
14
15
#include "
Xpetra_ConfigDefs.hpp
"
16
17
#include "
Xpetra_BlockedMap_decl.hpp
"
18
#include "
Xpetra_BlockedMultiVector_decl.hpp
"
19
#include "
Xpetra_Map_decl.hpp
"
20
#include "
Xpetra_Vector.hpp
"
21
22
namespace
Xpetra
{
23
24
template
<
class
Scalar,
25
class
LocalOrdinal,
26
class
GlobalOrdinal,
27
class
Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
28
class
BlockedVector
29
:
public
virtual
Xpetra::Vector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>,
30
public
virtual
Xpetra::BlockedMultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node> {
31
public
:
32
using
scalar_type
= Scalar;
33
using
local_ordinal_type
= LocalOrdinal;
34
using
global_ordinal_type
= GlobalOrdinal;
35
using
node_type
= Node;
36
37
using
Xpetra::Vector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::dot
;
// overloading, not hiding
38
using
Xpetra::Vector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::norm1
;
// overloading, not hiding
39
using
Xpetra::Vector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::norm2
;
// overloading, not hiding
40
using
Xpetra::Vector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::normInf
;
// overloading, not hiding
41
using
Xpetra::Vector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::meanValue
;
// overloading, not hiding
42
using
Xpetra::Vector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::replaceGlobalValue
;
// overloading, not hiding
43
using
Xpetra::Vector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::sumIntoGlobalValue
;
// overloading, not hiding
44
using
Xpetra::Vector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::replaceLocalValue
;
// overloading, not hiding
45
using
Xpetra::Vector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::sumIntoLocalValue
;
// overloading, not hiding
46
47
private
:
48
#undef XPETRA_BLOCKEDVECTOR_SHORT
49
#include "
Xpetra_UseShortNames.hpp
"
50
51
public
:
53
54
56
57
/*!
58
* Const version of constructor which accepts a const version
59
* of a blocked map
60
*
61
* \param map BlockedMap defining the block structure of the vector
62
* \param zeroOut If true initialize vector with zeros
63
*/
64
BlockedVector(
const
Teuchos::RCP<const BlockedMap>
& map,
bool
zeroOut =
true
);
65
77
BlockedVector(
Teuchos::RCP
<
const
Xpetra::BlockedMap<LocalOrdinal, GlobalOrdinal, Node>
> bmap,
78
Teuchos::RCP
<
Xpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
> v);
79
91
BlockedVector(
Teuchos::RCP
<
const
Xpetra::MapExtractor<Scalar, LocalOrdinal, GlobalOrdinal, Node>> mapExtractor,
92
Teuchos::RCP
<
Xpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
> v);
93
95
virtual
~BlockedVector();
96
104
BlockedVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
&
105
operator=
(
const
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
& rhs);
106
108
110
112
virtual
void
replaceGlobalValue
(GlobalOrdinal globalRow,
size_t
vectorIndex,
const
Scalar& value);
113
115
virtual
void
sumIntoGlobalValue
(GlobalOrdinal globalRow,
size_t
vectorIndex,
const
Scalar& value);
116
118
virtual
void
replaceLocalValue
(LocalOrdinal myRow,
size_t
vectorIndex,
const
Scalar& value);
119
121
virtual
void
sumIntoLocalValue
(LocalOrdinal myRow,
size_t
vectorIndex,
const
Scalar& value);
122
124
virtual
void
replaceGlobalValue
(GlobalOrdinal globalRow,
const
Scalar& value);
125
127
virtual
void
sumIntoGlobalValue
(GlobalOrdinal globalRow,
const
Scalar& value);
128
130
virtual
void
replaceLocalValue
(LocalOrdinal myRow,
const
Scalar& value);
131
133
virtual
void
sumIntoLocalValue
(LocalOrdinal myRow,
const
Scalar& value);
134
136
virtual
void
putScalar
(
const
Scalar& value);
137
139
140
//! @name Data Copy and View get methods
141
142
144
virtual
Teuchos::RCP<const Xpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
>
145
getVector(
size_t
j)
const
;
146
148
virtual
Teuchos::RCP<Xpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
>
149
getVectorNonConst(
size_t
j);
150
152
virtual
Teuchos::ArrayRCP<const Scalar>
getData(
size_t
j)
const
;
153
155
virtual
Teuchos::ArrayRCP<Scalar>
getDataNonConst(
size_t
j);
156
158
160
161
163
virtual
void
dot(
const
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
& A,
164
const
Teuchos::ArrayView<Scalar>
& dots)
const
;
165
166
virtual
Scalar dot(
const
Xpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
& A)
const
;
167
169
virtual
void
abs(
const
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
& A);
170
172
virtual
void
reciprocal(
const
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
& A);
173
175
virtual
void
scale(
const
Scalar& alpha);
176
178
virtual
void
scale(
Teuchos::ArrayView<const Scalar>
alpha);
179
180
virtual
void
update(
const
Scalar& alpha,
181
const
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
& A,
182
const
Scalar& beta);
183
185
virtual
void
update(
const
Scalar& alpha,
186
const
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
& A,
187
const
Scalar& beta,
188
const
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
& B,
189
const
Scalar& gamma);
190
192
virtual
typename
Teuchos::ScalarTraits<Scalar>::magnitudeType
norm1()
const
;
193
195
virtual
typename
Teuchos::ScalarTraits<Scalar>::magnitudeType
norm2()
const
;
196
198
virtual
typename
Teuchos::ScalarTraits<Scalar>::magnitudeType
normInf()
const
;
199
201
virtual
void
norm1(
const
Teuchos::ArrayView
<
typename
Teuchos::ScalarTraits<Scalar>::magnitudeType
>& norms)
const
;
202
204
virtual
void
norm2(
const
Teuchos::ArrayView
<
typename
Teuchos::ScalarTraits<Scalar>::magnitudeType
>& norms)
const
;
205
207
virtual
void
normInf(
const
Teuchos::ArrayView
<
typename
Teuchos::ScalarTraits<Scalar>::magnitudeType
>& norms)
const
;
208
211
virtual
void
meanValue(
const
Teuchos::ArrayView<Scalar>
&
/* means */
)
const
;
212
213
virtual
Scalar meanValue()
const
;
214
215
216
virtual
void
multiply(
Teuchos::ETransp
/* transA */
,
217
Teuchos::ETransp
/* transB */
,
218
const
Scalar&
/* alpha */
,
219
const
Xpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
&
/* A */
,
220
const
Xpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
&
/* B */
,
221
const
Scalar&
/* beta */
);
222
223
virtual
void
multiply(
Teuchos::ETransp
/* transA */
,
224
Teuchos::ETransp
/* transB */
,
225
const
Scalar&
/* alpha */
,
226
const
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
&
/* A */
,
227
const
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
&
/* B */
,
228
const
Scalar&
/* beta */
);
229
230
virtual
void
elementWiseMultiply(Scalar
/* scalarAB */
,
231
const
Xpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
&
/* A */
,
232
const
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
&
/* B */
,
233
Scalar
/* scalarThis */
);
234
236
virtual
void
elementWiseMultiply(Scalar
/* scalarAB */
,
237
const
Xpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
& A,
238
const
Xpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
& B,
239
Scalar
/* scalarThis */
);
240
242
244
245
247
virtual
size_t
getNumVectors()
const
;
248
250
virtual
size_t
getLocalLength()
const
;
251
253
virtual
global_size_t
getGlobalLength()
const
;
254
256
virtual
bool
isSameSize(
const
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
&
/* vec */
)
const
;
257
259
261
262
264
virtual
std::string description()
const
;
265
267
virtual
void
describe(
Teuchos::FancyOStream
& out,
268
const
Teuchos::EVerbosityLevel
verbLevel =
Teuchos::Describable::verbLevel_default
)
const
;
269
270
virtual
void
replaceMap(
const
RCP<const Map>
& map);
271
273
virtual
void
doImport(
const
DistObject<Scalar, LocalOrdinal, GlobalOrdinal, Node>
&
/* source */
,
274
const
Import
&
/* importer */
,
275
CombineMode
/* CM */
);
276
278
virtual
void
doExport(
const
DistObject<Scalar, LocalOrdinal, GlobalOrdinal, Node>
&
/* dest */
,
279
const
Import
&
/* importer */
,
280
CombineMode
/* CM */
);
281
283
virtual
void
doImport(
const
DistObject<Scalar, LocalOrdinal, GlobalOrdinal, Node>
&
/* source */
,
284
const
Export
&
/* exporter */
,
285
CombineMode
/* CM */
);
286
288
virtual
void
doExport(
const
DistObject<Scalar, LocalOrdinal, GlobalOrdinal, Node>
&
/* dest */
,
289
const
Export
&
/* exporter */
,
290
CombineMode
/* CM */
);
291
293
295
296
298
virtual
void
setSeed(
unsigned
int
seed);
299
300
virtual
void
randomize(
bool
bUseXpetraImplementation =
false
);
301
302
virtual
void
randomize(
const
Scalar& minVal,
const
Scalar& maxVal,
bool
bUseXpetraImplementation =
false
);
303
305
virtual
void
Xpetra_randomize();
306
308
virtual
void
Xpetra_randomize(
const
Scalar& minVal,
const
Scalar& maxVal);
309
311
313
Teuchos::RCP<const Map>
getMap()
const
;
314
316
Teuchos::RCP<Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
>
317
getMultiVector(
size_t
r)
const
;
318
320
Teuchos::RCP<Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
>
321
getMultiVector(
size_t
r,
bool
bThyraMode)
const
;
322
324
void
325
setMultiVector(
size_t
r,
326
Teuchos::RCP
<
const
Xpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
> v,
327
bool
bThyraMode);
328
330
Teuchos::RCP<Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
>
331
Merge()
const
;
332
333
protected
:
340
virtual
void
assign(
const
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
& rhs);
341
342
// virtual void assign (const MultiVector& rhs);
343
344
// private:
345
// Teuchos::RCP<const BlockedMap> map_; ///< blocked map containing the sub block maps (either thyra or xpetra mode)
346
// std::vector<Teuchos::RCP<Vector> > vv_; ///< array containing RCPs of the partial vectors
347
348
};
// BlockedVector class
349
350
}
// namespace Xpetra
351
352
#define XPETRA_BLOCKEDVECTOR_SHORT
353
#endif
// XPETRA_BLOCKEDVECTOR_DECL_HPP
Xpetra_BlockedMap_decl.hpp
Xpetra_BlockedMultiVector_decl.hpp
Xpetra_ConfigDefs.hpp
Xpetra_Map_decl.hpp
Xpetra_UseShortNames.hpp
Xpetra_Vector.hpp
Teuchos::ArrayRCP
Teuchos::ArrayView
Teuchos::Describable::verbLevel_default
static const EVerbosityLevel verbLevel_default
Teuchos::RCP
Xpetra::BlockedMap
Definition
Xpetra_BlockedMap_decl.hpp:23
Xpetra::BlockedVector::operator=
BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & operator=(const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &rhs)
Assignment operator: Does a deep copy.
Definition
Xpetra_BlockedVector_def.hpp:44
Xpetra::BlockedVector::dot
virtual void dot(const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, const Teuchos::ArrayView< Scalar > &dots) const
Compute dot product of each corresponding pair of vectors, dots[i] = this[i].dot(A[i]).
Definition
Xpetra_BlockedVector_def.hpp:133
Xpetra::BlockedVector::norm2
virtual Teuchos::ScalarTraits< Scalar >::magnitudeType norm2() const
Compute 2-norm of vector.
Definition
Xpetra_BlockedVector_def.hpp:208
Xpetra::BlockedVector::global_ordinal_type
GlobalOrdinal global_ordinal_type
Definition
Xpetra_BlockedVector_decl.hpp:34
Xpetra::BlockedVector::sumIntoLocalValue
virtual void sumIntoLocalValue(LocalOrdinal myRow, size_t vectorIndex, const Scalar &value)
Add value to existing value, using local (row) index.
Definition
Xpetra_BlockedVector_def.hpp:69
Xpetra::BlockedVector::node_type
Node node_type
Definition
Xpetra_BlockedVector_decl.hpp:35
Xpetra::BlockedVector::putScalar
virtual void putScalar(const Scalar &value)
Set all values in the vector with the given value.
Definition
Xpetra_BlockedVector_def.hpp:99
Xpetra::BlockedVector::BlockedVector
BlockedVector(const Teuchos::RCP< const BlockedMap > &map, bool zeroOut=true)
Constructor.
Definition
Xpetra_BlockedVector_def.hpp:22
Xpetra::BlockedVector::norm1
virtual Teuchos::ScalarTraits< Scalar >::magnitudeType norm1() const
Compute 1-norm of vector.
Definition
Xpetra_BlockedVector_def.hpp:198
Xpetra::BlockedVector::replaceLocalValue
virtual void replaceLocalValue(LocalOrdinal myRow, size_t vectorIndex, const Scalar &value)
Replace value, using local (row) index.
Definition
Xpetra_BlockedVector_def.hpp:63
Xpetra::BlockedVector::sumIntoGlobalValue
virtual void sumIntoGlobalValue(GlobalOrdinal globalRow, size_t vectorIndex, const Scalar &value)
Add value to existing value, using global (row) index.
Definition
Xpetra_BlockedVector_def.hpp:57
Xpetra::BlockedVector::local_ordinal_type
LocalOrdinal local_ordinal_type
Definition
Xpetra_BlockedVector_decl.hpp:33
Xpetra::BlockedVector::replaceGlobalValue
virtual void replaceGlobalValue(GlobalOrdinal globalRow, size_t vectorIndex, const Scalar &value)
Replace value, using global (row) index.
Definition
Xpetra_BlockedVector_def.hpp:51
Xpetra::BlockedVector::scalar_type
Scalar scalar_type
Definition
Xpetra_BlockedVector_decl.hpp:32
Xpetra::BlockedVector::meanValue
virtual void meanValue(const Teuchos::ArrayView< Scalar > &) const
Definition
Xpetra_BlockedVector_def.hpp:245
Xpetra::BlockedVector::normInf
virtual Teuchos::ScalarTraits< Scalar >::magnitudeType normInf() const
Compute Inf-norm in vector.
Definition
Xpetra_BlockedVector_def.hpp:218
Xpetra::DistObject
Definition
Xpetra_DistObject.hpp:29
Xpetra::Export
Definition
Xpetra_Export.hpp:27
Xpetra::Import
Definition
Xpetra_Import.hpp:27
Xpetra::MultiVector
Definition
Xpetra_MultiVector_decl.hpp:45
Xpetra::Vector
Definition
Xpetra_Vector.hpp:25
Teuchos::FancyOStream
basic_FancyOStream< char > FancyOStream
Teuchos::EVerbosityLevel
EVerbosityLevel
Teuchos::ETransp
ETransp
Xpetra
Xpetra namespace
Definition
Xpetra_BlockedCrsMatrix_decl.hpp:52
Xpetra::global_size_t
size_t global_size_t
Global size_t object.
Definition
Xpetra_ConfigDefs.hpp:136
Xpetra::CombineMode
CombineMode
Xpetra::Combine Mode enumerable type.
Definition
Xpetra_ConfigDefs.hpp:174
Xpetra::BlockedVector::Xpetra::ScalarTraits::magnitudeType
T magnitudeType
src
BlockedVector
Xpetra_BlockedVector_decl.hpp
Generated by
1.17.0