|
1 |
| -mutable struct TimeGradientWrapper{fType,uType} <: Function |
| 1 | +mutable struct TimeGradientWrapper{fType,uType,P} <: Function |
2 | 2 | f::fType
|
3 | 3 | uprev::uType
|
| 4 | + p::P |
4 | 5 | end
|
5 |
| -(p::TimeGradientWrapper)(t) = (du2 = similar(p.uprev); p.f(t,p.uprev,du2); du2) |
6 |
| -(p::TimeGradientWrapper)(du2,t) = p.f(t,p.uprev,du2) |
| 6 | +(ff::TimeGradientWrapper)(t) = (du2 = similar(ff.uprev); ff.f(du2,ff.uprev,ff.p,t); du2) |
| 7 | +(ff::TimeGradientWrapper)(du2,t) = ff.f(du2,ff.uprev,ff.p,t) |
7 | 8 |
|
8 |
| -mutable struct UJacobianWrapper{fType,tType} <: Function |
| 9 | +mutable struct UJacobianWrapper{fType,tType,P} <: Function |
9 | 10 | f::fType
|
10 | 11 | t::tType
|
| 12 | + p::P |
11 | 13 | end
|
12 | 14 |
|
13 |
| -(p::UJacobianWrapper)(du1,uprev) = p.f(p.t,uprev,du1) |
14 |
| -(p::UJacobianWrapper)(uprev) = (du1 = similar(uprev); p.f(p.t,uprev,du1); du1) |
| 15 | +(ff::UJacobianWrapper)(du1,uprev) = ff.f(du1,uprev,ff.p,ff.t) |
| 16 | +(ff::UJacobianWrapper)(uprev) = (du1 = similar(uprev); ff.f(du1,uprev,ff.p,ff.t); du1) |
15 | 17 |
|
16 |
| -mutable struct TimeDerivativeWrapper{F,uType} <: Function |
| 18 | +mutable struct TimeDerivativeWrapper{F,uType,P} <: Function |
17 | 19 | f::F
|
18 | 20 | u::uType
|
| 21 | + p::P |
19 | 22 | end
|
20 |
| -(p::TimeDerivativeWrapper)(t) = p.f(t,p.u) |
| 23 | +(ff::TimeDerivativeWrapper)(t) = ff.f(ff.u,ff.p,t) |
21 | 24 |
|
22 |
| -mutable struct UDerivativeWrapper{F,tType} <: Function |
| 25 | +mutable struct UDerivativeWrapper{F,tType,P} <: Function |
23 | 26 | f::F
|
24 | 27 | t::tType
|
| 28 | + p::P |
25 | 29 | end
|
26 |
| -(p::UDerivativeWrapper)(u) = p.f(p.t,u) |
| 30 | +(ff::UDerivativeWrapper)(u) = ff.f(u,ff.p,ff.t) |
27 | 31 |
|
28 | 32 | mutable struct ParamJacobianWrapper{fType,tType,uType} <: Function
|
29 | 33 | f::fType
|
30 | 34 | t::tType
|
31 | 35 | u::uType
|
32 | 36 | end
|
33 | 37 |
|
34 |
| -function (pf::ParamJacobianWrapper)(du1,p) |
35 |
| - pf.f(pf.t,pf.u,p,du1) |
| 38 | +function (ff::ParamJacobianWrapper)(du1,p) |
| 39 | + ff.f(du1,ff.u,p,ff.t) |
36 | 40 | end
|
37 | 41 |
|
38 |
| -function (pf::ParamJacobianWrapper)(p) |
| 42 | +function (ff::ParamJacobianWrapper)(p) |
39 | 43 | du1 = similar(uprev)
|
40 |
| - set_param_values!(pf.f,p) |
41 |
| - pf.f(pf.t,pf.u,du1) |
| 44 | + ff.f(du1,ff.u,p,ff.t) |
42 | 45 | end
|
0 commit comments