PIPS-NLP
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
UmfPackSolver Class Reference

#include <UmfPackSolver.h>

Inheritance diagram for UmfPackSolver:
DoubleLinearSolver

Public Member Functions

virtual ~UmfPackSolver ()
 
 UmfPackSolver (SparseGenMatrix *sgm)
 
 UmfPackSolver (SparseSymMatrix *sgm)
 
 UmfPackSolver (SparseSymMatrix *sgm, const int numOfNegEigVal_in)
 
virtual void diagonalChanged (int idiag, int extent)
 
virtual int matrixChanged ()
 
virtual void solve (OoqpVector &rhs)
 
virtual void solve (GenMatrix &rhs)
 
virtual void solveTrans (OoqpVector &rhs_in)
 
virtual void solveTrans (GenMatrix &rhs_in)
 
virtual void Lsolve (OoqpVector &x)
 
virtual void Dsolve (OoqpVector &x)
 
virtual void Ltsolve (OoqpVector &x)
 
void freeSymFactInfo ()
 
void freeNumFactInfo ()
 
- Public Member Functions inherited from DoubleLinearSolver
 DoubleLinearSolver ()
 
virtual ~DoubleLinearSolver ()
 

Public Attributes

bool firstCallFlag
 
double umf_Control [UMFPACK_CONTROL]
 
double umf_Info [UMFPACK_INFO]
 
void * Symbolic
 
void * Numeric
 
int * irowM
 
int * kcolbegM
 
int * eleMap
 
double * eleM
 
int matrixSingular
 
int n
 
int nnz
 
SparseStorageHandle mStorage
 
- Public Attributes inherited from DoubleLinearSolver
int negEigVal
 
int KryIter
 

Protected Member Functions

virtual void firstCall ()
 
virtual void firstCall_Sym ()
 

Protected Attributes

int isSymm
 

Private Member Functions

 UmfPackSolver ()
 
void solve (int solveType, OoqpVector &rhs)
 

Detailed Description

implements the linear solver class using the HSL UmfPack solver

Constructor & Destructor Documentation

UmfPackSolver::UmfPackSolver ( )
inlineprivate
UmfPackSolver::~UmfPackSolver ( )
virtual
UmfPackSolver::UmfPackSolver ( SparseGenMatrix sgm)

sets mStorage to refer to the argument sgm

UmfPackSolver::UmfPackSolver ( SparseSymMatrix sgm)
UmfPackSolver::UmfPackSolver ( SparseSymMatrix sgm,
const int  numOfNegEigVal_in 
)

Member Function Documentation

virtual void UmfPackSolver::diagonalChanged ( int  idiag,
int  extent 
)
inlinevirtual

called if the diagonal elements of the matrix have changed. Triggers a refactorization of the matrix, if necessary.

Parameters
idiagindex of the first diagonal element that changed
extentthe number of diagonal element that changed.

Implements DoubleLinearSolver.

virtual void UmfPackSolver::Dsolve ( OoqpVector x)
inlinevirtual

Reimplemented from DoubleLinearSolver.

void UmfPackSolver::firstCall ( )
protectedvirtual
void UmfPackSolver::firstCall_Sym ( )
protectedvirtual
void UmfPackSolver::freeNumFactInfo ( )
inline
void UmfPackSolver::freeSymFactInfo ( )
inline
void UmfPackSolver::Lsolve ( OoqpVector x)
virtual

Reimplemented from DoubleLinearSolver.

void UmfPackSolver::Ltsolve ( OoqpVector x)
virtual

Reimplemented from DoubleLinearSolver.

int UmfPackSolver::matrixChanged ( )
virtual

called if some elements of the matrix have changed. Triggers a refactorization of the matrix, if necessary.

Implements DoubleLinearSolver.

void UmfPackSolver::solve ( OoqpVector x)
virtual

solves a linear system.

Parameters
xon entry the right hand side of the system to be solved. On exit, the solution.

Implements DoubleLinearSolver.

void UmfPackSolver::solve ( GenMatrix rhs)
virtual

Reimplemented from DoubleLinearSolver.

void UmfPackSolver::solve ( int  solveType,
OoqpVector rhs 
)
private
void UmfPackSolver::solveTrans ( OoqpVector rhs_in)
virtual

Reimplemented from DoubleLinearSolver.

void UmfPackSolver::solveTrans ( GenMatrix rhs_in)
virtual

Member Data Documentation

double* UmfPackSolver::eleM

storage for the original matrix

int * UmfPackSolver::eleMap
bool UmfPackSolver::firstCallFlag
int* UmfPackSolver::irowM
int UmfPackSolver::isSymm
protected
int * UmfPackSolver::kcolbegM
int UmfPackSolver::matrixSingular
SparseStorageHandle UmfPackSolver::mStorage

store as a sparse symmetric matrix

int UmfPackSolver::n

dimension of the whole matrix

int UmfPackSolver::nnz

number of nonzeros in the matrix

void * UmfPackSolver::Numeric
void* UmfPackSolver::Symbolic
double UmfPackSolver::umf_Control[UMFPACK_CONTROL]
double UmfPackSolver::umf_Info[UMFPACK_INFO]

The documentation for this class was generated from the following files: