Amesos Package Browser (Single Doxygen Collection) Development
Amesos_ComponentBaseSolver Class Reference

Amesos_ComponentBaseSolver: A pure virtual class for direct solvers to be used within Amesos_Merikos to form a parallel direct solver. More...

#include <Amesos_ComponentBaseSolver.h>

Inheritance diagram for Amesos_ComponentBaseSolver:
Inheritance graph
[legend]

List of all members.

virtual ~Amesos_ComponentBaseSolver ()
 Destructor.
virtual int PartialFactorization ()=0
 Performs partial factorization on the matrix A.
virtual int Lsolve ()=0
 Solves L X = B (or LT x = B)
*virtual int LsolveStart ()=0
 Solves the triangular part of L X1 = B (or LT x = B)
virtual int LsolvePart (int begin, int end)=0
 Computes L[begin..end,:] X1.
virtual int Usolve ()=0
 Solves U X = B (or UT x = B)
*virtual int UsolveStart ()=0
 Solves the triangular part of U X1 = B (or LT x = B)
virtual int UsolvePart (int begin, int end)=0
 Computes U[:,begin..end] X1.
virtual int SetRowPermutation (int *RowPermutation)=0
 Solves U X = B (or UT x = B)
virtual int SetColumnPermutation (int *ColumnPermutation)=0
 SetColumnPermutation.
virtual int SetSubMatrixSize (int SubMatrixSize)=0
 SetSubMatrixSize.
virtual int GetRowPermutation (int **RowPermutation)=0
 GetRowPermutation.
virtual int GetColumnPermutation (int **ColumnPermutation)=0
 GetColumnPermutation.
virtual int GetSubMatrixSize (int *SubMatrixSize)=0
 GetSubMatrixSize.
virtual int GetSchurComplement (Epetra_CrsMatrix *SchurComplement)=0
 GetSchurComplement.

Detailed Description

Amesos_ComponentBaseSolver: A pure virtual class for direct solvers to be used within Amesos_Merikos to form a parallel direct solver.

The Amesos_ComponentBaseSolver interface specifies what Amesos_Merikos needs. Any Amesos class that implements Amesos_ComponentBaseSolver can be used by Amesos_Merikos to perform partial solves on subblocks of the matrix.

Member functions added by Amesos_ComponentBaseSolver.

Usage Examples

Basic calling sequence

    Epetra_LinearProblem Problem(A,X,B);
    Amesos_SolverName Solver(Problem);
    Solver.PartialFactorization() ; 
      ... Ancestor factorization
    Solver.Lsolve() ; 
      ... Ancestor solves
    Solver.Usolve() ; 

Preconditions: An ordering Postconditions: Constructor requirements

Every Amesos_SolverName class should accept an Epetra_LinearProblem

Definition at line 112 of file Amesos_ComponentBaseSolver.h.


Constructor & Destructor Documentation

virtual Amesos_ComponentBaseSolver::~Amesos_ComponentBaseSolver ( ) [inline, virtual]

Destructor.

Definition at line 118 of file Amesos_ComponentBaseSolver.h.


Member Function Documentation

virtual int Amesos_ComponentBaseSolver::PartialFactorization ( ) [pure virtual]

Performs partial factorization on the matrix A.

Partial Factorization perfom

Returns:
Integer error code, set to 0 if successful.
virtual int Amesos_ComponentBaseSolver::Lsolve ( ) [pure virtual]

Solves L X = B (or LT x = B)

Returns:
Integer error code, set to 0 if successful.
* virtual int Amesos_ComponentBaseSolver::LsolveStart ( ) [pure virtual]

Solves the triangular part of L X1 = B (or LT x = B)

Returns:
Integer error code, set to 0 if successful, -1 if unimplimented.
virtual int Amesos_ComponentBaseSolver::LsolvePart ( int  begin,
int  end 
) [pure virtual]

Computes L[begin..end,:] X1.

Returns:
Integer error code, set to 0 if successful, -1 if unimplimented.
virtual int Amesos_ComponentBaseSolver::Usolve ( ) [pure virtual]

Solves U X = B (or UT x = B)

Returns:
Integer error code, set to 0 if successful.
* virtual int Amesos_ComponentBaseSolver::UsolveStart ( ) [pure virtual]

Solves the triangular part of U X1 = B (or LT x = B)

Returns:
Integer error code, set to 0 if successful, -1 if unimplimented.
virtual int Amesos_ComponentBaseSolver::UsolvePart ( int  begin,
int  end 
) [pure virtual]

Computes U[:,begin..end] X1.

Returns:
Integer error code, set to 0 if successful, -1 if unimplimented.
virtual int Amesos_ComponentBaseSolver::SetRowPermutation ( int *  RowPermutation) [pure virtual]

Solves U X = B (or UT x = B)

Returns:
Integer error code, set to 0 if successful. SetRowPermutation
virtual int Amesos_ComponentBaseSolver::SetColumnPermutation ( int *  ColumnPermutation) [pure virtual]

SetColumnPermutation.

virtual int Amesos_ComponentBaseSolver::SetSubMatrixSize ( int  SubMatrixSize) [pure virtual]

SetSubMatrixSize.

virtual int Amesos_ComponentBaseSolver::GetRowPermutation ( int **  RowPermutation) [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.

virtual int Amesos_ComponentBaseSolver::GetColumnPermutation ( int **  ColumnPermutation) [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.

virtual int Amesos_ComponentBaseSolver::GetSubMatrixSize ( int *  SubMatrixSize) [pure virtual]

GetSubMatrixSize.

virtual int Amesos_ComponentBaseSolver::GetSchurComplement ( Epetra_CrsMatrix SchurComplement) [pure virtual]

GetSchurComplement.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines