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.
Base class for interfaces to symmetric indefinite linear solvers for generic matrices.
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...
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:164
This class stores a list of user set options.
virtual bool ProvidesInertia() const =0
Query whether inertia is computed by linear solver.
ipnumber Number
Type of all numbers.
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.