Amesos Package Browser (Single Doxygen Collection)
Development
|
Amesos_Component: A pure virtual class for direct solvers to be used within Amesos_Merikos to form a parallel direct solver. More...
#include <Amesos_Component.h>
virtual | ~Amesos_Component () |
Destructor. More... | |
virtual int | PartialFactorization ()=0 |
Performs partial factorization on the matrix A. More... | |
virtual int | Lsolve ()=0 |
Solves L X = B (or LT x = B) More... | |
virtual int | Usolve ()=0 |
Solves L X = B (or LT x = B) More... | |
virtual int | SetRowPermutation (int *RowPermutation)=0 |
SetRowPermutation. More... | |
virtual int | SetColumnPermutation (int *ColumnPermutation)=0 |
SetColumnPermutation. More... | |
virtual int | SetSubMatrixSize (int SubMatrixSize)=0 |
SetSubMatrixSize. More... | |
virtual int | GetRowPermutation (int **RowPermutation)=0 |
GetRowPermutation. More... | |
virtual int | GetColumnPermutation (int **ColumnPermutation)=0 |
GetColumnPermutation. More... | |
virtual int | GetSubMatrixSize (int *SubMatrixSize)=0 |
GetSubMatrixSize. More... | |
virtual int | GetSchurComplement (Epetra_CrsMatrix *SchurComplement)=0 |
GetSchurComplement. More... | |
Amesos_Component: A pure virtual class for direct solvers to be used within Amesos_Merikos to form a parallel direct solver.
<p>The Amesos_Component interface specifies what Amesos_Merikos needs.
Any Amesos class that implements Amesos_Component can be used by Amesos_Merikos to perform partial solves on subblocks of the matrix.
<H1>Member functions added by Amesos_Component.</H1> <ul> <li>PartialFactorization() <ul> <li>PartialFactorization performs factors at most the
first SubMatrixSize_ rows and columns. PartialFactorization delays the factorization of any columns which generate unstable (i.e. too small) pivots. PartialFactorization computes and returns the schur complement. PartialFactorization does not need a symbolic factorization phase. It uses the permutation given by SetRowPermutation. Lsolve performs a raw partial solve, treating the unfactored rows and columns as the identity without row or column permutation. Usolve performs a raw partial solve, treating the unfactored rows and columns as the identity without row or column permutation. SetRowPermutation - sets the row permutation GetRowPermutation - gets the row permutation SetColumnPermutation - sets the column permutation GetColumnPermutation - gets the column permutation SetSubMatrixSize - Sets the maximum number of rows (and columns) to factor. GetSubMatrixSize - Returns the number of rows (and columns) actually factored. SchurComplement - Returns the Schur complement, i.e. L21(SubMatrixSize+1:MatrixSize,1:SubMatrixSize) * U12(1:SubMatrixSize,SubMatrixSize+1:MatrixSize)
<H1>Usage Examples</H1> <H2>Basic calling sequence</H2>
Epetra_LinearProblem Problem(A,X,B); Amesos_SolverName Solver(Problem);
Solver.PartialFactorization() ; ... Ancestor factorization Solver.Lsolve() ; ... Ancestor solves Solver.Usolve() ;
<H2>Preconditions:
Every Amesos_SolverName class should accept an Epetra_LinearProblem
Definition at line 118 of file Amesos_Component.h.
|
inlinevirtual |
Destructor.
Definition at line 124 of file Amesos_Component.h.
|
pure virtual |
Performs partial factorization on the matrix A.
Partial Factorization perfom
|
pure virtual |
|
pure virtual |
|
pure virtual |
SetRowPermutation.
|
pure virtual |
SetColumnPermutation.
|
pure virtual |
SetSubMatrixSize.
|
pure virtual |
GetRowPermutation.
RowPermutation reflects any row permutations performed by PartialFactorization(). Note: It is not yet clear whether this row permutation includes the RowPermuation upon input or whether it returns only the row permuations performed by the most recent call to PartialFactorization(). In other words, in the absence of pivoting, RowPermutation might be identical to that given by SetRowPermutation() or it might be the identity permutation.
|
pure virtual |
GetColumnPermutation.
ColumnPermutation reflects any row permutations performed by PartialFactorization(). Note: It is not yet clear whether this row permutation includes the ColumnPermuation upon input or whether it returns only the row permuations performed by the most recent call to PartialFactorization(). In other words, in the absence of pivoting, ColumnPermutation might be identical to that given by SetColumnPermutation() or it might be the identity permutation.
|
pure virtual |
GetSubMatrixSize.
|
pure virtual |
GetSchurComplement.