Ipopt  3.11.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpStdAugSystemSolver.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 // $Id: IpStdAugSystemSolver.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8 
9 #ifndef __IP_STDAUGSYSTEMSOLVER_HPP__
10 #define __IP_STDAUGSYSTEMSOLVER_HPP__
11 
12 #include "IpAugSystemSolver.hpp"
13 #include "IpCompoundMatrix.hpp"
14 #include "IpCompoundSymMatrix.hpp"
15 #include "IpCompoundVector.hpp"
16 #include "IpSumSymMatrix.hpp"
17 #include "IpDiagMatrix.hpp"
18 #include "IpIdentityMatrix.hpp"
19 
20 namespace Ipopt
21 {
28  {
29  public:
34 
36  virtual ~StdAugSystemSolver();
38 
40  bool InitializeImpl(const OptionsList& options,
41  const std::string& prefix);
42 
48  const SymMatrix* W,
49  double W_factor,
50  const Vector* D_x,
51  double delta_x,
52  const Vector* D_s,
53  double delta_s,
54  const Matrix* J_c,
55  const Vector* D_c,
56  double delta_c,
57  const Matrix* J_d,
58  const Vector* D_d,
59  double delta_d,
60  std::vector<SmartPtr<const Vector> >& rhs_xV,
61  std::vector<SmartPtr<const Vector> >& rhs_sV,
62  std::vector<SmartPtr<const Vector> >& rhs_cV,
63  std::vector<SmartPtr<const Vector> >& rhs_dV,
64  std::vector<SmartPtr<Vector> >& sol_xV,
65  std::vector<SmartPtr<Vector> >& sol_sV,
66  std::vector<SmartPtr<Vector> >& sol_cV,
67  std::vector<SmartPtr<Vector> >& sol_dV,
68  bool check_NegEVals,
69  Index numberOfNegEVals);
70 
77  virtual Index NumberOfNegEVals() const;
78 
82  virtual bool ProvidesInertia() const;
83 
90  virtual bool IncreaseQuality();
91 
92  private:
105 
107  void operator=(const StdAugSystemSolver&);
109 
110 
114  void CreateAugmentedSpace(const SymMatrix& W,
115  const Matrix& J_c,
116  const Matrix& J_d,
117  const Vector& proto_x,
118  const Vector& proto_s,
119  const Vector& proto_c,
120  const Vector& proto_d);
121 
122 
126  void CreateAugmentedSystem(const SymMatrix* W,
127  double W_factor,
128  const Vector* D_x,
129  double delta_x,
130  const Vector* D_s,
131  double delta_s,
132  const Matrix& J_c,
133  const Vector* D_c,
134  double delta_c,
135  const Matrix& J_d,
136  const Vector* D_d,
137  double delta_d,
138  const Vector& proto_x,
139  const Vector& proto_s,
140  const Vector& proto_c,
141  const Vector& proto_d);
142 
146  double W_factor,
147  const Vector* D_x,
148  double delta_x,
149  const Vector* D_s,
150  double delta_s,
151  const Matrix& J_c,
152  const Vector* D_c,
153  double delta_c,
154  const Matrix& J_d,
155  const Vector* D_d,
156  double delta_d);
157 
162 
171 
173 
184  double w_factor_;
190  double delta_x_;
196  double delta_s_;
206  double delta_c_;
216  double delta_d_;
217 
226 
234 
239 
246  };
247 
248 } // namespace Ipopt
249 
250 #endif