Skip to content

Commit 533f9a8

Browse files
@..
1 parent 75168c8 commit 533f9a8

File tree

1 file changed

+27
-25
lines changed

1 file changed

+27
-25
lines changed

lib/OrdinaryDiffEqFIRK/src/firk_perform_step.jl

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1399,9 +1399,9 @@ end
13991399
end
14001400
else
14011401
c_prime = Vector{typeof(u)}(undef, num_stages) #time stepping
1402-
c_prime[num_stages] = dt / cache.dtprev
1402+
c_prime[num_stages] = @.. dt / cache.dtprev
14031403
for i in 1 : num_stages - 1
1404-
c_prime[i] = c[i] * c_prime[num_stages]
1404+
c_prime[i] = @.. c[i] * c_prime[num_stages]
14051405
end
14061406
for i in 1 : num_stages # collocation polynomial
14071407
z[i] = @.. cont[num_stages] * (c_prime[i] - c[1] + 1) + cont[num_stages - 1]
@@ -1414,9 +1414,9 @@ end
14141414
end
14151415
#w = TI*z
14161416
for i in 1:num_stages
1417-
w[i] = zero(u)
1417+
w[i] = @.. zero(u)
14181418
for j in 1:num_stages
1419-
w[i] += TI[i,j] * z[j]
1419+
w[i] =@.. w[i] + TI[i,j] * z[j]
14201420
end
14211421
end
14221422
end
@@ -1439,10 +1439,10 @@ end
14391439

14401440
#fw = TI * ff
14411441
fw = Vector{typeof(u)}(undef, num_stages)
1442-
for i in 1:num_stages
1443-
fw[i] = zero(u)
1442+
for i in 1 : num_stages
1443+
fw[i] = @.. zero(u)
14441444
for j in 1:num_stages
1445-
fw[i] += TI[i,j] * ff[j]
1445+
fw[i] = @.. fw[i] + TI[i,j] * ff[j]
14461446
end
14471447
end
14481448

@@ -1468,8 +1468,8 @@ end
14681468
dw[1] = _reshape(LU1 \ _vec(rhs[1]), axes(u))
14691469
for i in 2 :(num_stages + 1) ÷ 2
14701470
tmp = _reshape(LU2[i - 1] \ _vec(@.. rhs[2 * i - 2] + rhs[2 * i - 1] * im), axes(u))
1471-
dw[2 * i - 2] = real(tmp)
1472-
dw[2 * i - 1] = imag(tmp)
1471+
dw[2 * i - 2] = @.. real(tmp)
1472+
dw[2 * i - 1] = @.. imag(tmp)
14731473
end
14741474
integrator.stats.nsolve +=(num_stages + 1) ÷ 2
14751475

@@ -1493,21 +1493,21 @@ end
14931493
end
14941494

14951495
for i in 1 : num_stages
1496-
w[i] -= dw[i]
1496+
w[i] = @.. w[i] - dw[i]
14971497
end
14981498

14991499
# transform `w` to `z`
15001500
#z = T * w
15011501
for i in 1:num_stages - 1
1502-
z[i] = zero(u)
1502+
z[i] = @.. zero(u)
15031503
for j in 1:num_stages
1504-
z[i] += T[i,j] * w[j]
1504+
z[i] = @.. z[i] + T[i,j] * w[j]
15051505
end
15061506
end
1507-
z[num_stages] = T[num_stages, 1] * w[1]
1507+
z[num_stages] = @.. T[num_stages, 1] * w[1]
15081508
i = 2
15091509
while i < num_stages
1510-
z[num_stages] += w[i]
1510+
z[num_stages] = @.. z[num_stages] + w[i]
15111511
i += 2
15121512
end
15131513

@@ -1617,7 +1617,9 @@ end
16171617
if integrator.iter == 1 || integrator.u_modified || alg.extrapolant == :constant
16181618
cache.dtprev = one(cache.dtprev)
16191619
for i in 1 : num_stages
1620-
z[i] = w[i] = cache.cont[i] = map(zero, u)
1620+
@.. z[i] = map(zero, u)
1621+
@.. w[i] = map(zero, u)
1622+
@.. cache.cont[i] = map(zero, u)
16211623
end
16221624
else
16231625
c_prime[num_stages] = dt / cache.dtprev
@@ -1635,9 +1637,9 @@ end
16351637
end
16361638
#mul!(w, TI, z)
16371639
for i in 1:num_stages
1638-
w[i] = zero(u)
1640+
@.. w[i] = zero(u)
16391641
for j in 1:num_stages
1640-
w[i] += TI[i,j] * z[j]
1642+
@.. w[i] += TI[i,j] * z[j]
16411643
end
16421644
end
16431645
end
@@ -1661,9 +1663,9 @@ end
16611663

16621664
#mul!(fw, TI, ks)
16631665
for i in 1:num_stages
1664-
fw[i] = zero(u)
1666+
fw[i] = @.. zero(u)
16651667
for j in 1:num_stages
1666-
fw[i] += TI[i,j] * ks[j]
1668+
fw[i] = @.. fw[i] + TI[i,j] * ks[j]
16671669
end
16681670
end
16691671

@@ -1736,23 +1738,23 @@ end
17361738
end
17371739
end
17381740

1739-
w[1] -= dw1
1741+
w[1] = @.. w[1] - dw1
17401742
for i in 2 : num_stages
1741-
w[i] -= dw[i - 1]
1743+
w[i] = @.. w[i] - dw[i - 1]
17421744
end
17431745

17441746
# transform `w` to `z`
17451747
#mul!(z, T, w)
17461748
for i in 1:num_stages - 1
1747-
z[i] = zero(u)
1749+
z[i] = @.. zero(u)
17481750
for j in 1:num_stages
1749-
z[i] += T[i,j] * w[j]
1751+
z[i] = @.. z[i] + T[i,j] * w[j]
17501752
end
17511753
end
1752-
z[num_stages] = T[num_stages, 1] * w[1]
1754+
z[num_stages] = @.. T[num_stages, 1] * w[1]
17531755
i = 2
17541756
while i < num_stages
1755-
z[num_stages] += w[i]
1757+
z[num_stages] = @.. z[num_stages] + w[i]
17561758
i += 2
17571759
end
17581760

0 commit comments

Comments
 (0)