Ipopt Documentation  
 
Loading...
Searching...
No Matches
IpAugRestoSystemSolver.hpp
Go to the documentation of this file.
1// Copyright (C) 2004, 2006 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 __IP_AUGRESTOSYSTEMSOLVER_HPP__
8#define __IP_AUGRESTOSYSTEMSOLVER_HPP__
9
10#include "IpAugSystemSolver.hpp"
11
12namespace Ipopt
13{
14
24{
25public:
28
38 AugSystemSolver& orig_aug_solver,
39 bool skip_orig_aug_solver_init = true
40 );
41
45
48 const OptionsList& options,
49 const std::string& prefix
50 );
51
57 const SymMatrix* W,
58 Number W_factor,
59 const Vector* D_x,
60 Number delta_x,
61 const Vector* D_s,
62 Number delta_s,
63 const Matrix* J_c,
64 const Vector* D_c,
65 Number delta_c,
66 const Matrix* J_d,
67 const Vector* D_d,
68 Number delta_d,
69 const Vector& rhs_x,
70 const Vector& rhs_s,
71 const Vector& rhs_c,
72 const Vector& rhs_d,
73 Vector& sol_x,
74 Vector& sol_s,
75 Vector& sol_c,
76 Vector& sol_d,
77 bool check_NegEVals,
78 Index numberOfNegEVals
79 );
80
84 virtual Index NumberOfNegEVals() const
85 {
86 return orig_aug_solver_->NumberOfNegEVals();
87 }
88
93 virtual bool ProvidesInertia() const
94 {
95 return orig_aug_solver_->ProvidesInertia();
96 }
97
105 virtual bool IncreaseQuality()
106 {
107 return orig_aug_solver_->IncreaseQuality();
108 }
109
110private:
121
123
127 );
128
132 );
134
147
151 const SmartPtr<const Vector>& sigma_tilde_n_c_inv,
152 const SmartPtr<const Vector>& sigma_tilde_p_c_inv,
153 const Vector* D_c,
154 const Vector& any_vec_in_c
155 );
156
158 const Matrix& Pd_L,
159 const SmartPtr<const Vector>& sigma_tilde_n_d_inv,
160 const Matrix& neg_Pd_U,
161 const SmartPtr<const Vector>& sigma_tilde_p_d_inv,
162 const Vector* D_d,
163 const Vector& any_vec_in_d
164 );
165
168 const SmartPtr<const Vector>& sigma_tilde_n_c,
169 Number delta_x,
170 const Vector& any_vec_in_n_c
171 );
172
174 const SmartPtr<const Vector>& sigma_tilde_p_c,
175 Number delta_x,
176 const Vector& any_vec_in_p_c
177 );
178
180 const SmartPtr<const Vector>& sigma_tilde_n_d,
181 Number delta_x,
182 const Vector& any_vec_in_n_d
183 );
184
186 const SmartPtr<const Vector>& sigma_tilde_p_d,
187 Number delta_x,
188 const Vector& any_vec_in_p_d
189 );
190
192 const SmartPtr<const Vector>& CD_x0,
193 Number factor,
194 const Vector& wr_d
195 );
196
198 const Vector& rhs_c,
199 const SmartPtr<const Vector>& sigma_tilde_n_c_inv,
200 const Vector& rhs_n_c,
201 const SmartPtr<const Vector>& sigma_tilde_p_c_inv,
202 const Vector& rhs_p_c
203 );
204
206 const Vector& rhs_d,
207 const SmartPtr<const Vector>& sigma_tilde_n_d_inv,
208 const Vector& rhs_n_d,
209 const Matrix& pd_L,
210 const SmartPtr<const Vector>& sigma_tilde_p_d_inv,
211 const Vector& rhs_p_d,
212 const Matrix& pd_U
213 );
215
218};
219
220} // namespace Ipopt
221
222#endif
Class that converts an augmented system with compound restoration pieces into a smaller "pivoted" sys...
SmartPtr< const Vector > Sigma_tilde_n_d_inv(const SmartPtr< const Vector > &sigma_tilde_n_d, Number delta_x, const Vector &any_vec_in_n_d)
SmartPtr< const Vector > Sigma_tilde_p_d_inv(const SmartPtr< const Vector > &sigma_tilde_p_d, Number delta_x, const Vector &any_vec_in_p_d)
AugRestoSystemSolver()
Default Constructor.
CachedResults< SmartPtr< Vector > > neg_omega_d_plus_D_d_cache_
SmartPtr< const Vector > Rhs_cR(const Vector &rhs_c, const SmartPtr< const Vector > &sigma_tilde_n_c_inv, const Vector &rhs_n_c, const SmartPtr< const Vector > &sigma_tilde_p_c_inv, const Vector &rhs_p_c)
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
CachedResults< SmartPtr< Vector > > neg_omega_c_plus_D_c_cache_
SmartPtr< const Vector > Neg_Omega_c_plus_D_c(const SmartPtr< const Vector > &sigma_tilde_n_c_inv, const SmartPtr< const Vector > &sigma_tilde_p_c_inv, const Vector *D_c, const Vector &any_vec_in_c)
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
SmartPtr< const Vector > Rhs_dR(const Vector &rhs_d, const SmartPtr< const Vector > &sigma_tilde_n_d_inv, const Vector &rhs_n_d, const Matrix &pd_L, const SmartPtr< const Vector > &sigma_tilde_p_d_inv, const Vector &rhs_p_d, const Matrix &pd_U)
CachedResults< SmartPtr< Vector > > sigma_tilde_p_c_inv_cache_
CachedResults< SmartPtr< Vector > > d_x_plus_wr_d_cache_
virtual ESymSolverStatus Solve(const SymMatrix *W, Number W_factor, const Vector *D_x, Number delta_x, const Vector *D_s, Number delta_s, const Matrix *J_c, const Vector *D_c, Number delta_c, const Matrix *J_d, const Vector *D_d, Number 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 spac...
CachedResults< SmartPtr< Vector > > rhs_dR_cache_
SmartPtr< const Vector > D_x_plus_wr_d(const SmartPtr< const Vector > &CD_x0, Number factor, const Vector &wr_d)
CachedResults< SmartPtr< Vector > > sigma_tilde_n_c_inv_cache_
CachedResults< SmartPtr< Vector > > sigma_tilde_p_d_inv_cache_
void operator=(const AugRestoSystemSolver &)
Default Assignment Operator.
virtual ~AugRestoSystemSolver()
Destructor.
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
SmartPtr< const Vector > Neg_Omega_d_plus_D_d(const Matrix &Pd_L, const SmartPtr< const Vector > &sigma_tilde_n_d_inv, const Matrix &neg_Pd_U, const SmartPtr< const Vector > &sigma_tilde_p_d_inv, const Vector *D_d, const Vector &any_vec_in_d)
CachedResults< SmartPtr< Vector > > sigma_tilde_n_d_inv_cache_
AugRestoSystemSolver(const AugRestoSystemSolver &)
Copy Constructor.
virtual Index NumberOfNegEVals() const
Returns the number of negative eigenvalues from the original augmented system call.
SmartPtr< AugSystemSolver > orig_aug_solver_
SmartPtr< const Vector > Sigma_tilde_n_c_inv(const SmartPtr< const Vector > &sigma_tilde_n_c, Number delta_x, const Vector &any_vec_in_n_c)
Sigma tilde is the sum of Sigma and delta_x times the identity.
AugRestoSystemSolver(AugSystemSolver &orig_aug_solver, bool skip_orig_aug_solver_init=true)
Constructor.
SmartPtr< const Vector > Sigma_tilde_p_c_inv(const SmartPtr< const Vector > &sigma_tilde_p_c, Number delta_x, const Vector &any_vec_in_p_c)
CachedResults< SmartPtr< Vector > > rhs_cR_cache_
Base class for Solver for the augmented system.
Templated class for Cached Results.
Matrix Base Class.
Definition IpMatrix.hpp:28
This class stores a list of user set options.
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.
ESymSolverStatus
Enum to report outcome of a linear solve.
ipindex Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:20
ipnumber Number
Type of all numbers.
Definition IpTypes.hpp:17