40 #ifndef AMESOS_UMFPACK_H 41 #define AMESOS_UMFPACK_H 51 #include "Epetra_CrsMatrix.h" 52 #include "Epetra_LinearProblem.h" 53 #include "Epetra_Time.h" 54 #include "Epetra_Import.h" 57 #include "Epetra_MpiComm.h" 59 #include "Epetra_Comm.h" 157 return(dynamic_cast<Epetra_RowMatrix *>(
Problem_->GetOperator()));
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.
const Epetra_Comm & Comm() const
Returns a pointer to the Epetra_Comm communicator associated with this operator.
int PerformSymbolicFactorization()
const Epetra_LinearProblem * GetProblem() const
Returns the Epetra_LinearProblem.
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_Map & SerialMap() const
void GetTiming(Teuchos::ParameterList &TimingParameterList) const
Extracts timing information from the current solver and places it in the parameter list...
const Epetra_LinearProblem * Problem_
Pointer to the linear problem to solve.
void * Numeric
Umfpack internal opaque object.
bool MatrixShapeOK() const
Returns true if UMFPACK can handle this matrix shape.
const Epetra_CrsMatrix & SerialCrsMatrix() const
Teuchos::RCP< Epetra_CrsMatrix > SerialCrsMatrixA_
int NumNumericFact() const
Returns the number of numeric factorizations performed by this object.
void PrintStatus() const
Prints information about the factorization and solution phases.
double GetRcond() const
Returns an estimate of the reciprocal of the condition number.
int NumNumericFact_
Number of numeric factorization phases.
void GetTiming(Teuchos::ParameterList &list) const
Load up the current timing information into the parameter list.
int NumSymbolicFact() const
Returns the number of symbolic factorizations performed by this object.
~Amesos_Umfpack(void)
Amesos_Umfpack Destructor.
int ConvertToSerial(const bool FirstTime)
Converts matrix to a serial Epetra_CrsMatrix.
int NumSolve() const
Returns the number of solves performed by this object.
int NumSolve_
Number of solves.
int NumGlobalElements_
Number of rows and columns in the Problem_->GetOperator()
int SymbolicFactorization()
Performs SymbolicFactorization on the matrix A.
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.
std::vector< double > Aval
Amesos_Umfpack(const Epetra_LinearProblem &LinearProblem)
Amesos_Umfpack Constructor.
const Epetra_Import & Importer() const
int ConvertToUmfpackCRS()
bool UseTranspose() const
Returns the current UseTranspose setting.
double Rcond_
Reciprocal condition number estimate.
int Solve()
Solves A X = B (or AT x = B)
void PrintTiming() const
Prints timing information.
int PerformNumericFactorization()
int NumericFactorization()
Performs NumericFactorization on the matrix A.
bool UseTranspose_
If true, solve the problem with the transpose.
int IsLocal_
1 if Problem_->GetOperator() is stored entirely on process 0
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()
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.