Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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 // $Id: IpPDFullSpaceSolver.hpp 2594 2015-08-09 14:31:05Z stefan $
6 //
7 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9 #ifndef __IPPDFULLSPACESOLVER_HPP__
10 #define __IPPDFULLSPACESOLVER_HPP__
11
12 #include "IpPDSystemSolver.hpp"
13 #include "IpAugSystemSolver.hpp"
14 #include "IpPDPerturbationHandler.hpp"
15
16 namespace Ipopt
17 {
18
32 class PDFullSpaceSolver: public PDSystemSolver
33 {
34 public:
40 PDFullSpaceSolver(AugSystemSolver& augSysSolver,
41 PDPerturbationHandler& perturbHandler);
42
44 virtual ~PDFullSpaceSolver();
46
47 /* overloaded from AlgorithmStrategyObject */
48 bool InitializeImpl(const OptionsList& options,
49 const std::string& prefix);
50
53 virtual bool Solve(Number alpha,
54 Number beta,
55 const IteratesVector& rhs,
56 IteratesVector& res,
57 bool allow_inexact=false,
58 bool improve_solution=false);
59
62 static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
64
65 private:
75 PDFullSpaceSolver();
77 PDFullSpaceSolver& operator=(const PDFullSpaceSolver&);
79
83 SmartPtr<AugSystemSolver> augSysSolver_;
85 SmartPtr<PDPerturbationHandler> perturbHandler_;
87
91 CachedResults<void*> dummy_cache_;
94 bool augsys_improved_;
96
100 Index min_refinement_steps_;
102 Index max_refinement_steps_;
105 Number residual_ratio_max_;
109 Number residual_ratio_singular_;
112 Number residual_improvement_factor_;
114 Number neg_curv_test_tol_;
116 bool neg_curv_test_reg_;
117
119
126 bool SolveOnce(bool resolve_unmodified,
127 bool pretend_singular,
128 const SymMatrix& W,
129 const Matrix& J_c,
130 const Matrix& J_d,
131 const Matrix& Px_L,
132 const Matrix& Px_U,
133 const Matrix& Pd_L,
134 const Matrix& Pd_U,
135 const Vector& z_L,
136 const Vector& z_U,
137 const Vector& v_L,
138 const Vector& v_U,
139 const Vector& slack_x_L,
140 const Vector& slack_x_U,
141 const Vector& slack_s_L,
142 const Vector& slack_s_U,
143 const Vector& sigma_x,
144 const Vector& sigma_s,
145 Number alpha,
146 Number beta,
147 const IteratesVector& rhs,
148 IteratesVector& res);
149
153 void ComputeResiduals(const SymMatrix& W,
154 const Matrix& J_c,
155 const Matrix& J_d,
156 const Matrix& Px_L,
157 const Matrix& Px_U,
158 const Matrix& Pd_L,
159 const Matrix& Pd_U,
160 const Vector& z_L,
161 const Vector& z_U,
162 const Vector& v_L,
163 const Vector& v_U,
164 const Vector& slack_x_L,
165 const Vector& slack_x_U,
166 const Vector& slack_s_L,
167 const Vector& slack_s_U,
168 const Vector& sigma_x,
169 const Vector& sigma_s,
170 Number alpha,
171 Number beta,
172 const IteratesVector& rhs,
173 const IteratesVector& res,
174 IteratesVector& resid);
175
179 Number ComputeResidualRatio(const IteratesVector& rhs,
180 const IteratesVector& res,
181 const IteratesVector& resid);
182
186 void SinvBlrmZPTdBr(Number alpha, const Vector& S,
187 const Vector& R, const Vector& Z,
188 const Matrix& P, const Vector&g, Vector& X);
190 };
191
192 } // namespace Ipopt
193
194 #endif
Ipopt::PDFullSpaceSolver::ComputeResidualRatio
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...
Ipopt::PDFullSpaceSolver::RegisterOptions
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
Ipopt::IteratesVector
Specialized CompoundVector class specifically for the algorithm iterates.
Definition: IpIteratesVector.hpp:27
Ipopt::PDFullSpaceSolver::InitializeImpl
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
Ipopt::PDFullSpaceSolver::PDFullSpaceSolver
PDFullSpaceSolver()
Default Constructor.
Ipopt::PDFullSpaceSolver::~PDFullSpaceSolver
virtual ~PDFullSpaceSolver()
Default destructor.
IpPDSystemSolver.hpp
g
Number Number * g
Values of constraint at final point (output only - ignored if set to NULL)
Definition: IpStdCInterface.h:238
Ipopt::PDFullSpaceSolver::residual_ratio_singular_
Number residual_ratio_singular_
If the residual_ratio is larger than this value after trying to improve the solution, the linear system is assumed to be singular and modified.
Definition: IpPDFullSpaceSolver.hpp:109
Ipopt::PDSystemSolver
Pure Primal Dual System Solver Base Class.
Definition: IpPDSystemSolver.hpp:76
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Ipopt::Vector
Vector Base Class.
Definition: IpVector.hpp:47
Ipopt::PDPerturbationHandler
Class for handling the perturbation factors delta_x, delta_s, delta_c, and delta_d in the primal dual...
Definition: IpPDPerturbationHandler.hpp:24
Ipopt::PDFullSpaceSolver::perturbHandler_
SmartPtr< PDPerturbationHandler > perturbHandler_
Pointer to the Perturbation Handler.
Definition: IpPDFullSpaceSolver.hpp:85
Ipopt::PDFullSpaceSolver::SinvBlrmZPTdBr
void SinvBlrmZPTdBr(Number alpha, const Vector &S, const Vector &R, const Vector &Z, const Matrix &P, const Vector &g, Vector &X)
Compute .
Ipopt::SymMatrix
This is the base class for all derived symmetric matrix types.
Definition: IpSymMatrix.hpp:23
Ipopt::PDFullSpaceSolver::augsys_improved_
bool augsys_improved_
Flag indicating if for the current matrix the solution quality of the augmented system solver has alr...
Definition: IpPDFullSpaceSolver.hpp:94
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Ipopt::PDFullSpaceSolver::ComputeResiduals
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...
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::AugSystemSolver
Base class for Solver for the augmented system.
Definition: IpAugSystemSolver.hpp:37
Ipopt::PDFullSpaceSolver::Solve
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.
Ipopt::PDFullSpaceSolver::dummy_cache_
CachedResults< void * > dummy_cache_
A dummy cache to figure out if the deltas are still up to date.
Definition: IpPDFullSpaceSolver.hpp:91
Ipopt::Matrix
Matrix Base Class.
Definition: IpMatrix.hpp:27
Ipopt::CachedResults< void * >
IpAugSystemSolver.hpp
Ipopt::Index
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
Ipopt::PDFullSpaceSolver::neg_curv_test_tol_
Number neg_curv_test_tol_
Tolernace for heuristic to ignore wrong inertia.
Definition: IpPDFullSpaceSolver.hpp:114
Ipopt::PDFullSpaceSolver
This is the implemetation of the Primal-Dual System, using the full space approach with a direct line...
Definition: IpPDFullSpaceSolver.hpp:32
Ipopt::PDFullSpaceSolver::augSysSolver_
SmartPtr< AugSystemSolver > augSysSolver_
Pointer to the Solver for the augmented system.
Definition: IpPDFullSpaceSolver.hpp:83
Ipopt::PDFullSpaceSolver::SolveOnce
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)...
Ipopt::PDFullSpaceSolver::neg_curv_test_reg_
bool neg_curv_test_reg_
Do curvature test with primal regularization.
Definition: IpPDFullSpaceSolver.hpp:116
Ipopt::PDFullSpaceSolver::residual_ratio_max_
Number residual_ratio_max_
Maximal allowed ratio of the norm of the residual over the norm of the right hand side and solution...
Definition: IpPDFullSpaceSolver.hpp:105
Ipopt::PDFullSpaceSolver::residual_improvement_factor_
Number residual_improvement_factor_
Factor defining require improvement to consider iterative refinement successful.
Definition: IpPDFullSpaceSolver.hpp:112
Ipopt::PDFullSpaceSolver::operator=
PDFullSpaceSolver & operator=(const PDFullSpaceSolver &)
Overloaded Equals Operator.
Ipopt::PDFullSpaceSolver::max_refinement_steps_
Index max_refinement_steps_
Maximal number of iterative refinement performed per backsolve.
Definition: IpPDFullSpaceSolver.hpp:102
Ipopt::PDFullSpaceSolver::min_refinement_steps_
Index min_refinement_steps_
Minimal number of iterative refinement performed per backsolve.
Definition: IpPDFullSpaceSolver.hpp:100
IpPDPerturbationHandler.hpp