Amesos Package Browser (Single Doxygen Collection)
Development
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Amesos_ComponentBaseSolver.h
Go to the documentation of this file.
1
/*
2
I think that Amesos_Component should be an additional interface and
3
hence functions which do not differ from the Amesos_BaseSolver class
4
are not included here.
5
*/
6
/*
7
// @HEADER
8
// ***********************************************************************
9
//
10
// Amesos: Direct Sparse Solver Package
11
// Copyright (2004) Sandia Corporation
12
//
13
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
14
// license for use of this work by or on behalf of the U.S. Government.
15
//
16
// This library is free software; you can redistribute it and/or modify
17
// it under the terms of the GNU Lesser General Public License as
18
// published by the Free Software Foundation; either version 2.1 of the
19
// License, or (at your option) any later version.
20
//
21
// This library is distributed in the hope that it will be useful, but
22
// WITHOUT ANY WARRANTY; without even the implied warranty of
23
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24
// Lesser General Public License for more details.
25
//
26
// You should have received a copy of the GNU Lesser General Public
27
// License along with this library; if not, write to the Free Software
28
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
29
// USA
30
// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
31
//
32
// ***********************************************************************
33
// @HEADER
34
*/
35
36
#ifndef _AMESOS_COMPONENTBASESOLVER_H_
37
#define _AMESOS_COMPONENTBASESOLVER_H_
38
39
#include "Teuchos_ParameterList.hpp"
40
#include "Epetra_LinearProblem.h"
41
class
Epetra_LinearProblem;
42
class
Epetra_MultiVector;
43
class
Epetra_Map;
44
class
Epetra_Comm;
45
47
111
112
class
Amesos_ComponentBaseSolver
:
public
virtual
Amesos_BaseSolver
{
113
114
public
:
115
117
118
virtual
~Amesos_ComponentBaseSolver
() {};
120
122
123
125
130
virtual
int
PartialFactorization
() = 0;
131
133
138
virtual
int
Lsolve
() = 0;
139
141
146
*/
147
virtual
int
LsolveStart
() = 0;
149
152
virtual
int
LsolvePart
(
int
begin,
int
end) = 0;
153
155
159
160
virtual
int
Usolve
() = 0;
161
162
164
169
*/
170
virtual
int
UsolveStart
() = 0;
172
175
virtual
int
UsolvePart
(
int
begin,
int
end) = 0;
176
178
183
185
187
virtual
int
SetRowPermutation
(
int
* RowPermutation ) = 0;
188
190
virtual
int
SetColumnPermutation
(
int
* ColumnPermutation ) = 0;
191
193
virtual
int
SetSubMatrixSize
(
int
SubMatrixSize ) = 0;
194
196
207
virtual
int
GetRowPermutation
(
int
** RowPermutation ) = 0;
208
210
221
virtual
int
GetColumnPermutation
(
int
** ColumnPermutation ) = 0;
222
224
/*
225
SubMatrixSize is the number of rows and columns in the matrix
226
that was factored. (i.e. the number of columns of L and the
227
number of rows of U)
228
*/
229
virtual
int
GetSubMatrixSize
(
int
* SubMatrixSize ) = 0;
230
232
/*
233
SchurComplement is a square matrix with each side having size
234
MatrixSize-SubMatrixSize which contains the Schur
235
complement based on the matrices L and U, i.e.
236
L(SubMatrixSize+1:MatrixSize,1:SubMatrixSize) *
237
U(1:SubMatrixSize,SubMatrixSize+1:MatrixSize)
238
*/
239
virtual
int
GetSchurComplement
( Epetra_CrsMatrix* SchurComplement ) = 0;
240
242
243
};
244
245
#endif
/* _AMESOS_COMPONENTBASESOLVER_H_ */
Amesos_BaseSolver
Amesos_BaseSolver: A pure virtual class for direct solution of real-valued double-precision operators...
Definition
Amesos_BaseSolver.h:225
Amesos_ComponentBaseSolver
Amesos_ComponentBaseSolver: A pure virtual class for direct solvers to be used within Amesos_Merikos ...
Definition
Amesos_ComponentBaseSolver.h:112
Amesos_ComponentBaseSolver::LsolveStart
*virtual int LsolveStart()=0
Solves the triangular part of L X1 = B (or LT x = B).
Amesos_ComponentBaseSolver::PartialFactorization
virtual int PartialFactorization()=0
Performs partial factorization on the matrix A.
Amesos_ComponentBaseSolver::GetSchurComplement
virtual int GetSchurComplement(Epetra_CrsMatrix *SchurComplement)=0
GetSchurComplement.
Amesos_ComponentBaseSolver::GetColumnPermutation
virtual int GetColumnPermutation(int **ColumnPermutation)=0
GetColumnPermutation.
Amesos_ComponentBaseSolver::Lsolve
virtual int Lsolve()=0
Solves L X = B (or LT x = B).
Amesos_ComponentBaseSolver::SetSubMatrixSize
virtual int SetSubMatrixSize(int SubMatrixSize)=0
SetSubMatrixSize.
Amesos_ComponentBaseSolver::UsolveStart
*virtual int UsolveStart()=0
Solves the triangular part of U X1 = B (or LT x = B).
Amesos_ComponentBaseSolver::GetRowPermutation
virtual int GetRowPermutation(int **RowPermutation)=0
GetRowPermutation.
Amesos_ComponentBaseSolver::LsolvePart
virtual int LsolvePart(int begin, int end)=0
Computes L[begin..end,:] X1.
Amesos_ComponentBaseSolver::GetSubMatrixSize
virtual int GetSubMatrixSize(int *SubMatrixSize)=0
GetSubMatrixSize.
Amesos_ComponentBaseSolver::Usolve
virtual int Usolve()=0
Solves U X = B (or UT x = B).
Amesos_ComponentBaseSolver::SetRowPermutation
virtual int SetRowPermutation(int *RowPermutation)=0
Solves U X = B (or UT x = B).
Amesos_ComponentBaseSolver::UsolvePart
virtual int UsolvePart(int begin, int end)=0
Computes U[:,begin..end] X1.
Amesos_ComponentBaseSolver::~Amesos_ComponentBaseSolver
virtual ~Amesos_ComponentBaseSolver()
Destructor.
Definition
Amesos_ComponentBaseSolver.h:118
Amesos_ComponentBaseSolver::SetColumnPermutation
virtual int SetColumnPermutation(int *ColumnPermutation)=0
SetColumnPermutation.
Generated by
1.17.0