Ipopt Documentation  
 
Loading...
Searching...
No Matches
IpLowRankSSAugSystemSolver.hpp
Go to the documentation of this file.
1// Copyright (C) 2005, 2009 International Business Machines and others.
2// All Rights Reserved.
3// This code is published under the Eclipse Public License.
4//
5// Authors: Andreas Waechter IBM 2009-11-05
6// (based on IpLowRankAugSystemSolver.hpp rev 1324)
7
8#ifndef __IP_LOWRANKSSAUGSYSTEMSOLVER_HPP__
9#define __IP_LOWRANKSSAUGSYSTEMSOLVER_HPP__
10
11#include "IpAugSystemSolver.hpp"
12#include "IpDiagMatrix.hpp"
13#include "IpCompoundMatrix.hpp"
14#include "IpCompoundVector.hpp"
16
17namespace Ipopt
18{
19
28{
29public:
32
34 AugSystemSolver& aug_system_solver,
35 Index max_rank
36 );
37
41
43 const OptionsList& options,
44 const std::string& prefix
45 );
46
49 const SymMatrix* W,
50 Number W_factor,
51 const Vector* D_x,
52 Number delta_x,
53 const Vector* D_s,
54 Number delta_s,
55 const Matrix* J_c,
56 const Vector* D_c,
57 Number delta_c,
58 const Matrix* J_d,
59 const Vector* D_d,
60 Number delta_d,
61 const Vector& rhs_x,
62 const Vector& rhs_s,
63 const Vector& rhs_c,
64 const Vector& rhs_d,
65 Vector& sol_x,
66 Vector& sol_s,
67 Vector& sol_c,
68 Vector& sol_d,
69 bool check_NegEVals,
70 Index numberOfNegEVals
71 );
72
81 virtual Index NumberOfNegEVals() const;
82
87 virtual bool ProvidesInertia() const;
88
96 virtual bool IncreaseQuality();
97
98private:
109
111
115 );
116
119 );
121
127
130
136
141
144
150
153
158
161
167
173
176
182
188
192
195
199
203
206
209
212
215
220
232
235
239 const SymMatrix* W,
240 Number W_factor,
241 const Vector* D_x,
242 Number delta_x,
243 const Vector* D_s,
244 Number delta_s,
245 const Matrix& J_c,
246 const Vector* D_c,
247 Number delta_c,
248 const Matrix& J_d,
249 const Vector* D_d,
250 Number delta_d,
251 const Vector& proto_rhs_x,
252 const Vector& proto_rhs_s,
253 const Vector& proto_rhs_c,
254 const Vector& proto_rhs_d
255 );
256
263 const SymMatrix* W,
264 Number W_factor,
265 const Vector* D_x,
266 Number delta_x,
267 const Vector* D_s,
268 Number delta_s,
269 const Matrix& J_c,
270 const Vector* D_c,
271 Number delta_c,
272 const Matrix& J_d,
273 const Vector* D_d,
274 Number delta_d
275 );
277};
278
279} // namespace Ipopt
280
281#endif
Base class for Solver for the augmented system.
Solver for the augmented system with LowRankUpdateSymMatrix Hessian matrices.
bool first_call_
Flag indicating if this is the first call.
Number w_factor_
Most recent value of W_factor.
Index negEvalsCorrection_
Number of components in V, so that it can be used to correct the inertia.
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
SmartPtr< CompoundVectorSpace > y_c_ext_space_
Extended vector space for y_c.
Number delta_x_
Most recent value of delta_x from Set method.
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
SmartPtr< ExpandedMultiVectorMatrix > expanded_vu_
Artificial rows for Jac_c part for low rank data.
Index num_neg_evals_
Stores the number of negative eigenvalues detected during most recent factorization.
Number delta_c_
Most recent value of delta_c from Set method.
virtual ~LowRankSSAugSystemSolver()
Destructor.
TaggedObject::Tag j_d_tag_
Tag for J_d matrix.
SmartPtr< AugSystemSolver > aug_system_solver_
The augmented system solver object that should be used for the factorization of the augmented system ...
TaggedObject::Tag d_x_tag_
Tag for D_x vector, representing the diagonal matrix D_x.
void operator=(const LowRankSSAugSystemSolver &)
TaggedObject::Tag d_d_tag_
Tag for D_d vector, representing the diagonal matrix D_d.
Number delta_d_
Most recent value of delta_d from Set method.
LowRankSSAugSystemSolver(AugSystemSolver &aug_system_solver, Index max_rank)
Constructor using an existing augmented system solver.
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
LowRankSSAugSystemSolver()
Default constructor.
TaggedObject::Tag d_c_tag_
Tag for D_c vector, representing the diagonal matrix D_c.
ESymSolverStatus UpdateExtendedData(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 &proto_rhs_x, const Vector &proto_rhs_s, const Vector &proto_rhs_c, const Vector &proto_rhs_d)
Method for updating the factorization, including J1_, J2_, Vtilde1_, Utilde2, Wdiag_,...
Number delta_s_
Most recent value of delta_s from Set method.
SmartPtr< DiagMatrix > Wdiag_
Hessian Matrix passed to the augmented system solver solving the matrix without the low-rank update.
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)
Set up the augmented system and solve it for a given right hand side.
LowRankSSAugSystemSolver(const LowRankSSAugSystemSolver &)
Copy Constructor.
SmartPtr< CompoundMatrix > J_c_ext_
Extended Jac_c to include expanded_vu_.
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last solve.
TaggedObject::Tag j_c_tag_
Tag for J_c matrix.
SmartPtr< CompoundVector > D_c_ext_
Extended D_c diagonal.
TaggedObject::Tag d_s_tag_
Tag for D_s vector, representing the diagonal matrix D_s.
TaggedObject::Tag w_tag_
Tag for W matrix.
Index max_rank_
Maximal rank of low rank Hessian update.
bool AugmentedSystemRequiresChange(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)
Method that compares the tags of the data for the matrix with those from the previous call.
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.
unsigned int Tag
Type for the Tag values.
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