Ipopt Documentation  
 
Loading...
Searching...
No Matches
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
13namespace Ipopt
14{
15
22{
23public:
26
28 GenKKTSolverInterface& SolverInterface
29 );
30
34
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
95private:
106
110 const GenAugSystemSolver&
111 );
112
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
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
162
208
219
222
227};
228
229} // namespace Ipopt
230
231#endif
Base class for Solver for the augmented system.
Solver for the augmented system using GenKKTSolverInterfaces.
Number w_factor_
Most recent value of W_factor.
TaggedObject::Tag j_c_tag_
Tag for J_c matrix.
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
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...
TaggedObject::Tag d_d_tag_
Tag for D_d vector, representing the diagonal matrix D_d.
bool warm_start_same_structure_
Flag indicating whether the TNLP with identical structure has already been solved before.
virtual ~GenAugSystemSolver()
Destructor.
TaggedObject::Tag d_c_tag_
Tag for D_c vector, representing the diagonal matrix D_c.
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last solve.
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)
GenAugSystemSolver()
Default constructor.
GenAugSystemSolver(GenKKTSolverInterface &SolverInterface)
Constructor using only a linear solver object.
Number delta_c_
Most recent value of delta_c from Set method.
Number delta_x_
Most recent value of delta_x from Set method.
Number delta_d_
Most recent value of delta_d from Set method.
GenAugSystemSolver(const GenAugSystemSolver &)
Copy Constructor.
TaggedObject::Tag w_tag_
Tag for W matrix.
Number delta_s_
Most recent value of delta_s from Set method.
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...
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
SmartPtr< GenKKTSolverInterface > solver_interface_
The linear solver object that is to be used to solve the linear systems.
void operator=(const GenAugSystemSolver &)
Default Assignment Operator.
TaggedObject::Tag j_d_tag_
Tag for J_d matrix.
TaggedObject::Tag d_x_tag_
Tag for D_x vector, representing the diagonal matrix D_x.
TaggedObject::Tag d_s_tag_
Tag for D_s vector, representing the diagonal matrix D_s.
Base class for interfaces to symmetric indefinite linear solvers for generic matrices.
Matrix Base Class.
Definition: IpMatrix.hpp:28
This class stores a list of user set options.
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:165
This is the base class for all derived symmetric matrix types.
Definition: IpSymMatrix.hpp:21
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