PIPS-NLP
|
#include <PardisoSchurSolver.h>
Public Member Functions | |
virtual void | firstCall () |
void | firstSolveCall (SparseGenMatrix &R, SparseGenMatrix &A, SparseGenMatrix &C) |
PardisoSchurSolver (SparseSymMatrix *sgm) | |
PardisoSchurSolver (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 | schur_solve (SparseGenMatrix &R, SparseGenMatrix &A, SparseGenMatrix &C, DenseSymMatrix &SC) |
![]() | |
DoubleLinearSolver () | |
virtual void | solveTrans (OoqpVector &x) |
virtual void | Lsolve (OoqpVector &x) |
virtual void | Dsolve (OoqpVector &x) |
virtual void | Ltsolve (OoqpVector &x) |
virtual | ~DoubleLinearSolver () |
Protected Member Functions | |
PardisoSchurSolver () | |
void | SetUpPardisoSchurSolver (SparseSymMatrix *sgm) |
virtual | ~PardisoSchurSolver () |
Protected Attributes | |
SparseSymMatrix * | Msys |
bool | first |
bool | firstSolve |
void * | pt [64] |
int | iparm [64] |
double | dparm [64] |
int | num_threads |
int | n |
int | nSC |
int | nnz |
int * | rowptrAug |
int * | colidxAug |
double * | eltsAug |
int * | index_LowTri |
map< int, int > | diagMap |
int * | elementMap_R |
int * | elementMap_A |
int * | elementMap_C |
int | numOfNegEigVal |
double * | nvec |
Additional Inherited Members | |
![]() | |
int | negEigVal |
int | KryIter |
implements the linear solver class using the Pardiso SC solver
|
inlineprotected |
PardisoSchurSolver::PardisoSchurSolver | ( | SparseSymMatrix * | sgm | ) |
sets mStorage to refer to the argument sgm
PardisoSchurSolver::PardisoSchurSolver | ( | SparseSymMatrix * | sgm, |
const int | numOfNegEigVal_in | ||
) |
|
protectedvirtual |
|
virtual |
called if the diagonal elements of the matrix have changed. Triggers a refactorization of the matrix, if necessary.
idiag | index of the first diagonal element that changed |
extent | the number of diagonal element that changed. |
Implements DoubleLinearSolver.
|
virtual |
Reimplemented in PardisoSchur32Solver.
void PardisoSchurSolver::firstSolveCall | ( | SparseGenMatrix & | R, |
SparseGenMatrix & | A, | ||
SparseGenMatrix & | C | ||
) |
|
virtual |
called if some elements of the matrix have changed. Triggers a refactorization of the matrix, if necessary.
Implements DoubleLinearSolver.
|
virtual |
Functions specific to the Schur approach. The last argument is the Schur first stage matrix that will be updated.
|
protected |
|
virtual |
solves a linear system.
x | on entry the right hand side of the system to be solved. On exit, the solution. |
Implements DoubleLinearSolver.
Reimplemented in PardisoSchur32Solver.
|
virtual |
Reimplemented from DoubleLinearSolver.
|
protected |
|
protected |
mapping from from the diagonals of the PIPS linear systems to the diagonal elements of the (1,1) block in the augmented system
|
protected |
|
protected |
|
protected |
|
protected |
mapping from the element of the PIPS linear systems to the elements of the (1,1) block in the augmented system, hence we can update Jac
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
dimension of the PARDISO augmented system
|
protected |
number of nonzeros in the PARDISO augmented matrix
|
protected |
dimension of the Schur complement (# of rhs)
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
storage for the upper triangular (in row-major format)