Ipopt
3.11.4
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
contrib
sIPOPT
src
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
14
namespace
Ipopt
15
{
17
class
DenseVector;
18
class
IteratesVector;
19
20
class
SensitivityStepCalculator
:
public
AlgorithmStrategyObject
21
{
22
/* This is the interface for the classes that perform the actual step. */
23
24
public
:
25
SensitivityStepCalculator
()
26
:
27
driver_
(NULL),
28
do_boundcheck_
(false)
29
{
30
}
31
32
virtual
~SensitivityStepCalculator
()
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
48
void
SetSchurDriver
(
SmartPtr<SchurDriver>
driver)
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
{
60
DBG_ASSERT
(
IsValid
(
driver_
));
61
return
driver_
;
62
}
63
66
virtual
bool
Step
(
DenseVector
& delta_u,
IteratesVector
& sol) =0;
67
68
69
private
:
70
SmartPtr<SchurDriver>
driver_
;
71
bool
do_boundcheck_
;
72
};
73
}
74
75
#endif
Generated on Mon Oct 21 2013 19:08:14 for Ipopt by
1.8.4