Go to the documentation of this file.
9 #ifndef __IPPDFULLSPACESOLVER_HPP__
10 #define __IPPDFULLSPACESOLVER_HPP__
49 const std::string& prefix);
57 bool allow_inexact=
false,
58 bool improve_solution=
false);
124 bool pretend_singular,
PDFullSpaceSolver & operator=(const PDFullSpaceSolver &)
Overloaded Equals Operator.
Class for handling the perturbation factors delta_x, delta_s, delta_c, and delta_d in the primal dual...
Number neg_curv_test_tol_
Tolernace for heuristic to ignore wrong inertia.
double Number
Type of all numbers.
bool augsys_improved_
Flag indicating if for the current matrix the solution quality of the augmented system solver has alr...
This is the implemetation of the Primal-Dual System, using the full space approach with a direct line...
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
CachedResults< void * > dummy_cache_
A dummy cache to figure out if the deltas are still up to date.
PDFullSpaceSolver()
Default Constructor.
Number ComputeResidualRatio(const IteratesVector &rhs, const IteratesVector &res, const IteratesVector &resid)
Internal function for computing the ratio of the residual compared to the right hand side and solutio...
virtual bool Solve(Number alpha, Number beta, const IteratesVector &rhs, IteratesVector &res, bool allow_inexact=false, bool improve_solution=false)
Solve the primal dual system, given one right hand side.
Index min_refinement_steps_
Minimal number of iterative refinement performed per backsolve.
int Index
Type of all indices of vectors, matrices etc.
SmartPtr< PDPerturbationHandler > perturbHandler_
Pointer to the Perturbation Handler.
Template class for Smart Pointers.
SmartPtr< AugSystemSolver > augSysSolver_
Pointer to the Solver for the augmented system.
Number residual_improvement_factor_
Factor defining require improvement to consider iterative refinement successful.
Number residual_ratio_singular_
If the residual_ratio is larger than this value after trying to improve the solution,...
bool SolveOnce(bool resolve_unmodified, bool pretend_singular, const SymMatrix &W, const Matrix &J_c, const Matrix &J_d, const Matrix &Px_L, const Matrix &Px_U, const Matrix &Pd_L, const Matrix &Pd_U, const Vector &z_L, const Vector &z_U, const Vector &v_L, const Vector &v_U, const Vector &slack_x_L, const Vector &slack_x_U, const Vector &slack_s_L, const Vector &slack_s_U, const Vector &sigma_x, const Vector &sigma_s, Number alpha, Number beta, const IteratesVector &rhs, IteratesVector &res)
Internal function for a single backsolve (which will be used for iterative refinement on the outside)...
Pure Primal Dual System Solver Base Class.
Base class for Solver for the augmented system.
This is the base class for all derived symmetric matrix types.
Number Number * g
Values of constraint at final point (output only - ignored if set to NULL)
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
void SinvBlrmZPTdBr(Number alpha, const Vector &S, const Vector &R, const Vector &Z, const Matrix &P, const Vector &g, Vector &X)
Compute .
Number residual_ratio_max_
Maximal allowed ratio of the norm of the residual over the norm of the right hand side and solution.
Index max_refinement_steps_
Maximal number of iterative refinement performed per backsolve.
This class stores a list of user set options.
void ComputeResiduals(const SymMatrix &W, const Matrix &J_c, const Matrix &J_d, const Matrix &Px_L, const Matrix &Px_U, const Matrix &Pd_L, const Matrix &Pd_U, const Vector &z_L, const Vector &z_U, const Vector &v_L, const Vector &v_U, const Vector &slack_x_L, const Vector &slack_x_U, const Vector &slack_s_L, const Vector &slack_s_U, const Vector &sigma_x, const Vector &sigma_s, Number alpha, Number beta, const IteratesVector &rhs, const IteratesVector &res, IteratesVector &resid)
Internal function for computing the residual (resid) given the right hand side (rhs) and the solution...
Specialized CompoundVector class specifically for the algorithm iterates.
virtual ~PDFullSpaceSolver()
Default destructor.