Ipopt Documentation  
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 // Authors: Carl Laird, Andreas Waechter IBM 2005-03-17
6 
7 #ifndef __IPMA27TSOLVERINTERFACE_HPP__
8 #define __IPMA27TSOLVERINTERFACE_HPP__
9 
11 
12 namespace Ipopt
13 {
18 {
19 public:
24 
28 
30  const OptionsList& options,
31  const std::string& prefix
32  );
33 
37  Index dim,
38  Index nonzeros,
39  const Index* airn,
40  const Index* ajcn
41  );
42 
43  virtual double* GetValuesArrayPtr();
44 
46  bool new_matrix,
47  const Index* airn,
48  const Index* ajcn,
49  Index nrhs,
50  double* rhs_vals,
51  bool check_NegEVals,
52  Index numberOfNegEVals);
53 
54  virtual Index NumberOfNegEVals() const;
56 
57  //* @name Options of Linear solver */
59  virtual bool IncreaseQuality();
60 
61  virtual bool ProvidesInertia() const
62  {
63  return true;
64  }
65 
67  {
68  return Triplet_Format;
69  }
71 
73  static void RegisterOptions(
75  );
77 
78 private:
90  );
91 
93  void operator=(
95  );
97 
102 
106 
112 
130 
135 
138 
156 
164  double cntl_[5];
165 
170 
177 
181  double* a_;
182 
188 
197  const Index* airn,
198  const Index* ajcn
199  );
200 
207  const Index* airn,
208  const Index* ajcn,
209  bool check_NegEVals,
210  Index numberOfNegEVals
211  );
212 
215  Index nrhs,
216  double* rhs_vals
217  );
219 };
220 
221 } // namespace Ipopt
222 #endif
Ipopt::Ma27TSolverInterface::InitializeImpl
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class.
Ipopt::Ma27TSolverInterface::cntl_
double cntl_[5]
real control values
Definition: IpMa27TSolverInterface.hpp:164
Ipopt::ESymSolverStatus
ESymSolverStatus
Enum to report outcome of a linear solve.
Definition: IpSymLinearSolver.hpp:20
Ipopt::Ma27TSolverInterface::liw_increase_
bool liw_increase_
flag indicating that liw should be increased before next factorization
Definition: IpMa27TSolverInterface.hpp:186
Ipopt::SparseSymLinearSolverInterface::Triplet_Format
@ Triplet_Format
Triplet (MA27) format.
Definition: IpSparseSymLinearSolverInterface.hpp:103
Ipopt::Ma27TSolverInterface::initialized_
bool initialized_
Flag indicating if internal data is initialized.
Definition: IpMa27TSolverInterface.hpp:119
Ipopt::Ma27TSolverInterface::liw_init_factor_
Number liw_init_factor_
Factor for estimating initial value of liw.
Definition: IpMa27TSolverInterface.hpp:140
Ipopt::SparseSymLinearSolverInterface::EMatrixFormat
EMatrixFormat
Enum to specify sparse matrix format.
Definition: IpSparseSymLinearSolverInterface.hpp:101
Ipopt::Ma27TSolverInterface::icntl_
ipfint icntl_[30]
integer control values
Definition: IpMa27TSolverInterface.hpp:162
Ipopt::Ma27TSolverInterface::Ma27TSolverInterface
Ma27TSolverInterface(const Ma27TSolverInterface &)
Copy Constructor.
Ipopt::Ma27TSolverInterface::nsteps_
ipfint nsteps_
MA27's NSTEPS.
Definition: IpMa27TSolverInterface.hpp:174
Ipopt
This file contains a base class for all exceptions and a set of macros to help with exceptions.
Definition: IpInexactAlgBuilder.hpp:14
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:15
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:148
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:61
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 structures.
Ipopt::Ma27TSolverInterface::~Ma27TSolverInterface
virtual ~Ma27TSolverInterface()
Destructor.
Ipopt::SparseSymLinearSolverInterface
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
Definition: IpSparseSymLinearSolverInterface.hpp:97
Ipopt::Ma27TSolverInterface::nonzeros_
Index nonzeros_
Number of nonzeros of the matrix.
Definition: IpMa27TSolverInterface.hpp:104
Ipopt::Ma27TSolverInterface::operator=
void operator=(const Ma27TSolverInterface &)
Default Assignment Operator.
Ipopt::Ma27TSolverInterface::a_
double * a_
factor A of matrix
Definition: IpMa27TSolverInterface.hpp:181
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:17
Ipopt::Ma27TSolverInterface::meminc_factor_
Number meminc_factor_
Factor for increaseing memory.
Definition: IpMa27TSolverInterface.hpp:144
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
ipfint
FORTRAN_INTEGER_TYPE ipfint
Definition: IpTypes.hpp:24
Ipopt::Ma27TSolverInterface::maxfrt_
ipfint maxfrt_
MA27's MAXFRT.
Definition: IpMa27TSolverInterface.hpp:176
Ipopt::Ma27TSolverInterface::skip_inertia_check_
bool skip_inertia_check_
Flag indicating if the inertia is always assumed to be correct.
Definition: IpMa27TSolverInterface.hpp:150
Ipopt::Ma27TSolverInterface::liw_
ipfint liw_
length of integer work space
Definition: IpMa27TSolverInterface.hpp:167
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:18
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:137
Ipopt::Ma27TSolverInterface::la_increase_
bool la_increase_
flag indicating that la should be increased before next factorization
Definition: IpMa27TSolverInterface.hpp:184
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:128
Ipopt::Ma27TSolverInterface::la_
ipfint la_
length LA of A
Definition: IpMa27TSolverInterface.hpp:179
Ipopt::Ma27TSolverInterface::iw_
ipfint * iw_
integer work space
Definition: IpMa27TSolverInterface.hpp:169
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:154
Ipopt::Ma27TSolverInterface::negevals_
Index negevals_
Number of negative eigenvalues.
Definition: IpMa27TSolverInterface.hpp:110
Ipopt::Ma27TSolverInterface::MatrixFormat
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
Definition: IpMa27TSolverInterface.hpp:66
Ipopt::Ma27TSolverInterface::la_init_factor_
Number la_init_factor_
Factor for estimating initial value of la.
Definition: IpMa27TSolverInterface.hpp:142
IpSparseSymLinearSolverInterface.hpp
Ipopt::Ma27TSolverInterface::dim_
Index dim_
Number of rows and columns of the matrix.
Definition: IpMa27TSolverInterface.hpp:101
Ipopt::Ma27TSolverInterface::GetValuesArrayPtr
virtual double * GetValuesArrayPtr()
Method returning an internal array into which the nonzero elements (in the same order as ja) will be ...
Ipopt::Ma27TSolverInterface::ikeep_
ipfint * ikeep_
MA27's IKEEP.
Definition: IpMa27TSolverInterface.hpp:172
Ipopt::Ma27TSolverInterface::pivtol_
Number pivtol_
Pivot tolerance.
Definition: IpMa27TSolverInterface.hpp:134
Ipopt::Ma27TSolverInterface::RegisterOptions
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
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:123
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:33
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.