Tpetra parallel linear algebra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
Tpetra_RowMatrixTransposer_decl.hpp
Go to the documentation of this file.
1
2
// @HEADER
3
// ***********************************************************************
4
//
5
// Tpetra: Templated Linear Algebra Services Package
6
// Copyright (2008) Sandia Corporation
7
//
8
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9
// the U.S. Government retains certain rights in this software.
10
//
11
// Redistribution and use in source and binary forms, with or without
12
// modification, are permitted provided that the following conditions are
13
// met:
14
//
15
// 1. Redistributions of source code must retain the above copyright
16
// notice, this list of conditions and the following disclaimer.
17
//
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice, this list of conditions and the following disclaimer in the
20
// documentation and/or other materials provided with the distribution.
21
//
22
// 3. Neither the name of the Corporation nor the names of the
23
// contributors may be used to endorse or promote products derived from
24
// this software without specific prior written permission.
25
//
26
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
//
38
// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
39
//
40
// ************************************************************************
41
// @HEADER
42
43
#ifndef TPETRA_ROWMATRIXTRANSPOSER_DECL_HPP
44
#define TPETRA_ROWMATRIXTRANSPOSER_DECL_HPP
45
49
50
#include "
Tpetra_RowMatrixTransposer_fwd.hpp
"
51
#include "
Tpetra_CrsMatrix_fwd.hpp
"
52
#include "
Tpetra_BlockCrsMatrix_fwd.hpp
"
53
#include "
Tpetra_Map_fwd.hpp
"
54
#include "Teuchos_RCP.hpp"
55
#include <string>
56
57
#ifndef DOXYGEN_SHOULD_SKIP_THIS
58
namespace
Teuchos {
59
// Forward declaration of ParameterList
60
class
ParameterList;
61
}
// namespace Teuchos
62
#endif
// DOXYGEN_SHOULD_SKIP_THIS
63
64
namespace
Tpetra
{
65
76
template
<
class
Scalar,
77
class
LocalOrdinal,
78
class
GlobalOrdinal,
79
class
Node>
80
class
RowMatrixTransposer
{
81
public
:
83
84
typedef
Scalar scalar_type;
85
typedef
LocalOrdinal local_ordinal_type;
86
typedef
GlobalOrdinal global_ordinal_type;
87
typedef
Node node_type;
88
89
typedef
Map<LocalOrdinal, GlobalOrdinal, Node>
map_type;
90
typedef
CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>
crs_matrix_type;
91
93
95
97
RowMatrixTransposer
(
const
Teuchos::RCP<const crs_matrix_type>& origMatrix,
const
std::string & label = std::string());
98
100
102
104
Teuchos::RCP<crs_matrix_type>
createTranspose
(
const
Teuchos::RCP<Teuchos::ParameterList> ¶ms=Teuchos::null);
105
114
Teuchos::RCP<crs_matrix_type>
createTransposeLocal
(
const
Teuchos::RCP<Teuchos::ParameterList> ¶ms=Teuchos::null);
115
116
private
:
118
Teuchos::RCP<const crs_matrix_type> origMatrix_;
119
121
std::string label_;
122
};
123
124
130
template
<
class
Scalar,
131
class
LocalOrdinal,
132
class
GlobalOrdinal,
133
class
Node>
134
class
BlockCrsMatrixTransposer
{
135
public
:
137
138
typedef
Scalar scalar_type;
139
typedef
LocalOrdinal local_ordinal_type;
140
typedef
GlobalOrdinal global_ordinal_type;
141
typedef
Node node_type;
142
143
typedef
Map<LocalOrdinal, GlobalOrdinal, Node>
map_type;
144
typedef
BlockCrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>
bcrs_matrix_type;
145
147
149
151
BlockCrsMatrixTransposer
(
const
Teuchos::RCP<const bcrs_matrix_type>& origMatrix,
const
std::string & label = std::string());
152
154
156
158
Teuchos::RCP<bcrs_matrix_type>
createTranspose
(
const
Teuchos::RCP<Teuchos::ParameterList> ¶ms=Teuchos::null);
159
168
Teuchos::RCP<bcrs_matrix_type>
createTransposeLocal
(
const
Teuchos::RCP<Teuchos::ParameterList> ¶ms=Teuchos::null);
169
170
private
:
172
Teuchos::RCP<const bcrs_matrix_type> origMatrix_;
173
175
std::string label_;
176
};
177
178
179
}
// namespace Tpetra
180
181
#endif
/* TPETRA_ROWMATRIXTRANSPOSER_DECL_HPP */
Tpetra_BlockCrsMatrix_fwd.hpp
Forward declaration of Tpetra::BlockCrsMatrix.
Tpetra_CrsMatrix_fwd.hpp
Forward declaration of Tpetra::CrsMatrix.
Tpetra_Map_fwd.hpp
Forward declaration of Tpetra::Map.
Tpetra_RowMatrixTransposer_fwd.hpp
Forward declaration of Tpetra::RowMatrixTransposer.
Tpetra::BlockCrsMatrixTransposer::createTransposeLocal
Teuchos::RCP< bcrs_matrix_type > createTransposeLocal(const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
Compute and return the transpose of the matrix given to the constructor.
Definition
Tpetra_RowMatrixTransposer_def.hpp:274
Tpetra::BlockCrsMatrixTransposer::BlockCrsMatrixTransposer
BlockCrsMatrixTransposer(const Teuchos::RCP< const bcrs_matrix_type > &origMatrix, const std::string &label=std::string())
Constructor that takes the matrix to transpose.
Definition
Tpetra_RowMatrixTransposer_def.hpp:214
Tpetra::BlockCrsMatrixTransposer::createTranspose
Teuchos::RCP< bcrs_matrix_type > createTranspose(const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
Compute and return the transpose of the matrix given to the constructor.
Definition
Tpetra_RowMatrixTransposer_def.hpp:225
Tpetra::BlockCrsMatrix
Sparse matrix whose entries are small dense square blocks, all of the same dimensions.
Definition
Tpetra_BlockCrsMatrix_decl.hpp:163
Tpetra::CrsMatrix
Sparse matrix that presents a row-oriented interface that lets users read or modify entries.
Definition
Tpetra_CrsMatrix_decl.hpp:430
Tpetra::Map
A parallel distribution of indices over processes.
Definition
Tpetra_Map_decl.hpp:228
Tpetra::RowMatrixTransposer::createTranspose
Teuchos::RCP< crs_matrix_type > createTranspose(const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
Compute and return the transpose of the matrix given to the constructor.
Definition
Tpetra_RowMatrixTransposer_def.hpp:73
Tpetra::RowMatrixTransposer::createTransposeLocal
Teuchos::RCP< crs_matrix_type > createTransposeLocal(const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
Compute and return the transpose of the matrix given to the constructor.
Definition
Tpetra_RowMatrixTransposer_def.hpp:123
Tpetra::RowMatrixTransposer::RowMatrixTransposer
RowMatrixTransposer(const Teuchos::RCP< const crs_matrix_type > &origMatrix, const std::string &label=std::string())
Constructor that takes the matrix to transpose.
Definition
Tpetra_RowMatrixTransposer_def.hpp:62
Tpetra
Namespace Tpetra contains the class and methods constituting the Tpetra library.
Generated by
1.17.0