Ipopt Documentation  
 
Loading...
Searching...
No Matches
IpPDFullSpaceSolver.hpp
Go to the documentation of this file.
1// Copyright (C) 2004, 2007 International Business Machines and others.
2// All Rights Reserved.
3// This code is published under the Eclipse Public License.
4//
5// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
6
7#ifndef __IPPDFULLSPACESOLVER_HPP__
8#define __IPPDFULLSPACESOLVER_HPP__
9
10#include "IpPDSystemSolver.hpp"
11#include "IpAugSystemSolver.hpp"
13
14namespace Ipopt
15{
16
31{
32public:
35
39 AugSystemSolver& augSysSolver,
40 PDPerturbationHandler& perturbHandler
41 );
42
46
47 /* overloaded from AlgorithmStrategyObject */
49 const OptionsList& options,
50 const std::string& prefix
51 );
52
55 virtual bool Solve(
56 Number alpha,
57 Number beta,
58 const IteratesVector& rhs,
59 IteratesVector& res,
60 bool allow_inexact = false,
61 bool improve_solution = false
62 );
63
66 static void RegisterOptions(
68 );
70
71private:
82
84
88 );
90
93
95
99
102
104
110
113
115
118
123
129
134
137
141
150 bool resolve_unmodified,
151 bool pretend_singular,
152 const SymMatrix& W,
153 const Matrix& J_c,
154 const Matrix& J_d,
155 const Matrix& Px_L,
156 const Matrix& Px_U,
157 const Matrix& Pd_L,
158 const Matrix& Pd_U,
159 const Vector& z_L,
160 const Vector& z_U,
161 const Vector& v_L,
162 const Vector& v_U,
163 const Vector& slack_x_L,
164 const Vector& slack_x_U,
165 const Vector& slack_s_L,
166 const Vector& slack_s_U,
167 const Vector& sigma_x,
168 const Vector& sigma_s,
169 Number alpha,
170 Number beta,
171 const IteratesVector& rhs,
172 IteratesVector& res
173 );
174
179 const SymMatrix& W,
180 const Matrix& J_c,
181 const Matrix& J_d,
182 const Matrix& Px_L,
183 const Matrix& Px_U,
184 const Matrix& Pd_L,
185 const Matrix& Pd_U,
186 const Vector& z_L,
187 const Vector& z_U,
188 const Vector& v_L,
189 const Vector& v_U,
190 const Vector& slack_x_L,
191 const Vector& slack_x_U,
192 const Vector& slack_s_L,
193 const Vector& slack_s_U,
194 const Vector& sigma_x,
195 const Vector& sigma_s,
196 Number alpha,
197 Number beta,
198 const IteratesVector& rhs,
199 const IteratesVector& res,
200 IteratesVector& resid
201 );
202
209 const IteratesVector& rhs,
210 const IteratesVector& res,
211 const IteratesVector& resid
212 );
213
216
218 Number alpha,
219 const Vector& S,
220 const Vector& R,
221 const Vector& Z,
222 const Matrix& P,
223 const Vector& g,
224 Vector& X
225 );
227};
228
229} // namespace Ipopt
230
231#endif
Base class for Solver for the augmented system.
Cache Priority Enum.
Specialized CompoundVector class specifically for the algorithm iterates.
Matrix Base Class.
Definition IpMatrix.hpp:28
This class stores a list of user set options.
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...
PDFullSpaceSolver()
Default Constructor.
Index max_refinement_steps_
Maximal number of iterative refinement performed per backsolve.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
SmartPtr< AugSystemSolver > augSysSolver_
Pointer to the Solver for the augmented system.
bool augsys_improved_
Flag indicating if for the current matrix the solution quality of the augmented system solver has alr...
Number residual_ratio_singular_
If the residual_ratio is larger than this value after trying to improve the solution,...
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 & operator=(const PDFullSpaceSolver &)
Default Assignment Operator.
Number residual_ratio_max_
Maximal allowed ratio of the norm of the residual over the norm of the right hand side and solution.
bool neg_curv_test_reg_
Do curvature test with primal regularization.
void SinvBlrmZPTdBr(Number alpha, const Vector &S, const Vector &R, const Vector &Z, const Matrix &P, const Vector &g, Vector &X)
Compute .
virtual ~PDFullSpaceSolver()
Default destructor.
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.
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...
SmartPtr< PDPerturbationHandler > perturbHandler_
Pointer to the Perturbation Handler.
PDFullSpaceSolver(AugSystemSolver &augSysSolver, PDPerturbationHandler &perturbHandler)
Constructor that takes in the Augmented System solver that is to be used inside.
Number residual_improvement_factor_
Factor defining require improvement to consider iterative refinement successful.
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)...
Number neg_curv_test_tol_
Tolerance for heuristic to ignore wrong inertia.
Index min_refinement_steps_
Minimal number of iterative refinement performed per backsolve.
Class for handling the perturbation factors delta_x, delta_s, delta_c, and delta_d in the primal dual...
PDSystemSolver()
Default Constructor.
Template class for Smart Pointers.
This is the base class for all derived symmetric matrix types.
Vector Base Class.
Definition IpVector.hpp:48
This file contains a base class for all exceptions and a set of macros to help with exceptions.
ipindex Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:20
ipnumber Number
Type of all numbers.
Definition IpTypes.hpp:17