Ipopt Documentation  
SensStepCalc.hpp
Go to the documentation of this file.
1 // Copyright 2009, 2011 Hans Pirnay
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Date : 2009-05-14
6 
7 #ifndef __ASSENSSTEPCALC_HPP__
8 #define __ASSENSSTEPCALC_HPP__
9 
10 #include "IpAlgStrategy.hpp"
11 #include "SensSchurDriver.hpp"
12 
13 namespace Ipopt
14 {
15 /* Forward declarations */
16 class DenseVector;
17 class IteratesVector;
18 
21 {
22 public:
24  : driver_(NULL),
25  do_boundcheck_(false)
26  { }
27 
29  { }
30 
31  virtual bool InitializeImpl(
32  const OptionsList& options,
33  const std::string& prefix
34  )
35  {
36  options.GetBoolValue("sens_boundcheck", do_boundcheck_, prefix);
37  return true;
38  }
39 
40  bool Do_Boundcheck() const
41  {
42  return do_boundcheck_;
43  }
44 
47  )
48  {
49  DBG_ASSERT(IsValid(driver));
50 
51  driver_ = driver;
52  if( IsValid(driver_->pcalc_nonconst()) )
53  {
54  driver_->pcalc_nonconst()->reset_data_A();
55  // when the schurdriver is set, the data in the pcalculator has to be reset to its data?
56  }
57  }
58 
59  SmartPtr<SchurDriver> Driver() // this should be const or protected
60  {
61  DBG_ASSERT(IsValid(driver_));
62 
63  return driver_;
64  }
65 
70  virtual bool Step(
71  DenseVector& delta_u,
72  IteratesVector& sol
73  ) = 0;
74 
76  virtual SmartPtr<IteratesVector> GetSensitivityVector() = 0;
77 
78 private:
81 };
82 
83 }
84 
85 #endif
bool IsValid(const SmartPtr< U > &smart_ptr)
Definition: IpSmartPtr.hpp:672
This is the interface for the classes that perform the actual step.
Specialized CompoundVector class specifically for the algorithm iterates.
This is the base class for all algorithm strategy objects.
Dense Vector Implementation.
This file contains a base class for all exceptions and a set of macros to help with exceptions...
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:164
This class stores a list of user set options.
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class...
virtual bool GetBoolValue(const std::string &tag, bool &value, const std::string &prefix) const
void SetSchurDriver(SmartPtr< SchurDriver > driver)
#define DBG_ASSERT(test)
Definition: IpDebug.hpp:27
SmartPtr< SchurDriver > Driver()
SmartPtr< SchurDriver > driver_
#define SIPOPTLIB_EXPORT
Definition: config.h:216