Ipopt Documentation  
IpGenKKTSolverInterface.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 __IPGENKKTSOLVERINTERFACE_HPP__
8 #define __IPGENKKTSOLVERINTERFACE_HPP__
9 
10 #include "IpUtils.hpp"
11 #include "IpAlgStrategy.hpp"
12 #include "IpSymLinearSolver.hpp"
13 
14 namespace Ipopt
15 {
16 
19 {
20 public:
24  { }
25 
27  { }
29 
30  virtual bool InitializeImpl(
31  const OptionsList& options,
32  const std::string& prefix
33  ) = 0;
34 
36 
74  bool new_matrix,
75  Index n_x,
76  Index n_c,
77  Index n_d,
81  const Number* D_x,
82  const Number* D_s,
83  const Number* D_c,
84  const Number* D_d,
85  Number delta_x,
86  Number delta_s,
87  Number delta_c,
88  Number delta_d,
89  Index n_rhs,
90  Number* rhssol,
91  bool check_NegEVals,
92  Index numberOfNegEVals
93  ) = 0;
94 
102  virtual Index NumberOfNegEVals() const = 0;
104 
105  //* @name Options of Linear solver */
107 
114  virtual bool IncreaseQuality() = 0;
115 
120  virtual bool ProvidesInertia() const = 0;
122 };
123 
124 } // namespace Ipopt
125 
126 #endif
ESymSolverStatus
Enum to report outcome of a linear solve.
virtual bool IncreaseQuality()=0
Request to increase quality of solution for next solve.
This is the base class for all algorithm strategy objects.
double Number
Type of all numbers.
Definition: IpTypes.hpp:15
Base class for interfaces to symmetric indefinite linear solvers for generic matrices.
This file contains a base class for all exceptions and a set of macros to help with exceptions...
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:171
This class stores a list of user set options.
virtual bool ProvidesInertia() const =0
Query whether inertia is computed by linear solver.
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:17
virtual ESymSolverStatus MultiSolve(bool new_matrix, Index n_x, Index n_c, Index n_d, SmartPtr< const SymMatrix > W, SmartPtr< const Matrix > Jac_c, SmartPtr< const Matrix > Jac_d, const Number *D_x, const Number *D_s, const Number *D_c, const Number *D_d, Number delta_x, Number delta_s, Number delta_c, Number delta_d, Index n_rhs, Number *rhssol, bool check_NegEVals, Index numberOfNegEVals)=0
Solve operation for multiple right hand sides.
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)=0
Implementation of the initialization method that has to be overloaded by for each derived class...
virtual Index NumberOfNegEVals() const =0
Number of negative eigenvalues detected during last factorization.