66 #ifndef AMESOS_SUPERLU_H
67 #define AMESOS_SUPERLU_H
199 std::vector<double>
R_;
200 std::vector<double>
C_;
int NumSymbolicFact_
Number of symbolic factorization phases.
void PrintStatus() const
Prints status information.
Amesos_Control: Container for some control variables.
std::vector< int > etree_
Teuchos::RCP< Epetra_Map > SerialMap_
Contains a map with all elements assigned to processor 0.
std::vector< double > Aval_
int SetParameters(Teuchos::ParameterList &ParameterList)
Updates internal variables.
Epetra_RowMatrix * SerialMatrix_
For parallel runs, stores the matrix defined on SerialMap_.
int Solve()
Solves A X = B (or AT x = B)
std::vector< int > perm_c_
std::vector< int > Ap_
stores the matrix in SuperLU format.
const Epetra_Map & SerialMap() const
Returns a reference to the serial map.
const Epetra_Import & ImportToSerial() const
Returns a reference to the importer.
int Factor()
Factors the matrix, no previous factorization available.
int PerformNumericFactorization()
PerformNumericFactorization - Call Superlu to perform numeric factorization.
int MtxConvTime_
Quick access pointer to internal timing data.
bool UseTranspose_
If true, solve the linear system with the transpose of the matrix.
Amesos_Superlu: Amesos interface to Xioye Li's SuperLU 3.0 serial code.
long long NumGlobalNonzeros_
Global number of nonzeros in the matrix.
int NumNumericFact_
Number of numeric factorization phases.
int ReFactor()
Re-factors the matrix.
bool UseTranspose() const
Returns the current UseTranspose setting.
int NumSolve_
Number of solves.
void GetTiming(Teuchos::ParameterList &TimingParameterList) const
Extracts timing information from the current solver and places it in the parameter list...
bool MatrixShapeOK() const
Returns true if the solver can handle this matrix shape.
Amesos_Superlu(const Epetra_LinearProblem &LinearProblem)
Amesos_Superlu Constructor.
const Epetra_LinearProblem * GetProblem() const
Returns the Epetra_LinearProblem.
int SymbolicFactorization()
Performs SymbolicFactorization on the matrix A.
void GetTiming(Teuchos::ParameterList &list) const
Load up the current timing information into the parameter list.
int NumSolve() const
Returns the number of solves performed by this object.
Amesos_Status: Container for some status variables.
std::vector< double > ferr_
Amesos_Time: Container for timing information.
int SetUseTranspose(bool useTheTranspose)
If set true, X will be set to the solution of AT X = B (not A X = B)
Epetra_RowMatrix * RowMatrixA_
Pointer to the linear system matrix.
const Epetra_Comm & Comm() const
Returns a pointer to the Epetra_Comm communicator associated with this operator.
double * DummyArray
stores the matrix in SuperLU format.
int ConvertToSerial()
Sets up the matrix on processor 0.
int NumNumericFact() const
Returns the number of numeric factorizations performed by this object.
Teuchos::RCP< Epetra_CrsMatrix > SerialCrsMatrixA_
Contains a matrix with all rows assigned to processor 0.
Teuchos::RCP< Epetra_Import > ImportToSerial_
Importer from distributed to SerialMap_.
SLUData * data_
Main structure for SuperLU.
~Amesos_Superlu()
Amesos_Superlu Destructor.
std::vector< double > berr_
std::vector< int > perm_r_
bool FactorizationOK_
If true, the factorization has been successfully computed.
int iam_
Process number (i.e. Comm().MyPID()
void PrintTiming() const
Prints timing information.
Amesos_BaseSolver: A pure virtual class for direct solution of real-valued double-precision operators...
long long NumGlobalRows_
Global size of the matrix.
Amesos_NoCopiable: Simple class to prevent the usage of copy constructor and operator =...
std::vector< int > Ai_
stores the matrix in SuperLU format.
const Epetra_LinearProblem * Problem_
Pointer to the user's defined linear problem.
Amesos_Utils: Collections of basic utilities.
int NumericFactorization()
Performs NumericFactorization on the matrix A.
int NumSymbolicFact() const
Returns the number of symbolic factorizations performed by this object.