@@ -26,7 +26,6 @@ function calculate_jacobian(sys::AbstractODESystem;
26
26
rhs = [eq. rhs for eq ∈ full_equations (sys)]
27
27
28
28
iv = get_iv (sys)
29
- # dvs = states(sys)
30
29
31
30
if sparse
32
31
jac = sparsejacobian (rhs, dvs, simplify= simplify)
80
79
81
80
function generate_dae_jacobian (sys:: AbstractODESystem , dvs = states (sys), ps = parameters (sys); simplify= false , sparse= false , kwargs... )
82
81
jac_u = calculate_jacobian (sys; simplify= simplify, sparse= sparse)
83
- jac_du = calculate_jacobian (sys; simplify= simplify, sparse= sparse, dvs= Differential (independent_variable (sys)).(states (sys)))
82
+ jac_du = calculate_jacobian (sys; simplify= simplify, sparse= sparse, dvs= Differential (get_iv (sys)).(states (sys)))
84
83
dvs = states (sys)
85
84
@variables ˍ₋gamma
86
85
jac = ˍ₋gamma* jac_du + jac_u
@@ -436,7 +435,7 @@ respectively.
436
435
function DiffEqBase. DAEFunction {iip} (sys:: AbstractODESystem , dvs = states (sys),
437
436
ps = parameters (sys), u0 = nothing ;
438
437
ddvs= map (diff2term ∘ Differential (get_iv (sys)), dvs),
439
- version = nothing , tgrad = false ,
438
+ version = nothing ,
440
439
jac= false ,
441
440
eval_expression = true ,
442
441
sparse= false , simplify= false ,
@@ -449,36 +448,22 @@ function DiffEqBase.DAEFunction{iip}(sys::AbstractODESystem, dvs = states(sys),
449
448
f (du,u,p,t) = f_oop (du,u,p,t)
450
449
f (out,du,u,p,t) = f_iip (out,du,u,p,t)
451
450
452
- if tgrad
453
- tgrad_gen = generate_tgrad (sys, dvs, ps;
454
- simplify= simplify,
455
- expression= Val{eval_expression}, expression_module= eval_module,
456
- checkbounds= checkbounds, kwargs... )
457
- tgrad_oop, tgrad_iip = eval_expression ? (@RuntimeGeneratedFunction (eval_module, ex) for ex in tgrad_gen) : tgrad_gen
458
- _tgrad (u,p,t) = tgrad_oop (u,p,t)
459
- _tgrad (J,u,p,t) = tgrad_iip (J,u,p,t)
460
- else
461
- _tgrad = nothing
462
- end
463
-
464
451
if jac
465
452
jac_gen = generate_dae_jacobian (sys, dvs, ps;
466
453
simplify= simplify, sparse= sparse,
467
454
expression= Val{eval_expression}, expression_module= eval_module,
468
455
checkbounds= checkbounds, kwargs... )
469
456
jac_oop, jac_iip = eval_expression ? (@RuntimeGeneratedFunction (eval_module, ex) for ex in jac_gen) : jac_gen
470
- _jac (u,p,t) = jac_oop (u,p,t)
471
- _jac (J,u,p,t) = jac_iip (J,u,p,t)
457
+ _jac (du, u,p,t) = jac_oop (du, u,p,t)
458
+ _jac (J,du, u,p,ˍ₋gamma, t) = jac_iip (J,du, u,p,ˍ₋gamma ,t)
472
459
else
473
460
_jac = nothing
474
461
end
475
462
476
463
DAEFunction {iip} (
477
464
f,
478
465
jac = _jac === nothing ? nothing : _jac,
479
- tgrad = _tgrad === nothing ? nothing : _tgrad,
480
- syms = Symbol .(dvs),
481
- indepsym = Symbol (get_iv (sys)),
466
+ syms = Symbol .(dvs)
482
467
# missing fields in `DAEFunction`
483
468
# indepsym = Symbol(get_iv(sys)),
484
469
# observed = observedfun,
0 commit comments