Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpMa27TSolverInterface.hpp
Go to the documentation of this file.
1 // Copyright (C) 2004, 2006 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpMa27TSolverInterface.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Carl Laird, Andreas Waechter IBM 2005-03-17
8
9 #ifndef __IPMA27TSOLVERINTERFACE_HPP__
10 #define __IPMA27TSOLVERINTERFACE_HPP__
11
12 #include "IpSparseSymLinearSolverInterface.hpp"
13
14 namespace Ipopt
15 {
19 class Ma27TSolverInterface: public SparseSymLinearSolverInterface
20 {
21 public:
25 Ma27TSolverInterface();
26
28 virtual ~Ma27TSolverInterface();
30
32 bool InitializeImpl(const OptionsList& options,
33 const std::string& prefix);
34
35
43 virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros,
44 const Index *airn,
45 const Index *ajcn);
46
52 virtual double* GetValuesArrayPtr();
53
57 virtual ESymSolverStatus MultiSolve(bool new_matrix,
58 const Index* airn,
59 const Index* ajcn,
60 Index nrhs,
61 double* rhs_vals,
62 bool check_NegEVals,
63 Index numberOfNegEVals);
64
71 virtual Index NumberOfNegEVals() const;
73
74 //* @name Options of Linear solver */
76
81 virtual bool IncreaseQuality();
82
86 virtual bool ProvidesInertia() const
87 {
88 return true;
89 }
93 EMatrixFormat MatrixFormat() const
94 {
95 return Triplet_Format;
96 }
98
101 static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
103
104 private:
114 Ma27TSolverInterface(const Ma27TSolverInterface&);
115
117 void operator=(const Ma27TSolverInterface&);
119
123 Index dim_;
124
126 Index nonzeros_;
128
132 Index negevals_;
134
139 bool initialized_;
142 bool pivtol_changed_;
146 bool refactorize_;
148
152 Number pivtol_;
153
155 Number pivtolmax_;
156
158 Number liw_init_factor_;
160 Number la_init_factor_;
162 Number meminc_factor_;
165 bool warm_start_same_structure_;
168 bool skip_inertia_check_;
171 bool ignore_singularity_;
173
179 ipfint icntl_[30];
181 double cntl_[5];
182
184 ipfint liw_;
186 ipfint* iw_;
187
189 ipfint* ikeep_;
191 ipfint nsteps_;
193 ipfint maxfrt_;
194
196 ipfint la_;
198 double* a_;
199
202 bool la_increase_;
205 bool liw_increase_;
207
214 ESymSolverStatus SymbolicFactorization(const Index* airn,
215 const Index* ajcn);
216
221 ESymSolverStatus Factorization(const Index* airn,
222 const Index* ajcn,
223 bool check_NegEVals,
224 Index numberOfNegEVals);
225
228 ESymSolverStatus Backsolve(Index nrhs,
229 double *rhs_vals);
231 };
232
233 } // namespace Ipopt
234 #endif
Ipopt::Ma27TSolverInterface::~Ma27TSolverInterface
virtual ~Ma27TSolverInterface()
Destructor.
Ipopt::ESymSolverStatus
ESymSolverStatus
Enum to report outcome of a linear solve.
Definition: IpSymLinearSolver.hpp:21
Ipopt::Ma27TSolverInterface::GetValuesArrayPtr
virtual double * GetValuesArrayPtr()
Method returing an internal array into which the nonzero elements (in the same order as airn and ajcn...
ipfint
FORTRAN_INTEGER_TYPE ipfint
Definition: IpTypes.hpp:26
Ipopt::Ma27TSolverInterface::pivtol_changed_
bool pivtol_changed_
Flag indicating if the matrix has to be refactorized because the pivot tolerance has been changed...
Definition: IpMa27TSolverInterface.hpp:142
Ipopt::SparseSymLinearSolverInterface
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
Definition: IpSparseSymLinearSolverInterface.hpp:98
Ipopt::Ma27TSolverInterface::Ma27TSolverInterface
Ma27TSolverInterface()
Constructor.
Ipopt::Ma27TSolverInterface::ProvidesInertia
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
Definition: IpMa27TSolverInterface.hpp:86
Ipopt::Ma27TSolverInterface::InitializeStructure
virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *airn, const Index *ajcn)
Method for initializing internal stuctures.
IpSparseSymLinearSolverInterface.hpp
Ipopt::Ma27TSolverInterface::a_
double * a_
factor A of matrix
Definition: IpMa27TSolverInterface.hpp:198
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Ipopt::Ma27TSolverInterface::operator=
void operator=(const Ma27TSolverInterface &)
Overloaded Equals Operator.
Ipopt::Ma27TSolverInterface::Factorization
ESymSolverStatus Factorization(const Index *airn, const Index *ajcn, bool check_NegEVals, Index numberOfNegEVals)
Call MA27BD to factorize the Matrix.
Ipopt::Ma27TSolverInterface::cntl_
double cntl_[5]
real control values
Definition: IpMa27TSolverInterface.hpp:181
Ipopt::Ma27TSolverInterface::initialized_
bool initialized_
Flag indicating if internal data is initialized.
Definition: IpMa27TSolverInterface.hpp:139
Ipopt::Ma27TSolverInterface::icntl_
ipfint icntl_[30]
integer control values
Definition: IpMa27TSolverInterface.hpp:179
Ipopt::Ma27TSolverInterface::la_increase_
bool la_increase_
flag indicating that la should be increased before next factorization
Definition: IpMa27TSolverInterface.hpp:202
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Ipopt::Ma27TSolverInterface::nsteps_
ipfint nsteps_
MA27&#39;s NSTEPS.
Definition: IpMa27TSolverInterface.hpp:191
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::Ma27TSolverInterface::skip_inertia_check_
bool skip_inertia_check_
Flag indicating if the interia is always assumed to be correct.
Definition: IpMa27TSolverInterface.hpp:168
Ipopt::SparseSymLinearSolverInterface::Triplet_Format
Triplet (MA27) format.
Definition: IpSparseSymLinearSolverInterface.hpp:104
Ipopt::Ma27TSolverInterface::iw_
ipfint * iw_
integer work space
Definition: IpMa27TSolverInterface.hpp:186
Ipopt::Ma27TSolverInterface::warm_start_same_structure_
bool warm_start_same_structure_
Flag indicating whether the TNLP with identical structure has already been solved before...
Definition: IpMa27TSolverInterface.hpp:165
Ipopt::Ma27TSolverInterface::ignore_singularity_
bool ignore_singularity_
Flag indicating if MA27 should continue if a singular matrix is detected, but right hands sides are ...
Definition: IpMa27TSolverInterface.hpp:171
Ipopt::Ma27TSolverInterface::IncreaseQuality
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
Ipopt::Ma27TSolverInterface::negevals_
Index negevals_
Number of negative eigenvalues.
Definition: IpMa27TSolverInterface.hpp:132
Ipopt::Ma27TSolverInterface::Backsolve
ESymSolverStatus Backsolve(Index nrhs, double *rhs_vals)
Call MA27CD to do the backsolve.
Ipopt::Ma27TSolverInterface::la_init_factor_
Number la_init_factor_
Factor for estimating initial value of la.
Definition: IpMa27TSolverInterface.hpp:160
Ipopt::Ma27TSolverInterface::nonzeros_
Index nonzeros_
Number of nonzeros of the matrix.
Definition: IpMa27TSolverInterface.hpp:126
Ipopt::Ma27TSolverInterface::refactorize_
bool refactorize_
Flag that is true if we just requested the values of the matrix again (SYMSOLVER_CALL_AGAIN) and have...
Definition: IpMa27TSolverInterface.hpp:146
Ipopt::Ma27TSolverInterface
Interface to the symmetric linear solver MA27, derived from SparseSymLinearSolverInterface.
Definition: IpMa27TSolverInterface.hpp:19
Ipopt::Index
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
Ipopt::Ma27TSolverInterface::dim_
Index dim_
Number of rows and columns of the matrix.
Definition: IpMa27TSolverInterface.hpp:123
Ipopt::Ma27TSolverInterface::maxfrt_
ipfint maxfrt_
MA27&#39;s MAXFRT.
Definition: IpMa27TSolverInterface.hpp:193
Ipopt::Ma27TSolverInterface::ikeep_
ipfint * ikeep_
MA27&#39;s IKEEP.
Definition: IpMa27TSolverInterface.hpp:189
Ipopt::Ma27TSolverInterface::SymbolicFactorization
ESymSolverStatus SymbolicFactorization(const Index *airn, const Index *ajcn)
Call MA27AD and reserve memory for MA27 data.
Ipopt::Ma27TSolverInterface::NumberOfNegEVals
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.
Ipopt::Ma27TSolverInterface::meminc_factor_
Number meminc_factor_
Factor for increaseing memory.
Definition: IpMa27TSolverInterface.hpp:162
Ipopt::Ma27TSolverInterface::MatrixFormat
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
Definition: IpMa27TSolverInterface.hpp:93
Ipopt::SparseSymLinearSolverInterface::EMatrixFormat
EMatrixFormat
Enum to specify sparse matrix format.
Definition: IpSparseSymLinearSolverInterface.hpp:102
Ipopt::Ma27TSolverInterface::RegisterOptions
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
Ipopt::Ma27TSolverInterface::InitializeImpl
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
Ipopt::Ma27TSolverInterface::liw_
ipfint liw_
length of integer work space
Definition: IpMa27TSolverInterface.hpp:184
Ipopt::Ma27TSolverInterface::liw_increase_
bool liw_increase_
flag indicating that liw should be increased before next factorization
Definition: IpMa27TSolverInterface.hpp:205
Ipopt::Ma27TSolverInterface::MultiSolve
virtual ESymSolverStatus MultiSolve(bool new_matrix, const Index *airn, const Index *ajcn, Index nrhs, double *rhs_vals, bool check_NegEVals, Index numberOfNegEVals)
Solve operation for multiple right hand sides.
Ipopt::Ma27TSolverInterface::liw_init_factor_
Number liw_init_factor_
Factor for estimating initial value of liw.
Definition: IpMa27TSolverInterface.hpp:158
Ipopt::Ma27TSolverInterface::pivtolmax_
Number pivtolmax_
Maximal pivot tolerance.
Definition: IpMa27TSolverInterface.hpp:155
Ipopt::Ma27TSolverInterface::pivtol_
Number pivtol_
Pivol tolerance.
Definition: IpMa27TSolverInterface.hpp:152
Ipopt::Ma27TSolverInterface::la_
ipfint la_
length LA of A
Definition: IpMa27TSolverInterface.hpp:196