Skip to content

Commit bd4571b

Browse files
committed
Fix resize issue
1 parent e317c46 commit bd4571b

3 files changed

Lines changed: 12 additions & 12 deletions

File tree

lib/BoundaryValueDiffEqFIRK/src/firk.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -444,19 +444,19 @@ function __expand_cache!(cache::FIRKCacheExpand)
444444
Nₙ = length(cache.mesh)
445445
__resize!(cache.k_discrete, Nₙ - 1, cache.M, cache.TU)
446446
__resize!(cache.y, Nₙ, cache.M, cache.TU)
447-
__resize!(cache.y₀, Nₙ, cache.M, cache.TU)
447+
__resize!(cache.y₀.u, Nₙ, cache.M, cache.TU)
448448
__resize!(cache.residual, Nₙ, cache.M, cache.TU)
449-
__resize!(cache.defect, Nₙ - 1, cache.M)
449+
__resize!(cache.defect.u, Nₙ - 1, cache.M)
450450
return cache
451451
end
452452

453453
function __expand_cache!(cache::FIRKCacheNested)
454454
Nₙ = length(cache.mesh)
455455
__resize!(cache.k_discrete, Nₙ - 1, cache.M)
456456
__resize!(cache.y, Nₙ, cache.M)
457-
__resize!(cache.y₀, Nₙ, cache.M)
457+
__resize!(cache.y₀.u, Nₙ, cache.M)
458458
__resize!(cache.residual, Nₙ, cache.M)
459-
__resize!(cache.defect, Nₙ - 1, cache.M)
459+
__resize!(cache.defect.u, Nₙ - 1, cache.M)
460460
return cache
461461
end
462462

@@ -579,7 +579,7 @@ function __perform_firk_iteration(cache::Union{FIRKCacheExpand, FIRKCacheNested}
579579
# We construct a new mesh to equidistribute the defect
580580
mesh, mesh_dt, _, info = mesh_selector!(cache)
581581
if info == ReturnCode.Success
582-
__resize!(cache.y₀, length(cache.mesh), cache.M, cache.TU)
582+
__resize!(cache.y₀.u, length(cache.mesh), cache.M, cache.TU)
583583
for (i, m) in enumerate(cache.mesh)
584584
interp_eval!(cache.y₀.u[i], cache, m, mesh, mesh_dt)
585585
end

lib/BoundaryValueDiffEqFIRK/src/utils.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
function BoundaryValueDiffEqCore.__resize!(x::AbstractVector{<:AbstractArray}, n, _, TU::FIRKTableau{false})
1+
function BoundaryValueDiffEqCore.__resize!(x::AbstractVector{<:AbstractArray}, n, _, TU) #::FIRKTableau{false}) # TODO: remove the TU argument and just use s = length(TU.c)
22
(; s) = TU
33
N = (n - 1) * (s + 1) + 1 - length(x)
44
N == 0 && return x

lib/BoundaryValueDiffEqMIRK/src/mirk.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -249,12 +249,12 @@ match the length of the new mesh.
249249
function __expand_cache!(cache::MIRKCache{iip, T, use_both}) where {iip, T, use_both}
250250
Nₙ = length(cache.mesh)
251251
__resize!(cache.k_discrete, Nₙ - 1, cache.M)
252-
__resize!(cache.k_interp, Nₙ - 1, cache.M)
252+
__resize!(cache.k_interp.u, Nₙ - 1, cache.M)
253253
__resize!(cache.y, Nₙ, cache.M)
254-
__resize!(cache.y₀, Nₙ, cache.M)
255-
__resize!(cache.residual, Nₙ, cache.M)
256-
__resize!(cache.errors, ifelse(use_both, 2 * (Nₙ - 1), (Nₙ - 1)), cache.M)
257-
__resize!(cache.new_stages, Nₙ - 1, cache.M)
254+
__resize!(cache.y₀.u, Nₙ, cache.M)
255+
__resize!(cache.residual.u, Nₙ, cache.M)
256+
__resize!(cache.errors.u, ifelse(use_both, 2 * (Nₙ - 1), (Nₙ - 1)), cache.M)
257+
__resize!(cache.new_stages.u, Nₙ - 1, cache.M)
258258
return cache
259259
end
260260

@@ -336,7 +336,7 @@ function __perform_mirk_iteration(cache::MIRKCache, abstol, adaptive::Bool, cont
336336
mesh, mesh_dt, _, info = mesh_selector!(cache, controller)
337337
if info == ReturnCode.Success
338338
(length(mesh) < length(cache.mesh)) &&
339-
__resize!(cache.y₀, length(cache.mesh), cache.M)
339+
__resize!(cache.y₀.u, length(cache.mesh), cache.M)
340340
for (i, m) in enumerate(cache.mesh)
341341
interp_eval!(cache.y₀.u[i], cache, m, mesh, mesh_dt)
342342
end

0 commit comments

Comments
 (0)