|
284 | 284 | function update_gravity!(semi::SemidiscretizationEulerGravity, u_ode) |
285 | 285 | @unpack semi_euler, semi_gravity, parameters, gravity_counter, cache = semi |
286 | 286 |
|
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 | | - |
292 | 287 | u_euler = wrap_array(u_ode, semi_euler) |
293 | 288 | u_gravity = wrap_array(cache.u_ode, semi_gravity) |
294 | 289 | du_gravity = wrap_array(cache.du_ode, semi_gravity) |
|
568 | 563 | t, iter; kwargs...) |
569 | 564 | passive_args = ((semi.cache.u_ode, |
570 | 565 | 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 |
573 | 578 | end |
574 | 579 | end # @muladd |
0 commit comments