Ipopt Documentation  
IpIterativeWsmpSolverInterface.hpp
Go to the documentation of this file.
1 // Copyright (C) 2009 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 2009-09-18
6 // based on IpWsmpSolverInterface.hpp (rev 1483)
7 
8 #ifndef __IPITERATIVEWSMPSOLVERINTERFACE_HPP__
9 #define __IPITERATIVEWSMPSOLVERINTERFACE_HPP__
10 
12 
13 namespace Ipopt
14 {
15 
20 {
21 public:
26 
30 
31  bool InitializeImpl(
32  const OptionsList& options,
33  const std::string& prefix
34  );
35 
39  Index dim,
40  Index nonzeros,
41  const Index* ia,
42  const Index* ja
43  );
44 
45  virtual double* GetValuesArrayPtr();
46 
48  bool new_matrix,
49  const Index* ia,
50  const Index* ja,
51  Index nrhs,
52  double* rhs_vals,
53  bool check_NegEVals,
54  Index numberOfNegEVals
55  );
56 
57  virtual Index NumberOfNegEVals() const;
59 
60  //* @name Options of Linear solver */
62  virtual bool IncreaseQuality();
63 
64  virtual bool ProvidesInertia() const
65  {
66  return false;
67  }
68 
70  {
71  return CSR_Format_1_Offset;
72  }
74 
75  static void RegisterOptions(
77  );
78 
79 private:
92  );
93 
95  void operator=(
97  );
99 
104 
106  double* a_;
108 
124 
127 
130 #if 0
131 
132  Index negevals_;
133 #endif
134 
135 
151 
157  double* DPARM_;
159 
165  const Index* ia,
166  const Index* ja
167  );
168 
171  const Index* ia,
172  const Index* ja
173  );
174 
177  const Index* ia,
178  const Index* ja,
179  bool check_NegEVals,
180  Index numberOfNegEVals
181  );
182 
185  const Index* ia,
186  const Index* ja,
187  Index nrhs,
188  double* rhs_vals
189  );
191 };
192 
193 } // namespace Ipopt
194 #endif
Ipopt::IterativeWsmpSolverInterface::wsmp_num_threads_
Index wsmp_num_threads_
Option that controls the matching strategy.
Definition: IpIterativeWsmpSolverInterface.hpp:112
Ipopt::ESymSolverStatus
ESymSolverStatus
Enum to report outcome of a linear solve.
Definition: IpSymLinearSolver.hpp:19
Ipopt::IterativeWsmpSolverInterface::have_symbolic_factorization_
bool have_symbolic_factorization_
Flag indicating whether symbolic factorization and order has already been performed.
Definition: IpIterativeWsmpSolverInterface.hpp:149
Ipopt::IterativeWsmpSolverInterface::matrix_file_number_
Index matrix_file_number_
Counter for matrix file numbers.
Definition: IpIterativeWsmpSolverInterface.hpp:126
Ipopt::IterativeWsmpSolverInterface::wsmp_pivtolmax_
Number wsmp_pivtolmax_
Maximal pivot tolerance.
Definition: IpIterativeWsmpSolverInterface.hpp:116
Ipopt::SparseSymLinearSolverInterface::EMatrixFormat
EMatrixFormat
Enum to specify sparse matrix format.
Definition: IpSparseSymLinearSolverInterface.hpp:100
Ipopt::IterativeWsmpSolverInterface::a_
double * a_
Array for storing the values of the matrix.
Definition: IpIterativeWsmpSolverInterface.hpp:106
Ipopt::IterativeWsmpSolverInterface::pivtol_changed_
bool pivtol_changed_
Flag indicating if the matrix has to be refactorized because the pivot tolerance has been changed.
Definition: IpIterativeWsmpSolverInterface.hpp:145
Ipopt::IterativeWsmpSolverInterface::operator=
void operator=(const IterativeWsmpSolverInterface &)
Default Assignment Operator.
Ipopt::IterativeWsmpSolverInterface::SymbolicFactorization
ESymSolverStatus SymbolicFactorization(const Index *ia, const Index *ja)
Call Wsmp to do the analysis phase.
Ipopt
This file contains a base class for all exceptions and a set of macros to help with exceptions.
Definition: IpInexactAlgBuilder.hpp:13
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:15
Ipopt::SparseSymLinearSolverInterface::CSR_Format_1_Offset
@ CSR_Format_1_Offset
Compressed sparse row format for lower triangular part, with 1 offset.
Definition: IpSparseSymLinearSolverInterface.hpp:107
Ipopt::SparseSymLinearSolverInterface
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
Definition: IpSparseSymLinearSolverInterface.hpp:96
Ipopt::IterativeWsmpSolverInterface::~IterativeWsmpSolverInterface
virtual ~IterativeWsmpSolverInterface()
Destructor.
Ipopt::Index
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:17
Ipopt::IterativeWsmpSolverInterface::wsmp_inexact_fillin_limit_
Number wsmp_inexact_fillin_limit_
Definition: IpIterativeWsmpSolverInterface.hpp:122
Ipopt::IterativeWsmpSolverInterface::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::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:171
Ipopt::IterativeWsmpSolverInterface::InternalSymFact
ESymSolverStatus InternalSymFact(const Index *ia, const Index *ja)
Call Wsmp to really do the analysis phase.
Ipopt::IterativeWsmpSolverInterface::GetValuesArrayPtr
virtual double * GetValuesArrayPtr()
Method returning an internal array into which the nonzero elements (in the same order as ja) will be ...
ipfint
FORTRAN_INTEGER_TYPE ipfint
Definition: IpTypes.hpp:24
Ipopt::IterativeWsmpSolverInterface::IncreaseQuality
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
Ipopt::IterativeWsmpSolverInterface::MultiSolve
virtual ESymSolverStatus MultiSolve(bool new_matrix, const Index *ia, const Index *ja, Index nrhs, double *rhs_vals, bool check_NegEVals, Index numberOfNegEVals)
Solve operation for multiple right hand sides.
Ipopt::IterativeWsmpSolverInterface::InitializeStructure
virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *ia, const Index *ja)
Method for initializing internal structures.
Ipopt::IterativeWsmpSolverInterface::dim_
Index dim_
Number of rows and columns of the matrix.
Definition: IpIterativeWsmpSolverInterface.hpp:103
Ipopt::IterativeWsmpSolverInterface::ProvidesInertia
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
Definition: IpIterativeWsmpSolverInterface.hpp:64
Ipopt::IterativeWsmpSolverInterface::Factorization
ESymSolverStatus Factorization(const Index *ia, const Index *ja, bool check_NegEVals, Index numberOfNegEVals)
Call Wsmp to factorize the Matrix.
Ipopt::IterativeWsmpSolverInterface::initialized_
bool initialized_
Flag indicating if internal data is initialized.
Definition: IpIterativeWsmpSolverInterface.hpp:141
Ipopt::IterativeWsmpSolverInterface::wsmp_scaling_
Index wsmp_scaling_
Indicating which of WSMP's scaling methods should be used.
Definition: IpIterativeWsmpSolverInterface.hpp:118
Ipopt::IterativeWsmpSolverInterface::DPARM_
double * DPARM_
Double precision parameter array for WISMP.
Definition: IpIterativeWsmpSolverInterface.hpp:157
Ipopt::IterativeWsmpSolverInterface::Solve
ESymSolverStatus Solve(const Index *ia, const Index *ja, Index nrhs, double *rhs_vals)
Call Wsmpx to do the Solve.
Ipopt::IterativeWsmpSolverInterface::IterativeWsmpSolverInterface
IterativeWsmpSolverInterface()
Constructor.
IpSparseSymLinearSolverInterface.hpp
Ipopt::IterativeWsmpSolverInterface::wsmp_write_matrix_iteration_
Index wsmp_write_matrix_iteration_
iteration number in which matrices are to be written out
Definition: IpIterativeWsmpSolverInterface.hpp:120
Ipopt::IterativeWsmpSolverInterface
Interface to the linear solver WISMP, derived from SparseSymLinearSolverInterface.
Definition: IpIterativeWsmpSolverInterface.hpp:19
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::IterativeWsmpSolverInterface::RegisterOptions
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Ipopt::IterativeWsmpSolverInterface::MatrixFormat
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
Definition: IpIterativeWsmpSolverInterface.hpp:69
Ipopt::IterativeWsmpSolverInterface::IPARM_
ipfint * IPARM_
Integer parameter array for WISMP.
Definition: IpIterativeWsmpSolverInterface.hpp:155
Ipopt::IterativeWsmpSolverInterface::wsmp_pivtol_
Number wsmp_pivtol_
Pivot tolerance.
Definition: IpIterativeWsmpSolverInterface.hpp:114
Ipopt::IterativeWsmpSolverInterface::wsmp_inexact_droptol_
Number wsmp_inexact_droptol_
Definition: IpIterativeWsmpSolverInterface.hpp:121
Ipopt::IterativeWsmpSolverInterface::NumberOfNegEVals
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.