Ipopt  3.11.9
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 
13 
14 namespace Ipopt
15 {
20  {
21  public:
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  }
94  {
95  return Triplet_Format;
96  }
98 
101  static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
103 
104  private:
115 
117  void operator=(const Ma27TSolverInterface&);
119 
124 
128 
134 
148 
153 
156 
173 
181  double cntl_[5];
182 
187 
194 
198  double* a_;
199 
207 
215  const Index* ajcn);
216 
222  const Index* ajcn,
223  bool check_NegEVals,
224  Index numberOfNegEVals);
225 
229  double *rhs_vals);
231  };
232 
233 } // namespace Ipopt
234 #endif
Ipopt::Ma27TSolverInterface::InitializeImpl
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
Ipopt::Ma27TSolverInterface::cntl_
double cntl_[5]
real control values
Definition: IpMa27TSolverInterface.hpp:181
Ipopt::ESymSolverStatus
ESymSolverStatus
Enum to report outcome of a linear solve.
Definition: IpSymLinearSolver.hpp:21
Ipopt::Ma27TSolverInterface::liw_increase_
bool liw_increase_
flag indicating that liw should be increased before next factorization
Definition: IpMa27TSolverInterface.hpp:205
Ipopt::SparseSymLinearSolverInterface::Triplet_Format
@ Triplet_Format
Triplet (MA27) format.
Definition: IpSparseSymLinearSolverInterface.hpp:104
Ipopt::Ma27TSolverInterface::initialized_
bool initialized_
Flag indicating if internal data is initialized.
Definition: IpMa27TSolverInterface.hpp:139
Ipopt::Ma27TSolverInterface::liw_init_factor_
Number liw_init_factor_
Factor for estimating initial value of liw.
Definition: IpMa27TSolverInterface.hpp:158
Ipopt::SparseSymLinearSolverInterface::EMatrixFormat
EMatrixFormat
Enum to specify sparse matrix format.
Definition: IpSparseSymLinearSolverInterface.hpp:102
Ipopt::Ma27TSolverInterface::icntl_
ipfint icntl_[30]
integer control values
Definition: IpMa27TSolverInterface.hpp:179
Ipopt::Ma27TSolverInterface::nsteps_
ipfint nsteps_
MA27's NSTEPS.
Definition: IpMa27TSolverInterface.hpp:191
Ipopt
Definition: matlabjournal.hpp:14
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
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::IncreaseQuality
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
Ipopt::Ma27TSolverInterface::ProvidesInertia
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
Definition: IpMa27TSolverInterface.hpp:86
Ipopt::Ma27TSolverInterface::Backsolve
ESymSolverStatus Backsolve(Index nrhs, double *rhs_vals)
Call MA27CD to do the backsolve.
Ipopt::Ma27TSolverInterface::InitializeStructure
virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *airn, const Index *ajcn)
Method for initializing internal stuctures.
Ipopt::Ma27TSolverInterface::~Ma27TSolverInterface
virtual ~Ma27TSolverInterface()
Destructor.
Ipopt::SparseSymLinearSolverInterface
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
Definition: IpSparseSymLinearSolverInterface.hpp:98
Ipopt::Ma27TSolverInterface::nonzeros_
Index nonzeros_
Number of nonzeros of the matrix.
Definition: IpMa27TSolverInterface.hpp:126
Ipopt::Ma27TSolverInterface::operator=
void operator=(const Ma27TSolverInterface &)
Overloaded Equals Operator.
Ipopt::Ma27TSolverInterface::a_
double * a_
factor A of matrix
Definition: IpMa27TSolverInterface.hpp:198
Ipopt::Ma27TSolverInterface::SymbolicFactorization
ESymSolverStatus SymbolicFactorization(const Index *airn, const Index *ajcn)
Call MA27AD and reserve memory for MA27 data.
Ipopt::Index
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
Ipopt::Ma27TSolverInterface::meminc_factor_
Number meminc_factor_
Factor for increaseing memory.
Definition: IpMa27TSolverInterface.hpp:162
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:182
ipfint
FORTRAN_INTEGER_TYPE ipfint
Definition: IpTypes.hpp:26
Ipopt::Ma27TSolverInterface::maxfrt_
ipfint maxfrt_
MA27's MAXFRT.
Definition: IpMa27TSolverInterface.hpp:193
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::Ma27TSolverInterface::liw_
ipfint liw_
length of integer work space
Definition: IpMa27TSolverInterface.hpp:184
Ipopt::Ma27TSolverInterface::NumberOfNegEVals
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.
Ipopt::Ma27TSolverInterface
Interface to the symmetric linear solver MA27, derived from SparseSymLinearSolverInterface.
Definition: IpMa27TSolverInterface.hpp:19
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::pivtolmax_
Number pivtolmax_
Maximal pivot tolerance.
Definition: IpMa27TSolverInterface.hpp:155
Ipopt::Ma27TSolverInterface::la_increase_
bool la_increase_
flag indicating that la should be increased before next factorization
Definition: IpMa27TSolverInterface.hpp:202
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::la_
ipfint la_
length LA of A
Definition: IpMa27TSolverInterface.hpp:196
Ipopt::Ma27TSolverInterface::iw_
ipfint * iw_
integer work space
Definition: IpMa27TSolverInterface.hpp:186
Ipopt::Ma27TSolverInterface::ignore_singularity_
bool ignore_singularity_
Flag indicating if MA27 should continue if a singular matrix is detected, but right hands sides are s...
Definition: IpMa27TSolverInterface.hpp:171
Ipopt::Ma27TSolverInterface::negevals_
Index negevals_
Number of negative eigenvalues.
Definition: IpMa27TSolverInterface.hpp:132
Ipopt::Ma27TSolverInterface::MatrixFormat
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
Definition: IpMa27TSolverInterface.hpp:93
Ipopt::Ma27TSolverInterface::la_init_factor_
Number la_init_factor_
Factor for estimating initial value of la.
Definition: IpMa27TSolverInterface.hpp:160
IpSparseSymLinearSolverInterface.hpp
Ipopt::Ma27TSolverInterface::dim_
Index dim_
Number of rows and columns of the matrix.
Definition: IpMa27TSolverInterface.hpp:123
Ipopt::Ma27TSolverInterface::GetValuesArrayPtr
virtual double * GetValuesArrayPtr()
Method returing an internal array into which the nonzero elements (in the same order as airn and ajcn...
Ipopt::Ma27TSolverInterface::ikeep_
ipfint * ikeep_
MA27's IKEEP.
Definition: IpMa27TSolverInterface.hpp:189
Ipopt::Ma27TSolverInterface::pivtol_
Number pivtol_
Pivol tolerance.
Definition: IpMa27TSolverInterface.hpp:152
Ipopt::Ma27TSolverInterface::RegisterOptions
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
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::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::Ma27TSolverInterface::Ma27TSolverInterface
Ma27TSolverInterface()
Constructor.
Ipopt::Ma27TSolverInterface::Factorization
ESymSolverStatus Factorization(const Index *airn, const Index *ajcn, bool check_NegEVals, Index numberOfNegEVals)
Call MA27BD to factorize the Matrix.