#include <Ma57Solver.h>
Inheritance diagram for Ma57Solver:
Public Methods | |
Ma57Solver (SparseSymMatrix *sgm) | |
virtual void | diagonalChanged (int idiag, int extent) |
virtual void | matrixChanged () |
virtual void | solve (OoqpVector &rhs) |
double | setTreatAsZero () |
double | setThresholdPivoting () |
virtual | ~Ma57Solver () |
Protected Methods | |
virtual void | firstCall () |
Protected Attributes | |
double | kThresholdPivoting |
double | kThresholdPivotingMax |
double | kThresholdPivotingFactor |
double | kTreatAsZero |
double | kPrecision |
int * | irowM |
int * | jcolM |
double * | M |
int | n |
int | nnz |
int | lkeep |
int * | keep |
int | lifact |
int * | ifact |
int | lfact |
double | ipessimism |
double | rpessimism |
int | freshFactor |
SparseStorageHandle | mStorage |
|
sets mStorage to refer to the argument sgm |
|
destructor |
|
called if the diagonal elements of the matrix have changed. Triggers a refactorization of the matrix, if necessary.
Implements DoubleLinearSolver. |
|
called the very first time a matrix is factored. Allocates space for the factorization and performs ordering |
|
called if some elements of the matrix have changed. Triggers a refactorization of the matrix, if necessary. Implements DoubleLinearSolver. |
|
set the Pivoting Threshold parameter in the MA27 data structures to the current value of kThresholdPivoting |
|
set the Treat As Zero parameter in the MA27 data structures to the current value of kTreatAsZero |
|
solves a linear system.
Implements DoubleLinearSolver. |
|
used to indicate when we need a fresh factorization (when iterative refinement has failed to improve the precision of the computed solution satisfactorily |
|
temporary storage for the factorization process |
|
amounts by which to increase allocated factorization space when inadequate space is detected. ipessimism is for array "iw", rpessimism is for the array "fact". |
|
index array for the factorization |
|
index array for the factorization |
|
temporary storage |
|
precision we demand from the linear system solver. If it isn't attained on the first solve, we use iterative refinement and possibly refactorization with a higher value of kThresholdPivoting. |
|
the Threshold Pivoting parameter, stored as U in the ma27dd common block. Takes values in the range [0,1]. Larger values enforce greater stability in the factorization as they insist on larger pivots. Smaller values preserve sparsity at the cost of using smaller pivots. |
|
the factor in the range (1,inf) by which kThresholdPivoting is increased when it is found to be inadequate. |
|
the Threshold Pivoting parameter may need to be increased during the algorithm if poor precision is obtained from the linear solves. kThresholdPivoting indicates the largest value we are willing to tolerate. |
|
the "Treat As Zero" parameter, stored as pivtol in the common block ma27td. The factorization will not accept a pivot whose absolute value is less than this parameter as a 1x1 pivot or as the off-diagonal in a 2x2 pivot. |
|
temporary storage for the factorization process |
|
temporary storage for the factorization process |
|
temporary storage |
|
storage for the original matrix |
|
store as a sparse symmetric matrix |
|
dimension of the whole matrix |
|
number of nonzeros in the matrix |
|
amounts by which to increase allocated factorization space when inadequate space is detected. ipessimism is for array "iw", rpessimism is for the array "fact". |