Ipopt 3.11.9
Loading...
Searching...
No Matches
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
14namespace Ipopt
15{
17 class DenseVector;
18 class IteratesVector;
19
21 {
22 /* This is the interface for the classes that perform the actual step. */
23
24 public:
26 :
27 driver_(NULL),
28 do_boundcheck_(false)
29 {
30 }
31
33 {
34 }
35
36 virtual bool InitializeImpl(const OptionsList& options,
37 const std::string& prefix)
38 {
39 options.GetBoolValue("sens_boundcheck", do_boundcheck_, prefix);
40 return true;
41 }
42
43 bool Do_Boundcheck() const
44 {
45 return do_boundcheck_;
46 }
47
49 {
50 DBG_ASSERT(IsValid(driver));
51 driver_ = driver;
52 if (IsValid(driver_->pcalc_nonconst())) {
53 driver_->pcalc_nonconst()->reset_data_A();
54 // when the schurdriver is set, the data in the pcalculator has to be reset to its data?
55 }
56 }
57
58 SmartPtr<SchurDriver> Driver() // this should be const or protected
59 {
61 return driver_;
62 }
63
66 virtual bool Step(DenseVector& delta_u, IteratesVector& sol) =0;
67
68
69 private:
72 };
73}
74
75#endif
#define DBG_ASSERT(test)
Definition IpDebug.hpp:38
This is the base class for all algorithm strategy objects.
Dense Vector Implementation.
Specialized CompoundVector class specifically for the algorithm iterates.
This class stores a list of user set options.
virtual bool GetBoolValue(const std::string &tag, bool &value, const std::string &prefix) const
void SetSchurDriver(SmartPtr< SchurDriver > driver)
SmartPtr< SchurDriver > Driver()
virtual bool Step(DenseVector &delta_u, IteratesVector &sol)=0
This is the main algorithmic function of this class; It calculates a step using its SchurDriver,...
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.
SmartPtr< SchurDriver > driver_
Template class for Smart Pointers.
bool IsValid(const SmartPtr< U > &smart_ptr)