From 4e1b7dd387d34a74c3e60bfd2b87ca3a53567f4f Mon Sep 17 00:00:00 2001 From: ArseniyKholod <119304909+ArseniyKholod@users.noreply.github.com> Date: Fri, 25 Aug 2023 17:25:16 +0300 Subject: [PATCH 1/5] add load_timestep! --- examples/tree_2d_dgsem/elixir_advection_restart.jl | 3 +-- src/Trixi.jl | 2 +- src/callbacks_step/save_restart.jl | 10 ++++++++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/examples/tree_2d_dgsem/elixir_advection_restart.jl b/examples/tree_2d_dgsem/elixir_advection_restart.jl index 72efb7d0c84..771ec5aefe7 100644 --- a/examples/tree_2d_dgsem/elixir_advection_restart.jl +++ b/examples/tree_2d_dgsem/elixir_advection_restart.jl @@ -32,8 +32,7 @@ integrator = init(ode, alg, save_everystep=false, callback=callbacks) # Get the last time index and work with that. -integrator.iter = load_timestep(restart_filename) -integrator.stats.naccept = integrator.iter +load_timestep!(integrator, restart_filename) ############################################################################### # run the simulation diff --git a/src/Trixi.jl b/src/Trixi.jl index ec4d20558e5..be43c45b93d 100644 --- a/src/Trixi.jl +++ b/src/Trixi.jl @@ -253,7 +253,7 @@ export SummaryCallback, SteadyStateCallback, AnalysisCallback, AliveCallback, GlmSpeedCallback, LBMCollisionCallback, EulerAcousticsCouplingCallback, TrivialCallback, AnalysisCallbackCoupled -export load_mesh, load_time, load_timestep, load_dt +export load_mesh, load_time, load_timestep, load_timestep!, load_dt export ControllerThreeLevel, ControllerThreeLevelCombined, IndicatorLöhner, IndicatorLoehner, IndicatorMax, diff --git a/src/callbacks_step/save_restart.jl b/src/callbacks_step/save_restart.jl index f567a5c7fda..bc867901e65 100644 --- a/src/callbacks_step/save_restart.jl +++ b/src/callbacks_step/save_restart.jl @@ -141,6 +141,16 @@ function load_timestep(restart_file::AbstractString) end end +""" + load_timestep!(integrator, restart_file::AbstractString) + +Load the time step number (`iter` and `stats.naccept` in OrdinaryDiffEq.jl) saved in a `restart_file`. +""" +function load_timestep!(integrator, restart_file::AbstractString) + integrator.iter = load_timestep(restart_file) + integrator.stats.naccept = integrator.iter +end + """ load_dt(restart_file::AbstractString) From fa9274bd88c8bb75c1078fa11ac3e876095f1a43 Mon Sep 17 00:00:00 2001 From: ArseniyKholod <119304909+ArseniyKholod@users.noreply.github.com> Date: Wed, 30 Aug 2023 11:16:27 +0300 Subject: [PATCH 2/5] Update save_restart.jl --- src/callbacks_step/save_restart.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/callbacks_step/save_restart.jl b/src/callbacks_step/save_restart.jl index bc867901e65..7ce0b745f33 100644 --- a/src/callbacks_step/save_restart.jl +++ b/src/callbacks_step/save_restart.jl @@ -144,7 +144,8 @@ end """ load_timestep!(integrator, restart_file::AbstractString) -Load the time step number (`iter` and `stats.naccept` in OrdinaryDiffEq.jl) saved in a `restart_file`. +Load the time step number (`iter` in OrdinaryDiffEq.jl) saved in a `restart_file`. +And set the number of accepted steps (`stats.naccept` in OrdinaryDiffEq.jl) """ function load_timestep!(integrator, restart_file::AbstractString) integrator.iter = load_timestep(restart_file) From 0866a0e94fcc3a6485d7e60553c255c926ac2a93 Mon Sep 17 00:00:00 2001 From: ArseniyKholod <119304909+ArseniyKholod@users.noreply.github.com> Date: Wed, 30 Aug 2023 11:18:27 +0300 Subject: [PATCH 3/5] Update save_restart.jl --- src/callbacks_step/save_restart.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/callbacks_step/save_restart.jl b/src/callbacks_step/save_restart.jl index 7ce0b745f33..8f472f2681d 100644 --- a/src/callbacks_step/save_restart.jl +++ b/src/callbacks_step/save_restart.jl @@ -144,8 +144,8 @@ end """ load_timestep!(integrator, restart_file::AbstractString) -Load the time step number (`iter` in OrdinaryDiffEq.jl) saved in a `restart_file`. -And set the number of accepted steps (`stats.naccept` in OrdinaryDiffEq.jl) +Load the time step number (`iter` in OrdinaryDiffEq.jl) saved in a `restart_file`. And set +the number of accepted steps (`stats.naccept` in OrdinaryDiffEq.jl) equal to the time step number. """ function load_timestep!(integrator, restart_file::AbstractString) integrator.iter = load_timestep(restart_file) From 24c8c871260980b4c684488c01ae9c6f7502eed5 Mon Sep 17 00:00:00 2001 From: ArseniyKholod <119304909+ArseniyKholod@users.noreply.github.com> Date: Wed, 30 Aug 2023 12:45:51 +0300 Subject: [PATCH 4/5] Update src/callbacks_step/save_restart.jl Co-authored-by: Michael Schlottke-Lakemper --- src/callbacks_step/save_restart.jl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/callbacks_step/save_restart.jl b/src/callbacks_step/save_restart.jl index 8f472f2681d..06817a9b730 100644 --- a/src/callbacks_step/save_restart.jl +++ b/src/callbacks_step/save_restart.jl @@ -144,8 +144,9 @@ end """ load_timestep!(integrator, restart_file::AbstractString) -Load the time step number (`iter` in OrdinaryDiffEq.jl) saved in a `restart_file`. And set -the number of accepted steps (`stats.naccept` in OrdinaryDiffEq.jl) equal to the time step number. +Load the time step number saved in a `restart_file` and assign it to both the time step +number and and the number of accepted steps +(`iter` and `stats.naccept` in OrdinaryDiffEq.jl, respectively) in `integrator`. """ function load_timestep!(integrator, restart_file::AbstractString) integrator.iter = load_timestep(restart_file) From d363edf524846309244cb608186b773e9a00c4ff Mon Sep 17 00:00:00 2001 From: ArseniyKholod <119304909+ArseniyKholod@users.noreply.github.com> Date: Wed, 30 Aug 2023 12:01:42 +0300 Subject: [PATCH 5/5] use new function in elixirs and docs --- docs/src/restart.md | 3 +-- examples/p4est_2d_dgsem/elixir_advection_restart.jl | 3 +-- examples/p4est_3d_dgsem/elixir_advection_restart.jl | 3 +-- examples/structured_2d_dgsem/elixir_advection_restart.jl | 3 +-- examples/structured_3d_dgsem/elixir_advection_restart.jl | 3 +-- examples/tree_3d_dgsem/elixir_advection_restart.jl | 3 +-- examples/unstructured_2d_dgsem/elixir_euler_restart.jl | 3 +-- 7 files changed, 7 insertions(+), 14 deletions(-) diff --git a/docs/src/restart.md b/docs/src/restart.md index d24d93cb297..204829bb329 100644 --- a/docs/src/restart.md +++ b/docs/src/restart.md @@ -77,8 +77,7 @@ and its time step number, e.g.: ```julia integrator = init(ode, CarpenterKennedy2N54(williamson_condition=false), dt=dt, save_everystep=false, callback=callbacks); -integrator.iter = load_timestep(restart_filename) -integrator.stats.naccept = integrator.iter +load_timestep!(integrator, restart_filename) ``` Now we can compute the solution: diff --git a/examples/p4est_2d_dgsem/elixir_advection_restart.jl b/examples/p4est_2d_dgsem/elixir_advection_restart.jl index 79a35199b83..52917616a6a 100644 --- a/examples/p4est_2d_dgsem/elixir_advection_restart.jl +++ b/examples/p4est_2d_dgsem/elixir_advection_restart.jl @@ -35,8 +35,7 @@ integrator = init(ode, CarpenterKennedy2N54(williamson_condition=false), save_everystep=false, callback=callbacks); # Get the last time index and work with that. -integrator.iter = load_timestep(restart_filename) -integrator.stats.naccept = integrator.iter +load_timestep!(integrator, restart_filename) ############################################################################### diff --git a/examples/p4est_3d_dgsem/elixir_advection_restart.jl b/examples/p4est_3d_dgsem/elixir_advection_restart.jl index b27eaab62e2..26d10cf8826 100644 --- a/examples/p4est_3d_dgsem/elixir_advection_restart.jl +++ b/examples/p4est_3d_dgsem/elixir_advection_restart.jl @@ -32,8 +32,7 @@ integrator = init(ode, CarpenterKennedy2N54(williamson_condition=false), save_everystep=false, callback=callbacks); # Get the last time index and work with that. -integrator.iter = load_timestep(restart_filename) -integrator.stats.naccept = integrator.iter +load_timestep!(integrator, restart_filename) ############################################################################### diff --git a/examples/structured_2d_dgsem/elixir_advection_restart.jl b/examples/structured_2d_dgsem/elixir_advection_restart.jl index 98c44fac71a..82eaa21333a 100644 --- a/examples/structured_2d_dgsem/elixir_advection_restart.jl +++ b/examples/structured_2d_dgsem/elixir_advection_restart.jl @@ -34,8 +34,7 @@ integrator = init(ode, CarpenterKennedy2N54(williamson_condition=false), save_everystep=false, callback=callbacks); # Get the last time index and work with that. -integrator.iter = load_timestep(restart_filename) -integrator.stats.naccept = integrator.iter +load_timestep!(integrator, restart_filename) ############################################################################### # run the simulation diff --git a/examples/structured_3d_dgsem/elixir_advection_restart.jl b/examples/structured_3d_dgsem/elixir_advection_restart.jl index 39d28848c77..921c5310340 100644 --- a/examples/structured_3d_dgsem/elixir_advection_restart.jl +++ b/examples/structured_3d_dgsem/elixir_advection_restart.jl @@ -32,8 +32,7 @@ integrator = init(ode, CarpenterKennedy2N54(williamson_condition=false), save_everystep=false, callback=callbacks); # Get the last time index and work with that. -integrator.iter = load_timestep(restart_filename) -integrator.stats.naccept = integrator.iter +load_timestep!(integrator, restart_filename) ############################################################################### diff --git a/examples/tree_3d_dgsem/elixir_advection_restart.jl b/examples/tree_3d_dgsem/elixir_advection_restart.jl index 3061f165874..b7835ed061f 100644 --- a/examples/tree_3d_dgsem/elixir_advection_restart.jl +++ b/examples/tree_3d_dgsem/elixir_advection_restart.jl @@ -31,8 +31,7 @@ integrator = init(ode, CarpenterKennedy2N54(williamson_condition=false), save_everystep=false, callback=callbacks); # Get the last time index and work with that. -integrator.iter = load_timestep(restart_filename) -integrator.stats.naccept = integrator.iter +load_timestep!(integrator, restart_filename) ############################################################################### diff --git a/examples/unstructured_2d_dgsem/elixir_euler_restart.jl b/examples/unstructured_2d_dgsem/elixir_euler_restart.jl index b85cc2c6d70..6653f8662d9 100644 --- a/examples/unstructured_2d_dgsem/elixir_euler_restart.jl +++ b/examples/unstructured_2d_dgsem/elixir_euler_restart.jl @@ -33,8 +33,7 @@ integrator = init(ode, CarpenterKennedy2N54(williamson_condition=false), save_everystep=false, callback=callbacks); # Get the last time index and work with that. -integrator.iter = load_timestep(restart_filename) -integrator.stats.naccept = integrator.iter +load_timestep!(integrator, restart_filename) ###############################################################################