|
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) |
Public Member Functions inherited from DoubleLinearSolver | |
| 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 | |
Public Attributes inherited from DoubleLinearSolver | |
| 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)
1.8.11