Amesos Package Browser (Single Doxygen Collection)
Development
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Amesos_Component.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_Component
{
113
114
public
:
115
117
118
virtual
~Amesos_Component
() {};
120
122
123
125
130
virtual
int
PartialFactorization
() = 0;
131
133
138
virtual
int
Lsolve
() = 0;
139
141
146
virtual
int
Usolve
() = 0;
147
149
151
153
virtual
int
SetRowPermutation
(
int
* RowPermutation ) = 0;
154
156
virtual
int
SetColumnPermutation
(
int
* ColumnPermutation ) = 0;
157
159
virtual
int
SetSubMatrixSize
(
int
SubMatrixSize ) = 0;
160
162
173
virtual
int
GetRowPermutation
(
int
** RowPermutation ) = 0;
174
176
187
virtual
int
GetColumnPermutation
(
int
** ColumnPermutation ) = 0;
188
190
/*
191
SubMatrixSize is the number of rows and columns in the matrix
192
that was factored. (i.e. the number of columns of L and the
193
number of rows of U)
194
*/
195
virtual
int
GetSubMatrixSize
(
int
* SubMatrixSize ) = 0;
196
198
/*
199
SchurComplement is a square matrix with each side having size
200
MatrixSize-SubMatrixSize which contains the Schur
201
complement based on the matrices L and U, i.e.
202
L(SubMatrixSize+1:MatrixSize,1:SubMatrixSize) *
203
U(1:SubMatrixSize,SubMatrixSize+1:MatrixSize)
204
*/
205
virtual
int
GetSchurComplement
( Epetra_CrsMatrix* SchurComplement ) = 0;
206
208
209
};
210
211
#endif
/* _AMESOS_COMPONENTBASESOLVER_H_ */
Amesos_Component
Amesos_Component: A pure virtual class for direct solvers to be used within Amesos_Merikos to form a ...
Definition
Amesos_Component.h:112
Amesos_Component::SetSubMatrixSize
virtual int SetSubMatrixSize(int SubMatrixSize)=0
SetSubMatrixSize.
Amesos_Component::GetRowPermutation
virtual int GetRowPermutation(int **RowPermutation)=0
GetRowPermutation.
Amesos_Component::SetColumnPermutation
virtual int SetColumnPermutation(int *ColumnPermutation)=0
SetColumnPermutation.
Amesos_Component::SetRowPermutation
virtual int SetRowPermutation(int *RowPermutation)=0
SetRowPermutation.
Amesos_Component::GetSubMatrixSize
virtual int GetSubMatrixSize(int *SubMatrixSize)=0
GetSubMatrixSize.
Amesos_Component::GetSchurComplement
virtual int GetSchurComplement(Epetra_CrsMatrix *SchurComplement)=0
GetSchurComplement.
Amesos_Component::Lsolve
virtual int Lsolve()=0
Solves L X = B (or LT x = B).
Amesos_Component::PartialFactorization
virtual int PartialFactorization()=0
Performs partial factorization on the matrix A.
Amesos_Component::Usolve
virtual int Usolve()=0
Solves L X = B (or LT x = B).
Amesos_Component::~Amesos_Component
virtual ~Amesos_Component()
Destructor.
Definition
Amesos_Component.h:118
Amesos_Component::GetColumnPermutation
virtual int GetColumnPermutation(int **ColumnPermutation)=0
GetColumnPermutation.
Generated by
1.17.0