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