IFPACK
Development
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Ifpack_Graph_Epetra_CrsGraph.cpp
1
/*@HEADER
2
// ***********************************************************************
3
//
4
// Ifpack: Object-Oriented Algebraic Preconditioner Package
5
// Copyright (2002) Sandia Corporation
6
//
7
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8
// license for use of this work by or on behalf of the U.S. Government.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are
12
// met:
13
//
14
// 1. Redistributions of source code must retain the above copyright
15
// notice, this list of conditions and the following disclaimer.
16
//
17
// 2. Redistributions in binary form must reproduce the above copyright
18
// notice, this list of conditions and the following disclaimer in the
19
// documentation and/or other materials provided with the distribution.
20
//
21
// 3. Neither the name of the Corporation nor the names of the
22
// contributors may be used to endorse or promote products derived from
23
// this software without specific prior written permission.
24
//
25
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
//
37
// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
38
//
39
// ***********************************************************************
40
//@HEADER
41
*/
42
43
#include "Ifpack_ConfigDefs.h"
44
#include "Ifpack_Graph.h"
45
#include "Ifpack_Graph_Epetra_CrsGraph.h"
46
#include "Epetra_Comm.h"
47
#include "Epetra_CrsGraph.h"
48
49
//==============================================================================
50
Ifpack_Graph_Epetra_CrsGraph::
51
Ifpack_Graph_Epetra_CrsGraph
(
const
Teuchos::RefCountPtr<const Epetra_CrsGraph>& CrsGraph) :
52
CrsGraph_(CrsGraph)
53
{
54
NumMyRows_ = CrsGraph_->NumMyRows();
55
NumMyCols_ = CrsGraph_->NumMyCols();
56
NumGlobalRows_ = CrsGraph_->NumGlobalRows64();
57
NumGlobalCols_ = CrsGraph_->NumGlobalCols64();
58
MaxNumIndices_ = CrsGraph_->MaxNumIndices();
59
}
60
61
//==============================================================================
62
const
Epetra_Comm
&
Ifpack_Graph_Epetra_CrsGraph::Comm
()
const
63
{
64
return
(CrsGraph_->Comm());
65
}
66
67
//==============================================================================
68
bool
Ifpack_Graph_Epetra_CrsGraph::Filled
()
const
69
{
70
return
(CrsGraph_->Filled());
71
}
72
73
//==============================================================================
74
#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
75
int
Ifpack_Graph_Epetra_CrsGraph::GRID
(
int
LRID_in)
const
76
{
77
return
(CrsGraph_->GRID(LRID_in));
78
}
79
80
//==============================================================================
81
int
Ifpack_Graph_Epetra_CrsGraph::GCID
(
int
LCID_in)
const
82
{
83
return
(CrsGraph_->GCID(LCID_in));
84
}
85
#endif
86
87
long
long
Ifpack_Graph_Epetra_CrsGraph::GRID64(
int
LRID_in)
const
88
{
89
return
(CrsGraph_->GRID64(LRID_in));
90
}
91
92
//==============================================================================
93
long
long
Ifpack_Graph_Epetra_CrsGraph::GCID64
(
int
LCID_in)
const
94
{
95
return
(CrsGraph_->GCID64(LCID_in));
96
}
97
98
//==============================================================================
99
#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
100
int
Ifpack_Graph_Epetra_CrsGraph::LRID
(
int
GRID_in)
const
101
{
102
return
(CrsGraph_->LRID(GRID_in));
103
}
104
105
//==============================================================================
106
int
Ifpack_Graph_Epetra_CrsGraph::LCID
(
int
GCID_in)
const
107
{
108
return
(CrsGraph_->LCID(GCID_in));
109
}
110
#endif
111
112
//==============================================================================
113
#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
114
int
Ifpack_Graph_Epetra_CrsGraph::LRID
(
long
long
GRID_in)
const
115
{
116
return
(CrsGraph_->LRID(GRID_in));
117
}
118
119
//==============================================================================
120
int
Ifpack_Graph_Epetra_CrsGraph::LCID
(
long
long
GCID_in)
const
121
{
122
return
(CrsGraph_->LCID(GCID_in));
123
}
124
#endif
125
//==============================================================================
126
int
Ifpack_Graph_Epetra_CrsGraph::
127
ExtractMyRowCopy
(
int
MyRow,
int
LenOfIndices,
128
int
&NumIndices,
int
*Indices)
const
129
{
130
return
(CrsGraph_->ExtractMyRowCopy(MyRow, LenOfIndices,
131
NumIndices, Indices));
132
}
133
134
//==============================================================================
135
int
Ifpack_Graph_Epetra_CrsGraph::NumMyNonzeros
()
const
136
{
137
return
(CrsGraph_->NumMyEntries());
138
}
139
140
// ======================================================================
141
std::ostream&
Ifpack_Graph_Epetra_CrsGraph::Print
(std::ostream& os)
const
142
{
143
using
std::endl;
144
145
if
(
Comm
().MyPID())
146
return
(os);
147
148
os <<
"================================================================================"
<< endl;
149
os <<
"Ifpack_Graph_Epetra_CrsGraph"
<< endl;
150
os <<
"Number of local rows = "
<< NumMyRows_ << endl;
151
os <<
"Number of global rows = "
<< NumGlobalRows_ << endl;
152
os <<
"================================================================================"
<< endl;
153
154
return
(os);
155
156
}
Epetra_Comm
Ifpack_Graph_Epetra_CrsGraph::Filled
bool Filled() const
Returns true is graph is filled.
Definition
Ifpack_Graph_Epetra_CrsGraph.cpp:68
Ifpack_Graph_Epetra_CrsGraph::GCID
int GCID(int) const
Returns the global column ID of input local column.
Definition
Ifpack_Graph_Epetra_CrsGraph.cpp:81
Ifpack_Graph_Epetra_CrsGraph::LRID
int LRID(int) const
Returns the local row ID of input global row.
Definition
Ifpack_Graph_Epetra_CrsGraph.cpp:100
Ifpack_Graph_Epetra_CrsGraph::Ifpack_Graph_Epetra_CrsGraph
Ifpack_Graph_Epetra_CrsGraph(const Teuchos::RefCountPtr< const Epetra_CrsGraph > &CrsGraph)
Constructor.
Definition
Ifpack_Graph_Epetra_CrsGraph.cpp:51
Ifpack_Graph_Epetra_CrsGraph::NumMyNonzeros
int NumMyNonzeros() const
Returns the number of local nonzero entries.
Definition
Ifpack_Graph_Epetra_CrsGraph.cpp:135
Ifpack_Graph_Epetra_CrsGraph::LCID
int LCID(int) const
Returns the local column ID of input global column.
Definition
Ifpack_Graph_Epetra_CrsGraph.cpp:106
Ifpack_Graph_Epetra_CrsGraph::Comm
const Epetra_Comm & Comm() const
Returns the communicator object of the graph.
Definition
Ifpack_Graph_Epetra_CrsGraph.cpp:62
Ifpack_Graph_Epetra_CrsGraph::ExtractMyRowCopy
int ExtractMyRowCopy(int GlobalRow, int LenOfIndices, int &NumIndices, int *Indices) const
Extracts a copy of input local row.
Definition
Ifpack_Graph_Epetra_CrsGraph.cpp:127
Ifpack_Graph_Epetra_CrsGraph::Print
virtual std::ostream & Print(std::ostream &os) const
Prints basic information about the graph object.
Definition
Ifpack_Graph_Epetra_CrsGraph.cpp:141
Ifpack_Graph_Epetra_CrsGraph::GRID
int GRID(int) const
Returns the global row ID of input local row.
Definition
Ifpack_Graph_Epetra_CrsGraph.cpp:75
Ifpack_Graph_Epetra_CrsGraph::GCID64
long long GCID64(int) const
Returns the global column ID of input local column.
Definition
Ifpack_Graph_Epetra_CrsGraph.cpp:93
Generated by
1.17.0