Ipopt Documentation  
IpGenAugSystemSolver.hpp
Go to the documentation of this file.
1 // Copyright (C) 2007 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 2007-03-01
6 
7 #ifndef __IP_STDAUGSYSTEMSOLVER_HPP__
8 #define __IP_STDAUGSYSTEMSOLVER_HPP__
9 
10 #include "IpAugSystemSolver.hpp"
12 
13 namespace Ipopt
14 {
15 
22 {
23 public:
25 
28  GenKKTSolverInterface& SolverInterface
29  );
30 
32  virtual ~GenAugSystemSolver();
34 
36  bool InitializeImpl(
37  const OptionsList& options,
38  const std::string& prefix
39  );
40 
46  const SymMatrix* W,
47  Number W_factor,
48  const Vector* D_x,
49  Number delta_x,
50  const Vector* D_s,
51  Number delta_s,
52  const Matrix* J_c,
53  const Vector* D_c,
54  Number delta_c,
55  const Matrix* J_d,
56  const Vector* D_d,
57  Number delta_d,
58  std::vector<SmartPtr<const Vector> >& rhs_xV,
59  std::vector<SmartPtr<const Vector> >& rhs_sV,
60  std::vector<SmartPtr<const Vector> >& rhs_cV,
61  std::vector<SmartPtr<const Vector> >& rhs_dV,
62  std::vector<SmartPtr<Vector> >& sol_xV,
63  std::vector<SmartPtr<Vector> >& sol_sV,
64  std::vector<SmartPtr<Vector> >& sol_cV,
65  std::vector<SmartPtr<Vector> >& sol_dV,
66  bool check_NegEVals,
67  Index numberOfNegEVals
68  );
69 
77  virtual Index NumberOfNegEVals() const;
78 
83  virtual bool ProvidesInertia() const;
84 
93  virtual bool IncreaseQuality();
94 
95 private:
105 
110  const GenAugSystemSolver&
111  );
112 
114  void operator=(
115  const GenAugSystemSolver&
116  );
118 
123  const SymMatrix* W,
124  Number W_factor,
125  const Vector* D_x,
126  Number delta_x,
127  const Vector* D_s,
128  Number delta_s,
129  const Matrix& J_c,
130  const Vector* D_c,
131  Number delta_c,
132  const Matrix& J_d,
133  const Vector* D_d,
134  Number delta_d
135  );
136 
137  void UpdateTags(
138  const SymMatrix* W,
139  Number W_factor,
140  const Vector* D_x,
141  Number delta_x,
142  const Vector* D_s,
143  Number delta_s,
144  const Matrix& J_c,
145  const Vector* D_c,
146  Number delta_c,
147  const Matrix& J_d,
148  const Vector* D_d,
149  Number delta_d
150  );
151 
156 
161 
208 
219 
221 
227 };
228 
229 } // namespace Ipopt
230 
231 #endif
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last solve.
ESymSolverStatus
Enum to report outcome of a linear solve.
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
Solver for the augmented system using GenKKTSolverInterfaces.
SmartPtr< GenKKTSolverInterface > solver_interface_
The linear solver object that is to be used to solve the linear systems.
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
Vector Base Class.
Definition: IpVector.hpp:47
Base class for interfaces to symmetric indefinite linear solvers for generic matrices.
virtual ESymSolverStatus MultiSolve(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, std::vector< SmartPtr< const Vector > > &rhs_xV, std::vector< SmartPtr< const Vector > > &rhs_sV, std::vector< SmartPtr< const Vector > > &rhs_cV, std::vector< SmartPtr< const Vector > > &rhs_dV, std::vector< SmartPtr< Vector > > &sol_xV, std::vector< SmartPtr< Vector > > &sol_sV, std::vector< SmartPtr< Vector > > &sol_cV, std::vector< SmartPtr< Vector > > &sol_dV, bool check_NegEVals, Index numberOfNegEVals)
Set up the augmented system and solve it for a set of given right hand side - implementation for GenT...
TaggedObject::Tag d_d_tag_
Tag for D_d vector, representing the diagonal matrix D_d.
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
ipindex Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:20
This file contains a base class for all exceptions and a set of macros to help with exceptions...
This is the base class for all derived symmetric matrix types.
Definition: IpSymMatrix.hpp:20
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:164
GenAugSystemSolver()
Default constructor.
This class stores a list of user set options.
Base class for Solver for the augmented system.
TaggedObject::Tag d_s_tag_
Tag for D_s vector, representing the diagonal matrix D_s.
Matrix Base Class.
Definition: IpMatrix.hpp:27
TaggedObject::Tag w_tag_
Tag for W matrix.
void operator=(const GenAugSystemSolver &)
Default Assignment Operator.
TaggedObject::Tag d_x_tag_
Tag for D_x vector, representing the diagonal matrix D_x.
bool AugmentedSystemChanged(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)
Check the internal tags and decide if the passed variables are different from what is in the augmente...
ipnumber Number
Type of all numbers.
Definition: IpTypes.hpp:17
Number delta_s_
Most recent value of delta_s from Set method.
unsigned int Tag
Type for the Tag values.
Number w_factor_
Most recent value of W_factor.
Number delta_d_
Most recent value of delta_d from Set method.
TaggedObject::Tag j_d_tag_
Tag for J_d matrix.
virtual ~GenAugSystemSolver()
Destructor.
void UpdateTags(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)
TaggedObject::Tag d_c_tag_
Tag for D_c vector, representing the diagonal matrix D_c.
Number delta_c_
Most recent value of delta_c from Set method.
bool warm_start_same_structure_
Flag indicating whether the TNLP with identical structure has already been solved before...
Number delta_x_
Most recent value of delta_x from Set method.
TaggedObject::Tag j_c_tag_
Tag for J_c matrix.