Skip to content

Commit 8b64412

Browse files
more fixes
1 parent 9f6af12 commit 8b64412

File tree

3 files changed

+57
-57
lines changed

3 files changed

+57
-57
lines changed

lib/OrdinaryDiffEqFIRK/src/firk_addsteps.jl

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,8 @@ function _ode_addsteps!(integrator, cache::RadauIIA3Cache, repeat_step = false)
157157
else
158158
c2′ = dt / cache.dtprev
159159
c1′ = c1 * c2′
160-
@.. z1=c1′ * (k[3] + (c1′ - c1m1) * k[4])
161-
@.. z2=c2′ * (k[3] + (c2′ - c1m1) * k[4])
160+
@.. z1=c1′ * (integrator.k[3] + (c1′ - c1m1) * integrator.k[4])
161+
@.. z2=c2′ * (integrator.k[3] + (c2′ - c1m1) * integrator.k[4])
162162
@.. w1=TI11 * z1 + TI12 * z2
163163
@.. w2=TI21 * z1 + TI22 * z2
164164
end
@@ -467,9 +467,9 @@ else
467467
c3′ = dt / cache.dtprev
468468
c1′ = c1 * c3′
469469
c2′ = c2 * c3′
470-
@.. z1=c1′ * (k[3] + (c1′ - c2m1) * (k[4] + (c1′ - c1m1) * k[5]))
471-
@.. z2=c2′ * (k[3] + (c2′ - c2m1) * (k[4] + (c2′ - c1m1) * k[5]))
472-
@.. z3=c3′ * (k[3] + (c3′ - c2m1) * (k[4] + (c3′ - c1m1) * k[5]))
470+
@.. z1=c1′ * (integrator.k[3] + (c1′ - c2m1) * (integrator.k[4] + (c1′ - c1m1) * integrator.k[5]))
471+
@.. z1=c2′ * (integrator.k[3] + (c2′ - c2m1) * (integrator.k[4] + (c2′ - c1m1) * integrator.k[5]))
472+
@.. z1=c3′ * (integrator.k[3] + (c3′ - c2m1) * (integrator.k[4] + (c3′ - c1m1) * integrator.k[5]))
473473
@.. w1=TI11 * z1 + TI12 * z2 + TI13 * z3
474474
@.. w2=TI21 * z1 + TI22 * z2 + TI23 * z3
475475
@.. w3=TI31 * z1 + TI32 * z2 + TI33 * z3
@@ -907,25 +907,25 @@ else
907907
c2′ = c2 * c5′
908908
c3′ = c3 * c5′
909909
c4′ = c4 * c5′
910-
@.. z1 = c1′ * (k[3] +
911-
(c1′-c4m1) * (k[4] +
912-
(c1′ - c3m1) * (k[5] +
913-
(c1′ - c2m1) * (k[6] + (c1′ - c1m1) * k[7]))))
914-
@.. z2 = c2′ * (k[3] +
915-
(c2′-c4m1) * (k[4] +
916-
(c2′ - c3m1) * (k[5] +
917-
(c2′ - c2m1) * (k[6] + (c2′ - c1m1) * k[7]))))
918-
@.. z3 = c3′ * (k[3] +
919-
(c3′-c4m1) * (k[4] +
920-
(c3′ - c3m1) * (k[5] +
921-
(c3′ - c2m1) * (k[6] + (c3′ - c1m1) * k[7]))))
922-
@.. z4 = c4′ * (k[3] +
923-
(c4′-c4m1) * (k[4] +
924-
(c4′ - c3m1) * (k[5] +
925-
(c4′ - c2m1) * (k[6] + (c4′ - c1m1) * k[7]))))
926-
@.. z5 = c5′ * (k[3] +
927-
(c5′-c4m1) * (k[4] +
928-
(c5′ - c3m1) * (k[5] + (c5′ - c2m1) * (k[6] + (c5′ - c1m1) * k[7]))))
910+
@.. z1 = c1′ * (integrator.k[3] +
911+
(c1′-c4m1) * (integrator.k[4] +
912+
(c1′ - c3m1) * (integrator.k[5] +
913+
(c1′ - c2m1) * (integrator.k[6] + (c1′ - c1m1) * integrator.k[7]))))
914+
@.. z2 = c2′ * (integrator.k[3] +
915+
(c2′-c4m1) * (integrator.k[4] +
916+
(c2′ - c3m1) * (integrator.k[5] +
917+
(c2′ - c2m1) * (integrator.k[6] + (c2′ - c1m1) * integrator.k[7]))))
918+
@.. z3 = c3′ * (integrator.k[3] +
919+
(c3′-c4m1) * (integrator.k[4] +
920+
(c3′ - c3m1) * (integrator.k[5] +
921+
(c3′ - c2m1) * (integrator.k[6] + (c3′ - c1m1) * integrator.k[7]))))
922+
@.. z4 = c4′ * (integrator.k[3] +
923+
(c4′-c4m1) * (integrator.k[4] +
924+
(c4′ - c3m1) * (integrator.k[5] +
925+
(c4′ - c2m1) * (integrator.k[6] + (c4′ - c1m1) * integrator.k[7]))))
926+
@.. z5 = c5′ * (integrator.k[3] +
927+
(c5′-c4m1) * (integrator.k[4] +
928+
(c5′ - c3m1) * (integrator.k[5] + (c5′ - c2m1) * (integrator.k[6] + (c5′ - c1m1) * integrator.k[7]))))
929929
@.. w1 = TI11*z1+TI12*z2+TI13*z3+TI14*z4+TI15*z5
930930
@.. w2 = TI21*z1+TI22*z2+TI23*z3+TI24*z4+TI25*z5
931931
@.. w3 = TI31*z1+TI32*z2+TI33*z3+TI34*z4+TI35*z5

lib/OrdinaryDiffEqFIRK/src/firk_perform_step.jl

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ function initialize!(integrator, cache::RadauIIA3Cache)
4545
resize!(integrator.k, integrator.kshortsize)
4646
integrator.k[1] = integrator.fsalfirst
4747
integrator.k[2] = integrator.fsallast
48-
integrator.k[3] = similar(integrator.fsallast)
49-
integrator.k[4] = similar(integrator.fsallast)
48+
integrator.k[3] = zero(integrator.fsallast)
49+
integrator.k[4] = zero(integrator.fsallast)
5050
integrator.f(integrator.fsalfirst, integrator.uprev, integrator.p, integrator.t)
5151
OrdinaryDiffEqCore.increment_nf!(integrator.stats, 1)
5252
if integrator.opts.adaptive
@@ -83,9 +83,9 @@ function initialize!(integrator, cache::RadauIIA5Cache)
8383
resize!(integrator.k, integrator.kshortsize)
8484
integrator.k[1] = integrator.fsalfirst
8585
integrator.k[2] = integrator.fsallast
86-
integrator.k[3] = similar(integrator.fsallast)
87-
integrator.k[4] = similar(integrator.fsallast)
88-
integrator.k[5] = similar(integrator.fsallast)
86+
integrator.k[3] = zero(integrator.fsallast)
87+
integrator.k[4] = zero(integrator.fsallast)
88+
integrator.k[5] = zero(integrator.fsallast)
8989
integrator.f(integrator.fsalfirst, integrator.uprev, integrator.p, integrator.t)
9090
OrdinaryDiffEqCore.increment_nf!(integrator.stats, 1)
9191
if integrator.opts.adaptive
@@ -204,8 +204,8 @@ end
204204
else
205205
c2′ = dt / cache.dtprev
206206
c1′ = c1 * c2′
207-
z1 = @.. c1′ * (k[3] + (c1′ - c1m1) * k[4])
208-
z2 = @.. c2′ * (k[3] + (c2′ - c1m1) * k[4])
207+
z1 = @.. c1′ * (integrator.k[3] + (c1′ - c1m1) * integrator.k[4])
208+
z2 = @.. c2′ * (integrator.k[3] + (c2′ - c1m1) * integrator.k[4])
209209
w1 = @.. TI11 * z1 + TI12 * z2
210210
w2 = @.. TI21 * z1 + TI22 * z2
211211
end
@@ -347,8 +347,8 @@ end
347347
else
348348
c2′ = dt / cache.dtprev
349349
c1′ = c1 * c2′
350-
@.. z1=c1′ * (k[3] + (c1′ - c1m1) * k[4])
351-
@.. z2=c2′ * (k[3] + (c2′ - c1m1) * k[4])
350+
@.. z1=c1′ * (integrator.k[3] + (c1′ - c1m1) * integrator.k[4])
351+
@.. z2=c2′ * (integrator.k[3] + (c2′ - c1m1) * integrator.k[4])
352352
@.. w1=TI11 * z1 + TI12 * z2
353353
@.. w2=TI21 * z1 + TI22 * z2
354354
end
@@ -697,9 +697,9 @@ end
697697
c3′ = dt / cache.dtprev
698698
c1′ = c1 * c3′
699699
c2′ = c2 * c3′
700-
@.. z1=c1′ * (k[3] + (c1′ - c2m1) * (k[4] + (c1′ - c1m1) * k[5]))
701-
@.. z2=c2′ * (k[3] + (c2′ - c2m1) * (k[4] + (c2′ - c1m1) * k[5]))
702-
@.. z3=c3′ * (k[3] + (c3′ - c2m1) * (k[4] + (c3′ - c1m1) * k[5]))
700+
@.. z1=c1′ * (integrator.k[3] + (c1′ - c2m1) * (integrator.k[4] + (c1′ - c1m1) * integrator.k[5]))
701+
@.. z1=c2′ * (integrator.k[3] + (c2′ - c2m1) * (integrator.k[4] + (c2′ - c1m1) * integrator.k[5]))
702+
@.. z1=c3′ * (integrator.k[3] + (c3′ - c2m1) * (integrator.k[4] + (c3′ - c1m1) * integrator.k[5]))
703703
@.. w1=TI11 * z1 + TI12 * z2 + TI13 * z3
704704
@.. w2=TI21 * z1 + TI22 * z2 + TI23 * z3
705705
@.. w3=TI31 * z1 + TI32 * z2 + TI33 * z3
@@ -1200,25 +1200,25 @@ end
12001200
c2′ = c2 * c5′
12011201
c3′ = c3 * c5′
12021202
c4′ = c4 * c5′
1203-
@.. z1 = c1′ * (k[3] +
1204-
(c1′-c4m1) * (k[4] +
1205-
(c1′ - c3m1) * (k[5] +
1206-
(c1′ - c2m1) * (k[6] + (c1′ - c1m1) * k[7]))))
1207-
@.. z2 = c2′ * (k[3] +
1208-
(c2′-c4m1) * (k[4] +
1209-
(c2′ - c3m1) * (k[5] +
1210-
(c2′ - c2m1) * (k[6] + (c2′ - c1m1) * k[7]))))
1211-
@.. z3 = c3′ * (k[3] +
1212-
(c3′-c4m1) * (k[4] +
1213-
(c3′ - c3m1) * (k[5] +
1214-
(c3′ - c2m1) * (k[6] + (c3′ - c1m1) * k[7]))))
1215-
@.. z4 = c4′ * (k[3] +
1216-
(c4′-c4m1) * (k[4] +
1217-
(c4′ - c3m1) * (k[5] +
1218-
(c4′ - c2m1) * (k[6] + (c4′ - c1m1) * k[7]))))
1219-
@.. z5 = c5′ * (k[3] +
1220-
(c5′-c4m1) * (k[4] +
1221-
(c5′ - c3m1) * (k[5] + (c5′ - c2m1) * (k[6] + (c5′ - c1m1) * k[7]))))
1203+
@.. z1 = c1′ * (integrator.k[3] +
1204+
(c1′-c4m1) * (integrator.k[4] +
1205+
(c1′ - c3m1) * (integrator.k[5] +
1206+
(c1′ - c2m1) * (integrator.k[6] + (c1′ - c1m1) * integrator.k[7]))))
1207+
@.. z2 = c2′ * (integrator.k[3] +
1208+
(c2′-c4m1) * (integrator.k[4] +
1209+
(c2′ - c3m1) * (integrator.k[5] +
1210+
(c2′ - c2m1) * (integrator.k[6] + (c2′ - c1m1) * integrator.k[7]))))
1211+
@.. z3 = c3′ * (integrator.k[3] +
1212+
(c3′-c4m1) * (integrator.k[4] +
1213+
(c3′ - c3m1) * (integrator.k[5] +
1214+
(c3′ - c2m1) * (integrator.k[6] + (c3′ - c1m1) * integrator.k[7]))))
1215+
@.. z4 = c4′ * (integrator.k[3] +
1216+
(c4′-c4m1) * (integrator.k[4] +
1217+
(c4′ - c3m1) * (integrator.k[5] +
1218+
(c4′ - c2m1) * (integrator.k[6] + (c4′ - c1m1) * integrator.k[7]))))
1219+
@.. z5 = c5′ * (integrator.k[3] +
1220+
(c5′-c4m1) * (integrator.k[4] +
1221+
(c5′ - c3m1) * (integrator.k[5] + (c5′ - c2m1) * (integrator.k[6] + (c5′ - c1m1) * integrator.k[7]))))
12221222
@.. w1 = TI11*z1+TI12*z2+TI13*z3+TI14*z4+TI15*z5
12231223
@.. w2 = TI21*z1+TI22*z2+TI23*z3+TI24*z4+TI25*z5
12241224
@.. w3 = TI31*z1+TI32*z2+TI33*z3+TI34*z4+TI35*z5

lib/OrdinaryDiffEqFIRK/test/ode_firk_tests.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ for iip in (true, false)
5555
end
5656
@test length(sol) < 150
5757
@test length(solve(remake(vanstiff, p = 1e7), RadauIIA5())) < 150
58-
@test length(solve(remake(vanstiff, p = 1e7), reltol = [1e-4, 1e-6], RadauIIA5())) < 170
58+
@test length(solve(remake(vanstiff, p = 1e7), reltol = [1e-4, 1e-6], RadauIIA5())) < 180
5959
@test length(solve(remake(vanstiff, p = 1e7), RadauIIA5(), reltol = 1e-9,
60-
abstol = 1e-9)) < 870
60+
abstol = 1e-9)) < 970
6161
@test length(solve(remake(vanstiff, p = 1e9), RadauIIA5())) < 170
6262
@test length(solve(remake(vanstiff, p = 1e10), RadauIIA5())) < 190
6363
end

0 commit comments

Comments
 (0)