Tpetra parallel linear algebra
Version of the Day
Loading...
Searching...
No Matches
core
src
Tpetra_Reindex_MultiVector_def.hpp
Go to the documentation of this file.
1
// @HEADER
2
// *****************************************************************************
3
// Tpetra: Templated Linear Algebra Services Package
4
//
5
// Copyright 2008 NTESS and the Tpetra contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef TPETRA_REINDEX_MULTIVECTOR_DEF_HPP
11
#define TPETRA_REINDEX_MULTIVECTOR_DEF_HPP
12
13
#include <
Tpetra_Reindex_MultiVector_decl.hpp
>
14
24
25
namespace
Tpetra
{
26
27
template
<
class
Scalar,
28
class
LocalOrdinal,
29
class
GlobalOrdinal,
30
class
Node>
31
Reindex_MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>::
32
Reindex_MultiVector
(Teuchos::RCP<
Map<LocalOrdinal, GlobalOrdinal, Node>
const
>
newRowMap
)
33
: ViewTransform<
MultiVector
<
Scalar
,
LocalOrdinal
,
GlobalOrdinal
, Node> >()
34
, newRowMap_(
newRowMap
) {
35
// Nothing to do
36
}
37
38
template
<
class
Scalar
,
39
class
LocalOrdinal
,
40
class
GlobalOrdinal
,
41
class
Node>
42
Reindex_MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>::~Reindex_MultiVector
() {
43
// Nothing to do
44
}
45
46
template
<
class
Scalar
,
47
class
LocalOrdinal
,
48
class
GlobalOrdinal
,
49
class
Node>
50
typename
Reindex_MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>::NewType
51
Reindex_MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>::operator()
(OriginalType
const
&
origMultiVector
) {
52
this->origObj_ =
origMultiVector
;
53
assert
(
origMultiVector
->getMap()->getLocalNumElements() ==
this
->newRowMap_->getLocalNumElements());
54
assert
(
origMultiVector
->isConstantStride() ==
true
);
// So that it is valid to call origMultiVector->getStride()
55
56
using
mv_t
=
MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
;
57
this->newObj_ = Teuchos::RCP<mv_t>(
new
mv_t
(*
origMultiVector
, Teuchos::DataAccess::Copy));
58
this->newObj_->replaceMap(newRowMap_);
59
60
return
this->newObj_;
61
}
62
63
//
64
// Explicit instantiation macro
65
//
66
// Must be expanded from within the Tpetra namespace!
67
//
68
69
#define TPETRA_REINDEXMULTIVECTOR_INSTANT(SCALAR, LO, GO, NODE) \
70
template class Reindex_MultiVector<SCALAR, LO, GO, NODE>;
71
72
}
// namespace Tpetra
73
74
#endif
// TPETRA_REINDEX_MULTIVECTOR_DEF_HPP
Tpetra_Reindex_MultiVector_decl.hpp
Declaration of the Tpetra::Reindex_MultiVector class.
Tpetra::CrsMatrixStruct
Struct that holds views of the contents of a CrsMatrix.
Definition
TpetraExt_MMHelpers_decl.hpp:36
Tpetra::MultiVector
One or more distributed dense vectors.
Definition
Tpetra_MultiVector_decl.hpp:350
Tpetra::Reindex_MultiVector::operator()
NewType operator()(OriginalType const &origMultiVector)
Definition
Tpetra_Reindex_MultiVector_def.hpp:51
Tpetra::Reindex_MultiVector::Reindex_MultiVector
Reindex_MultiVector(Teuchos::RCP< Map< LocalOrdinal, GlobalOrdinal, Node > const > newRowMap)
Definition
Tpetra_Reindex_MultiVector_def.hpp:32
Tpetra::Reindex_MultiVector::~Reindex_MultiVector
~Reindex_MultiVector()
Definition
Tpetra_Reindex_MultiVector_def.hpp:42
Tpetra
Namespace Tpetra contains the class and methods constituting the Tpetra library.
Generated by
1.9.8