#include <Ma27Solver.h>
Inheritance diagram for Ma27SolverBase:
Public Methods | |
Ma27SolverBase (int n, int nnz) | |
double | thresholdPivoting () |
double | treatAsZero () |
virtual void | copyMatrixElements (double fact[], int lfact)=0 |
virtual void | getIndices (int irowM[], int jcolM[])=0 |
virtual void | diagonalChanged (int idiag, int extent) |
virtual void | matrixChanged () |
virtual void | basicSolve (double drhs[], int n) |
virtual void | solve (OoqpVector &rhs)=0 |
virtual | ~Ma27SolverBase () |
Protected Methods | |
int | ierror () |
virtual void | firstCall () |
Protected Attributes | |
double | precision |
int * | irowM |
int * | jcolM |
double * | fact |
int | n |
int | nnz |
int | la |
int * | ikeep |
int * | iw |
int | liw |
int * | iw1 |
int * | iw2 |
int | nsteps |
int | maxfrt |
double * | w |
double | ipessimism |
double | rpessimism |
|
base class constructor. Allocates values for kTreatAsZero, kThresholdPivoting, kThresholdPivotingMax, kThresholdPivotingFactor, kPrecision, ipessimism,rpessimism |
|
destructor |
|
version of the main solve routine that takes argument as an array of doubles
|
|
copy elements from matrix into the fact data structure, in preparation for factorization (or refactorization). Implemented in Ma27Solver. |
|
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 |
|
change format for row/column index matrices, in preparation for call to MA27 FORTRAN routines
Implemented in Ma27Solver. |
|
ierror, used by ma27 to send context-specific supplimental info to the user |
|
called if some elements of the matrix have changed. Triggers a refactorization of the matrix, if necessary. Implements DoubleLinearSolver. |
|
version of the main solve routine that takes argument as an OoqpVector
Implements DoubleLinearSolver. Implemented in Ma27Solver. |
|
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 "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. |
|
nonzero element of the factors |
|
pivot sequence and temporary storage information |
|
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 |
|
pivot sequence and temporary storage information |
|
pivot sequence and temporary storage information |
|
pivot sequence and temporary storage information |
|
index array for the factorization |
|
length of the array containing factors; may be increased during the numerical factorization if the estimate obtained during the symbolic factorization proves to be inadequate. |
|
pivot sequence and temporary storage information |
|
pivot sequence and temporary storage information |
|
dimension of the whole matrix |
|
number of nonzeros in the matrix |
|
pivot sequence and temporary storage information |
|
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. |
|
amounts by which to increase allocated factorization space when inadequate space is detected. ipessimism is for array "iw", rpessimism is for the array "fact". |
|
temporary storage for the factorization |