#include <IpAugRestoSystemSolver.hpp>
This is really a decorator that changes the behavior of the AugSystemSolver to account for the known structure of the restoration phase.
Public Member Functions | |
bool | InitializeImpl (const OptionsList &options, const std::string &prefix) |
overloaded from AlgorithmStrategyObject | |
virtual ESymSolverStatus | Solve (const SymMatrix *W, double W_factor, const Vector *D_x, double delta_x, const Vector *D_s, double delta_s, const Matrix *J_c, const Vector *D_c, double delta_c, const Matrix *J_d, const Vector *D_d, double delta_d, const Vector &rhs_x, const Vector &rhs_s, const Vector &rhs_c, const Vector &rhs_d, Vector &sol_x, Vector &sol_s, Vector &sol_c, Vector &sol_d, bool check_NegEVals, Index numberOfNegEVals) |
Translate the augmented system (in the full space of the restoration variables) into the smaller space of the original variables. | |
virtual Index | NumberOfNegEVals () const |
Returns the number of negative eigenvalues from the original augmented system call. | |
virtual bool | ProvidesInertia () const |
Query whether inertia is computed by linear solver. | |
virtual bool | IncreaseQuality () |
Request to increase quality of solution for next solve. | |
Constructors/Destructors | |
AugRestoSystemSolver (AugSystemSolver &orig_aug_solver, bool skip_orig_aug_solver_init=true) | |
Constructor. | |
virtual | ~AugRestoSystemSolver () |
Default destructor. |
AugRestoSystemSolver | ( | AugSystemSolver & | orig_aug_solver, | |
bool | skip_orig_aug_solver_init = true | |||
) |
Constructor.
Here, orig_aug_solver is the object for solving the original augmented system. The flag skip_orig_aug_solver_init indicates, if the initialization call (to Initialize) should be skipped; this flag will usually be true, so that the symbolic factorization of the main algorithm will be used.
References DBG_START_METH.
~AugRestoSystemSolver | ( | ) | [virtual] |
bool InitializeImpl | ( | const OptionsList & | options, | |
const std::string & | prefix | |||
) | [virtual] |
overloaded from AlgorithmStrategyObject
Implements AugSystemSolver.
References AlgorithmStrategyObject::IpCq(), AlgorithmStrategyObject::IpData(), AlgorithmStrategyObject::IpNLP(), and AlgorithmStrategyObject::Jnlst().
ESymSolverStatus Solve | ( | const SymMatrix * | W, | |
double | W_factor, | |||
const Vector * | D_x, | |||
double | delta_x, | |||
const Vector * | D_s, | |||
double | delta_s, | |||
const Matrix * | J_c, | |||
const Vector * | D_c, | |||
double | delta_c, | |||
const Matrix * | J_d, | |||
const Vector * | D_d, | |||
double | delta_d, | |||
const Vector & | rhs_x, | |||
const Vector & | rhs_s, | |||
const Vector & | rhs_c, | |||
const Vector & | rhs_d, | |||
Vector & | sol_x, | |||
Vector & | sol_s, | |||
Vector & | sol_c, | |||
Vector & | sol_d, | |||
bool | check_NegEVals, | |||
Index | numberOfNegEVals | |||
) | [virtual] |
Translate the augmented system (in the full space of the restoration variables) into the smaller space of the original variables.
Reimplemented from AugSystemSolver.
References DBG_ASSERT, DBG_PRINT, DBG_PRINT_MATRIX, DBG_PRINT_VECTOR, DBG_START_METH, Ipopt::GetRawPtr(), Ipopt::IsValid(), and Ipopt::SYMSOLVER_SUCCESS.
virtual Index NumberOfNegEVals | ( | ) | const [inline, virtual] |
Returns the number of negative eigenvalues from the original augmented system call.
Implements AugSystemSolver.
virtual bool ProvidesInertia | ( | ) | const [inline, virtual] |
Query whether inertia is computed by linear solver.
Returns true, if linear solver provides inertia.
Implements AugSystemSolver.
virtual bool IncreaseQuality | ( | ) | [inline, virtual] |
Request to increase quality of solution for next solve.
Ask underlying linear solver to increase quality of solution for the next solve (e.g. increase pivot tolerance). Returns false, if this is not possible (e.g. maximal pivot tolerance already used.)
Implements AugSystemSolver.