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_GENAUGSYSTEMSOLVER_HPP__
8#define __IP_GENAUGSYSTEMSOLVER_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.
This is the base class for all derived symmetric matrix types.
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