IpMa57TSolverInterface.hpp
Go to the documentation of this file.
1 // Copyright (C) 2005, 2006 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpMa57TSolverInterface.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Michael Hagemann Univ of Basel 2005-10-28
8 // original version (based on MA27TSolverInterface.hpp)
9 
10 #ifndef __IPMA57TSOLVERINTERFACE_HPP__
11 #define __IPMA57TSOLVERINTERFACE_HPP__
12 
14 
15 namespace Ipopt
16 {
21  {
22  public:
27 
29  virtual ~Ma57TSolverInterface();
31 
33  bool InitializeImpl(const OptionsList& options,
34  const std::string& prefix);
35 
36 
45  Index dim,
46  Index nonzeros,
47  const Index *airn,
48  const Index *ajcn);
49 
55  virtual double* GetValuesArrayPtr();
56 
60  virtual ESymSolverStatus MultiSolve(bool new_matrix,
61  const Index* airn,
62  const Index* ajcn,
63  Index nrhs,
64  double* rhs_vals,
65  bool check_NegEVals,
66  Index numberOfNegEVals);
67 
74  virtual Index NumberOfNegEVals() const;
76 
77  //* @name Options of Linear solver */
79 
84  virtual bool IncreaseQuality();
85 
89  virtual bool ProvidesInertia() const
90  {
91  return true;
92  }
97  {
98  return Triplet_Format;
99  }
101 
104  static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
106 
107  private:
118 
120  void operator=(const Ma57TSolverInterface&);
122 
127 
131 
137 
151 
164 
169  double wd_cntl_[5];
171 
173  double wd_rinfo_[20];
174 
175  ipfint wd_lkeep_; /* LKEEP >= 5*N + NE + max(N,NE) + 42. */
177 
178  ipfint *wd_iwork_; /* 5 * N. */
179 
180  double *wd_fact_;
184 
185 
187  double* a_;
189 
197  const Index* ajcn);
198 
204  const Index* ajcn,
205  bool check_NegEVals,
206  Index numberOfNegEVals);
207 
211  double *rhs_vals);
213  };
214 
215 } // namespace Ipopt
216 #endif