63
63
64
64
function generate_hessian (sys:: OptimizationSystem , vs = states (sys), ps = parameters (sys);
65
65
sparse = false , kwargs... )
66
- hes = calculate_hessian (sys)
67
66
if sparse
68
- hes = sparse (hes)
67
+ hess = sparsehessian (equations (sys),[dv () for dv in states (sys)])
68
+ else
69
+ hess = calculate_hessian (sys)
69
70
end
70
- return build_function (hes , convert .(Variable,vs), convert .(Variable,ps);
71
+ return build_function (hess , convert .(Variable,vs), convert .(Variable,ps);
71
72
conv = AbstractSysToExpr (sys),kwargs... )
72
73
end
73
74
@@ -89,6 +90,10 @@ struct AutoModelingToolkit <: DiffEqBase.AbstractADType end
89
90
DiffEqBase. OptimizationProblem (sys:: OptimizationSystem ,args... ;kwargs... ) =
90
91
DiffEqBase. OptimizationProblem {true} (sys:: OptimizationSystem ,args... ;kwargs... )
91
92
93
+ OptimizationProblemExpr (sys:: OptimizationSystem ,args... ;kwargs... ) =
94
+ OptimizationProblemExpr {true} (sys:: OptimizationSystem ,args... ;kwargs... )
95
+
96
+
92
97
"""
93
98
```julia
94
99
function DiffEqBase.OptimizationProblem{iip}(sys::OptimizationSystem,
@@ -166,8 +171,8 @@ struct OptimizationProblemExpr{iip} end
166
171
function OptimizationProblemExpr {iip} (sys:: OptimizationSystem , u0,
167
172
parammap= DiffEqBase. NullParameters ();
168
173
lb= nothing , ub= nothing ,
169
- grad = true ,
170
- hes = false , sparse = false ,
174
+ grad = false ,
175
+ hess = false , sparse = false ,
171
176
checkbounds = false ,
172
177
linenumbers = false , parallel= SerialForm (),
173
178
kwargs... ) where iip
0 commit comments