@@ -758,16 +758,17 @@ function perform_step!(integrator, cache::QNDFConstantCache{max_order},
758
758
α₀ = 1
759
759
β₀ = inv ((1 - κ) * γₖ[k])
760
760
if u isa Number
761
- u₀ = sum (D[ 1 : k] ) + uprev
761
+ u₀ = sum (view (D, 1 : k) ) + uprev
762
762
ϕ = zero (u)
763
763
for i in 1 : k
764
764
ϕ += γₖ[i] * D[i]
765
765
end
766
766
else
767
- u₀ = reshape (sum (D[ :, 1 : k] , dims = 2 ) .+ uprev, size (u))
767
+ u₀ = _reshape (sum (view (D, :, 1 : k) , dims = 2 ), axes (u)) .+ uprev
768
768
ϕ = zero (u)
769
769
for i in 1 : k
770
- ϕ = @. . ϕ + γₖ[i] * D[:, i]
770
+ D_row = _reshape (view (D, :, i), axes (u))
771
+ ϕ = @. . ϕ + γₖ[i] * D_row
771
772
end
772
773
end
773
774
markfirststage! (nlsolver)
@@ -802,14 +803,14 @@ function perform_step!(integrator, cache::QNDFConstantCache{max_order},
802
803
end
803
804
integrator. EEst = error_constant (integrator, k) * internalnorm (atmp, t)
804
805
if k > 1
805
- @views atmpm1 = calculate_residuals (D[ :, k], uprev, u, integrator . opts . abstol ,
806
- integrator. opts. reltol ,
807
- integrator. opts. internalnorm, t)
806
+ @views atmpm1 = calculate_residuals (_reshape ( view (D, :, k), axes (u)) ,
807
+ uprev, u, integrator. opts. abstol ,
808
+ integrator. opts. reltol, integrator . opts . internalnorm, t)
808
809
cache. EEst1 = error_constant (integrator, k - 1 ) * internalnorm (atmpm1, t)
809
810
end
810
811
if k < max_order
811
- @views atmpp1 = calculate_residuals (D[ :, k + 2 ], uprev, u, abstol, reltol ,
812
- internalnorm, t)
812
+ @views atmpp1 = calculate_residuals (_reshape ( view (D, :, k + 2 ), axes (u)) ,
813
+ uprev, u, abstol, reltol, internalnorm, t)
813
814
cache. EEst2 = error_constant (integrator, k + 1 ) * internalnorm (atmpp1, t)
814
815
end
815
816
end
@@ -925,13 +926,13 @@ function perform_step!(integrator, cache::QNDFCache{max_order},
925
926
integrator. EEst = error_constant (integrator, k) * internalnorm (atmp, t)
926
927
if k > 1
927
928
@views calculate_residuals! (
928
- atmpm1, reshape (D[:, k], size (u)), uprev, u, abstol,
929
+ atmpm1, _reshape (D[:, k], axes (u)), uprev, u, abstol,
929
930
reltol, internalnorm, t)
930
931
cache. EEst1 = error_constant (integrator, k - 1 ) * internalnorm (atmpm1, t)
931
932
end
932
933
if k < max_order
933
934
@views calculate_residuals! (
934
- atmpp1, reshape (D[:, k + 2 ], size (u)), uprev, u, abstol,
935
+ atmpp1, _reshape (D[:, k + 2 ], axes (u)), uprev, u, abstol,
935
936
reltol, internalnorm, t)
936
937
cache. EEst2 = error_constant (integrator, k + 1 ) * internalnorm (atmpp1, t)
937
938
end
@@ -1112,7 +1113,7 @@ function perform_step!(integrator, cache::FBDFConstantCache{max_order},
1112
1113
end
1113
1114
tmp = - uprev * bdf_coeffs[k, 2 ]
1114
1115
for i in 1 : (k - 1 )
1115
- @views tmp = @. . tmp - u_corrector[ :, i] * bdf_coeffs[k, i + 2 ]
1116
+ tmp = @. . tmp - $ ( _reshape ( view ( u_corrector, :, i), axes (u))) * bdf_coeffs[k, i + 2 ]
1116
1117
end
1117
1118
end
1118
1119
@@ -1169,7 +1170,7 @@ function perform_step!(integrator, cache::FBDFConstantCache{max_order},
1169
1170
terk *= abs (dt^ (k))
1170
1171
else
1171
1172
for i in 2 : (k + 1 )
1172
- @views terk = @. . terk + fd_weights[i, k + 1 ] * u_history[ :, i - 1 ]
1173
+ terk = @. . terk + fd_weights[i, k + 1 ] * $ ( _reshape ( view ( u_history, :, i - 1 ), axes (u)))
1173
1174
end
1174
1175
terk *= abs (dt^ (k))
1175
1176
end
0 commit comments