Tpetra parallel linear algebra
Version of the Day
Toggle main menu visibility
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::View));
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::Map
A parallel distribution of indices over processes.
Definition
Tpetra_Map_decl.hpp:197
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.17.0