36#ifndef _AMESOS_COMPONENTBASESOLVER_H_
37#define _AMESOS_COMPONENTBASESOLVER_H_
39#include "Teuchos_ParameterList.hpp"
40#include "Epetra_LinearProblem.h"
41class Epetra_LinearProblem;
42class Epetra_MultiVector;
Amesos_BaseSolver: A pure virtual class for direct solution of real-valued double-precision operators...
Amesos_ComponentBaseSolver: A pure virtual class for direct solvers to be used within Amesos_Merikos ...
*virtual int LsolveStart()=0
Solves the triangular part of L X1 = B (or LT x = B)
virtual int PartialFactorization()=0
Performs partial factorization on the matrix A.
virtual int GetSchurComplement(Epetra_CrsMatrix *SchurComplement)=0
GetSchurComplement.
virtual int GetColumnPermutation(int **ColumnPermutation)=0
GetColumnPermutation.
virtual int Lsolve()=0
Solves L X = B (or LT x = B)
virtual int SetSubMatrixSize(int SubMatrixSize)=0
SetSubMatrixSize.
*virtual int UsolveStart()=0
Solves the triangular part of U X1 = B (or LT x = B)
virtual int GetRowPermutation(int **RowPermutation)=0
GetRowPermutation.
virtual int LsolvePart(int begin, int end)=0
Computes L[begin..end,:] X1.
virtual int GetSubMatrixSize(int *SubMatrixSize)=0
GetSubMatrixSize.
virtual int Usolve()=0
Solves U X = B (or UT x = B)
virtual int SetRowPermutation(int *RowPermutation)=0
Solves U X = B (or UT x = B)
virtual int UsolvePart(int begin, int end)=0
Computes U[:,begin..end] X1.
virtual ~Amesos_ComponentBaseSolver()
Destructor.
virtual int SetColumnPermutation(int *ColumnPermutation)=0
SetColumnPermutation.