Skip to content

Commit cd3485b

Browse files
resize! only when needed EulerGravity (#2224)
Co-authored-by: Michael Schlottke-Lakemper <[email protected]>
1 parent fafa540 commit cd3485b

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/semidiscretization/semidiscretization_euler_gravity.jl

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -284,11 +284,6 @@ end
284284
function update_gravity!(semi::SemidiscretizationEulerGravity, u_ode)
285285
@unpack semi_euler, semi_gravity, parameters, gravity_counter, cache = semi
286286

287-
# Can be changed by AMR
288-
resize!(cache.du_ode, length(cache.u_ode))
289-
resize!(cache.u_tmp1_ode, length(cache.u_ode))
290-
resize!(cache.u_tmp2_ode, length(cache.u_ode))
291-
292287
u_euler = wrap_array(u_ode, semi_euler)
293288
u_gravity = wrap_array(cache.u_ode, semi_gravity)
294289
du_gravity = wrap_array(cache.du_ode, semi_gravity)
@@ -568,7 +563,17 @@ end
568563
t, iter; kwargs...)
569564
passive_args = ((semi.cache.u_ode,
570565
mesh_equations_solver_cache(semi.semi_gravity)...),)
571-
amr_callback(u_ode, mesh_equations_solver_cache(semi.semi_euler)..., semi, t, iter;
572-
kwargs..., passive_args = passive_args)
566+
has_changed = amr_callback(u_ode, mesh_equations_solver_cache(semi.semi_euler)...,
567+
semi, t, iter;
568+
kwargs..., passive_args = passive_args)
569+
570+
if has_changed
571+
new_length = length(semi.cache.u_ode)
572+
resize!(semi.cache.du_ode, new_length)
573+
resize!(semi.cache.u_tmp1_ode, new_length)
574+
resize!(semi.cache.u_tmp2_ode, new_length)
575+
end
576+
577+
return has_changed
573578
end
574579
end # @muladd

0 commit comments

Comments
 (0)