Tpetra parallel linear algebra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
Tpetra_CrsGraphTransposer_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_CRSGRAPHTRANSPOSER_DECL_HPP
44
#define TPETRA_CRSGRAPHTRANSPOSER_DECL_HPP
45
49
50
#include "
Tpetra_CrsGraphTransposer_fwd.hpp
"
51
#include "
Tpetra_CrsGraph_fwd.hpp
"
52
#include "
Tpetra_Map_fwd.hpp
"
53
#include "Teuchos_RCP.hpp"
54
#include <string>
55
56
#ifndef DOXYGEN_SHOULD_SKIP_THIS
57
namespace
Teuchos {
58
// Forward declaration of ParameterList
59
class
ParameterList;
60
}
// namespace Teuchos
61
#endif
// DOXYGEN_SHOULD_SKIP_THIS
62
63
namespace
Tpetra
{
64
75
template
<
class
LocalOrdinal,
76
class
GlobalOrdinal,
77
class
Node>
78
class
CrsGraphTransposer
{
79
public
:
81
82
typedef
LocalOrdinal local_ordinal_type;
83
typedef
GlobalOrdinal global_ordinal_type;
84
typedef
Node node_type;
85
86
typedef
Map<LocalOrdinal, GlobalOrdinal, Node>
map_type;
87
typedef
CrsGraph<LocalOrdinal, GlobalOrdinal, Node>
crs_graph_type;
88
90
92
94
CrsGraphTransposer
(
const
Teuchos::RCP<const crs_graph_type>& origGraph,
const
std::string & label = std::string());
95
97
99
101
Teuchos::RCP<crs_graph_type>
symmetrize
(
const
Teuchos::RCP<Teuchos::ParameterList> ¶ms=Teuchos::null);
102
104
Teuchos::RCP<crs_graph_type>
createTranspose
(
const
Teuchos::RCP<Teuchos::ParameterList> ¶ms=Teuchos::null);
105
114
Teuchos::RCP<crs_graph_type>
createTransposeLocal
(
const
Teuchos::RCP<Teuchos::ParameterList> ¶ms=Teuchos::null);
115
116
private
:
118
Teuchos::RCP<const crs_graph_type> origGraph_;
119
121
std::string label_;
122
};
123
124
}
// namespace Tpetra
125
126
#endif
/* TPETRA_CRSGRAPHTRANSPOSER_DECL_HPP */
Tpetra_CrsGraphTransposer_fwd.hpp
Forward declaration of Tpetra::CrsGraphTransposer.
Tpetra_CrsGraph_fwd.hpp
Forward declaration of Tpetra::CrsGraph.
Tpetra_Map_fwd.hpp
Forward declaration of Tpetra::Map.
Tpetra::CrsGraphTransposer::CrsGraphTransposer
CrsGraphTransposer(const Teuchos::RCP< const crs_graph_type > &origGraph, const std::string &label=std::string())
Constructor that takes the graph to transpose.
Definition
Tpetra_CrsGraphTransposer_def.hpp:212
Tpetra::CrsGraphTransposer::createTransposeLocal
Teuchos::RCP< crs_graph_type > createTransposeLocal(const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
Compute and return the transpose of the graph given to the constructor.
Definition
Tpetra_CrsGraphTransposer_def.hpp:429
Tpetra::CrsGraphTransposer::createTranspose
Teuchos::RCP< crs_graph_type > createTranspose(const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
Compute and return the transpose of the graph given to the constructor.
Definition
Tpetra_CrsGraphTransposer_def.hpp:385
Tpetra::CrsGraphTransposer::symmetrize
Teuchos::RCP< crs_graph_type > symmetrize(const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
Compute and return graph+graph^T of the graph given to the constructor.
Definition
Tpetra_CrsGraphTransposer_def.hpp:222
Tpetra::CrsGraph
A distributed graph accessed by rows (adjacency lists) and stored sparsely.
Definition
Tpetra_CrsGraph_decl.hpp:226
Tpetra::Map
A parallel distribution of indices over processes.
Definition
Tpetra_Map_decl.hpp:228
Tpetra
Namespace Tpetra contains the class and methods constituting the Tpetra library.
Generated by
1.17.0