Epetra Package Browser (Single Doxygen Collection)
Development
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
src
Epetra_RowMatrix.h
Go to the documentation of this file.
1
/*
2
//@HEADER
3
// ************************************************************************
4
//
5
// Epetra: Linear Algebra Services Package
6
// Copyright 2011 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
44
#ifndef EPETRA_ROWMATRIX_H
45
#define EPETRA_ROWMATRIX_H
46
47
#if defined(Epetra_SHOW_DEPRECATED_WARNINGS)
48
#ifdef __GNUC__
49
#warning "The Epetra package is deprecated"
50
#endif
51
#endif
52
53
54
55
class
Epetra_Comm
;
56
class
Epetra_Import
;
57
class
Epetra_Export
;
58
class
Epetra_Vector
;
59
class
Epetra_MultiVector
;
60
#include "
Epetra_ConfigDefs.h
"
61
#include "
Epetra_Operator.h
"
62
#include "
Epetra_SrcDistObject.h
"
63
64
66
76
class
EPETRA_LIB_DLL_EXPORT
Epetra_RowMatrix
:
public
virtual
Epetra_Operator
,
public
virtual
Epetra_SrcDistObject
{
77
78
public
:
80
81
virtual
~
Epetra_RowMatrix
() {};
83
85
87
88
90
98
virtual
int
NumMyRowEntries(
int
MyRow,
int
& NumEntries)
const
= 0;
99
100
102
virtual
int
MaxNumEntries()
const
= 0;
103
105
119
virtual
int
ExtractMyRowCopy(
int
MyRow,
int
Length,
int
& NumEntries,
double
*Values,
int
* Indices)
const
= 0;
120
122
128
virtual
int
ExtractDiagonalCopy(
Epetra_Vector
& Diagonal)
const
= 0;
130
132
133
135
145
virtual
int
Multiply(
bool
TransA,
const
Epetra_MultiVector
& X,
Epetra_MultiVector
& Y)
const
= 0;
146
148
163
virtual
int
Solve
(
bool
Upper,
bool
Trans,
bool
UnitDiagonal,
const
Epetra_MultiVector
& X,
164
Epetra_MultiVector
& Y)
const
= 0;
165
167
177
virtual
int
InvRowSums(
Epetra_Vector
& x)
const
= 0;
178
180
187
virtual
int
LeftScale(
const
Epetra_Vector
& x) = 0;
188
190
200
virtual
int
InvColSums(
Epetra_Vector
& x)
const
= 0;
201
203
210
virtual
int
RightScale(
const
Epetra_Vector
& x) = 0;
212
214
215
217
virtual
bool
Filled()
const
= 0;
218
220
/* Returns the quantity \f$ \| A \|_\infty\f$ such that
221
\f[\| A \|_\infty = \max_{1\lei\len} \sum_{i=1}^m |a_{ij}| \f].
222
*/
223
virtual
double
NormInf
()
const
= 0;
224
226
/* Returns the quantity \f$ \| A \|_1\f$ such that
227
\f[\| A \|_1= \max_{1\lej\len} \sum_{j=1}^n |a_{ij}| \f].
228
*/
229
virtual
double
NormOne()
const
= 0;
230
232
/*
233
Note that depending on the matrix implementation, it is sometimes
234
possible to have some nonzeros that appear on multiple processors.
235
In that case, those nonzeros may be counted multiple times (also
236
depending on the matrix implementation).
237
*/
238
#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
239
virtual
int
NumGlobalNonzeros()
const
= 0;
240
#endif
241
virtual
long
long
NumGlobalNonzeros64()
const
= 0;
242
244
#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
245
virtual
int
NumGlobalRows()
const
= 0;
246
#endif
247
virtual
long
long
NumGlobalRows64()
const
= 0;
248
250
#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
251
virtual
int
NumGlobalCols()
const
= 0;
252
#endif
253
virtual
long
long
NumGlobalCols64()
const
= 0;
254
256
#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
257
virtual
int
NumGlobalDiagonals()
const
= 0;
258
#endif
259
virtual
long
long
NumGlobalDiagonals64()
const
= 0;
260
262
virtual
int
NumMyNonzeros()
const
= 0;
263
265
virtual
int
NumMyRows()
const
= 0;
266
268
virtual
int
NumMyCols()
const
= 0;
269
271
virtual
int
NumMyDiagonals()
const
= 0;
272
274
virtual
bool
LowerTriangular()
const
= 0;
275
277
virtual
bool
UpperTriangular()
const
= 0;
278
280
virtual
const
Epetra_Map
& RowMatrixRowMap()
const
= 0;
281
283
virtual
const
Epetra_Map
& RowMatrixColMap()
const
= 0;
284
286
virtual
const
Epetra_Import
* RowMatrixImporter()
const
= 0;
288
};
289
290
#endif
/* EPETRA_ROWMATRIX_H */
Epetra_MultiVector
Epetra_MultiVector: A class for constructing and using dense multi-vectors, vectors and matrices in p...
Definition:
Epetra_MultiVector.h:192
Epetra_Map
Epetra_Map: A class for partitioning vectors and matrices.
Definition:
Epetra_Map.h:127
Epetra_SrcDistObject.h
Epetra_Export
Epetra_Export: This class builds an export object for efficient exporting of off-processor elements...
Definition:
Epetra_Export.h:70
Epetra_Vector
Epetra_Vector: A class for constructing and using dense vectors on a parallel computer.
Definition:
Epetra_Vector.h:150
Epetra_Import
Epetra_Import: This class builds an import object for efficient importing of off-processor elements...
Definition:
Epetra_Import.h:71
Epetra_Comm
Epetra_Comm: The Epetra Communication Abstract Base Class.
Definition:
Epetra_Comm.h:81
Epetra_Operator.h
Epetra_Operator::NormInf
virtual double NormInf() const =0
Returns the infinity norm of the global matrix.
Epetra_Operator
Epetra_Operator: A pure virtual class for using real-valued double-precision operators.
Definition:
Epetra_Operator.h:68
Solve
int Solve(int, TYPE *, TYPE *, TYPE *)
Epetra_SrcDistObject
Epetra_SrcDistObject: A class for supporting flexible source distributed objects for import/export op...
Definition:
Epetra_SrcDistObject.h:71
Epetra_RowMatrix
Epetra_RowMatrix: A pure virtual class for using real-valued double-precision row matrices...
Definition:
Epetra_RowMatrix.h:76
Epetra_ConfigDefs.h
Generated on Fri Dec 20 2024 09:21:43 for Epetra Package Browser (Single Doxygen Collection) by
1.8.5