40 #ifndef AMESOS_UMFPACK_H
41 #define AMESOS_UMFPACK_H
229 std::vector <int>
Ap;
230 std::vector <int>
Ai;
std::vector< int > Ap
Ap, Ai, Aval form the compressed row storage used by Umfpack.
int numentries_
Number of non-zero entries in Problem_->GetOperator()
int NumSymbolicFact_
Number of symbolic factorization phases.
Amesos_Control: Container for some control variables.
void GetTiming(Teuchos::ParameterList &TimingParameterList) const
Extracts timing information from the current solver and places it in the parameter list...
int PerformSymbolicFactorization()
int MtxConvTime_
Quick access pointers to internal timer data.
int SetUseTranspose(bool UseTranspose_in)
If set true, X will be set to the solution of AT X = B (not A X = B)
const Epetra_LinearProblem * Problem_
Pointer to the linear problem to solve.
void * Numeric
Umfpack internal opaque object.
const Epetra_CrsMatrix & SerialCrsMatrix() const
int NumSolve() const
Returns the number of solves performed by this object.
Teuchos::RCP< Epetra_CrsMatrix > SerialCrsMatrixA_
int NumNumericFact_
Number of numeric factorization phases.
~Amesos_Umfpack(void)
Amesos_Umfpack Destructor.
int ConvertToSerial(const bool FirstTime)
Converts matrix to a serial Epetra_CrsMatrix.
void PrintStatus() const
Prints information about the factorization and solution phases.
const Epetra_Comm & Comm() const
Returns a pointer to the Epetra_Comm communicator associated with this operator.
const Epetra_LinearProblem * GetProblem() const
Returns the Epetra_LinearProblem.
int NumSolve_
Number of solves.
int NumGlobalElements_
Number of rows and columns in the Problem_->GetOperator()
int SymbolicFactorization()
Performs SymbolicFactorization on the matrix A.
void GetTiming(Teuchos::ParameterList &list) const
Load up the current timing information into the parameter list.
Epetra_RowMatrix * Matrix()
Returns a pointer to the linear system matrix.
Amesos_Status: Container for some status variables.
Teuchos::RCP< Epetra_Import > ImportToSerial_
Importer from distributed to serial (all rows on process 0).
Amesos_Time: Container for timing information.
Epetra_RowMatrix * SerialMatrix_
Points to a Serial Copy of A.
const Epetra_Map & SerialMap() const
std::vector< double > Aval
Amesos_Umfpack(const Epetra_LinearProblem &LinearProblem)
Amesos_Umfpack Constructor.
int ConvertToUmfpackCRS()
bool MatrixShapeOK() const
Returns true if UMFPACK can handle this matrix shape.
double Rcond_
Reciprocal condition number estimate.
int NumSymbolicFact() const
Returns the number of symbolic factorizations performed by this object.
int Solve()
Solves A X = B (or AT x = B)
int PerformNumericFactorization()
int NumericFactorization()
Performs NumericFactorization on the matrix A.
bool UseTranspose_
If true, solve the problem with the transpose.
double GetRcond() const
Returns an estimate of the reciprocal of the condition number.
const Epetra_Import & Importer() const
Epetra_Operator * GetOperator() const
int NumNumericFact() const
Returns the number of numeric factorizations performed by this object.
int IsLocal_
1 if Problem_->GetOperator() is stored entirely on process 0
void PrintTiming() const
Prints timing information.
Amesos_BaseSolver: A pure virtual class for direct solution of real-valued double-precision operators...
bool RcondValidOnAllProcs_
int SetParameters(Teuchos::ParameterList &ParameterList)
Updates internal variables.
Class Amesos_Umfpack: An object-oriented wrapper for UMFPACK.
Amesos_NoCopiable: Simple class to prevent the usage of copy constructor and operator =...
Epetra_CrsMatrix & SerialCrsMatrix()
bool UseTranspose() const
Returns the current UseTranspose setting.
Teuchos::RCP< Epetra_Map > SerialMap_
Points to a Serial Map (unused if IsLocal == 1 )
Amesos_Utils: Collections of basic utilities.
void * Symbolic
Umfpack internal opaque object.