From d7fc7dafa52c1d91db1da7fcb68180b575724cd1 Mon Sep 17 00:00:00 2001 From: Michael Schlottke-Lakemper Date: Mon, 16 Nov 2020 06:38:16 +0100 Subject: [PATCH 01/24] Re-order callback includes --- src/callbacks_step/callbacks_step.jl | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/callbacks_step/callbacks_step.jl b/src/callbacks_step/callbacks_step.jl index 9bd08f6e1d..196f352240 100644 --- a/src/callbacks_step/callbacks_step.jl +++ b/src/callbacks_step/callbacks_step.jl @@ -24,14 +24,25 @@ end # `include` callback definitions in the order that we currently prefer -# when combining them into a `CallbackSet` which is called after a complete step +# when combining them into a `CallbackSet` which is called *after* a complete step +# The motivation is as follows: +# * `SummaryCallback` controls, among other things, timers and should thus be first +# * `SteadyStateCallback` may mark a time step as the last step, which is needed by other callbacks +# * `AnalysisCallback` may also do some checks that mark a step as the last one +# * `AliveCallback` belongs to `AnalysisCallback` and should thus be nearby +# * `SaveRestartCallback`/`SaveSolutionCallback` should save the current solution state before it is +# potentially degraded by AMR +# * `AMRCallback` really belongs to the next time step already, as it should be the "first" callback +# in a time step loop (however, callbacks are always executed *after* a step, thus it comes near +# the end here) +# * `StepsizeCallback` must come after AMR to accomodate potential changes in the minimum cell size include("summary.jl") include("steady_state.jl") -include("amr.jl") -include("stepsize.jl") -include("save_restart.jl") -include("save_solution.jl") include("analysis.jl") include("alive.jl") +include("save_restart.jl") +include("save_solution.jl") +include("amr.jl") +include("stepsize.jl") include("trivial.jl") From 59750a797c5443a53b160ebcbcaa708cf90ce2fd Mon Sep 17 00:00:00 2001 From: Gregor Gassner Date: Mon, 16 Nov 2020 16:33:49 +0100 Subject: [PATCH 02/24] change of ordering in callbacks for 1d test cases --- examples/1d/elixir_advection_amr.jl | 6 +++--- examples/1d/elixir_advection_amr_nonperiodic.jl | 6 +++--- examples/1d/elixir_advection_basic.jl | 5 +++-- examples/1d/elixir_euler_blast_wave.jl | 5 +++-- examples/1d/elixir_euler_density_wave.jl | 5 +++-- examples/1d/elixir_euler_ec.jl | 5 +++-- examples/1d/elixir_euler_nonperiodic.jl | 5 +++-- examples/1d/elixir_euler_sedov_blast_wave.jl | 6 ++++-- examples/1d/elixir_euler_shockcapturing.jl | 5 +++-- examples/1d/elixir_euler_source_terms.jl | 5 +++-- 10 files changed, 31 insertions(+), 22 deletions(-) diff --git a/examples/1d/elixir_advection_amr.jl b/examples/1d/elixir_advection_amr.jl index a6fef42e0e..71229bfe95 100644 --- a/examples/1d/elixir_advection_amr.jl +++ b/examples/1d/elixir_advection_amr.jl @@ -55,10 +55,10 @@ alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval, extra_analysis_integrals=(entropy,)) -# TODO: Taal decide, first AMR or save solution etc. -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback); + amr_callback, stepsize_callback) ############################################################################### diff --git a/examples/1d/elixir_advection_amr_nonperiodic.jl b/examples/1d/elixir_advection_amr_nonperiodic.jl index 14e6273404..8afb12ccc2 100644 --- a/examples/1d/elixir_advection_amr_nonperiodic.jl +++ b/examples/1d/elixir_advection_amr_nonperiodic.jl @@ -61,10 +61,10 @@ alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval, extra_analysis_integrals=(entropy,)) -# TODO: Taal decide, first AMR or save solution etc. -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback); + amr_callback, stepsize_callback); ############################################################################### diff --git a/examples/1d/elixir_advection_basic.jl b/examples/1d/elixir_advection_basic.jl index fda87db6ac..da38ff731c 100644 --- a/examples/1d/elixir_advection_basic.jl +++ b/examples/1d/elixir_advection_basic.jl @@ -55,9 +55,10 @@ alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval, extra_analysis_integrals=(entropy, energy_total)) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/1d/elixir_euler_blast_wave.jl b/examples/1d/elixir_euler_blast_wave.jl index 5128dd6d95..90595bd944 100644 --- a/examples/1d/elixir_euler_blast_wave.jl +++ b/examples/1d/elixir_euler_blast_wave.jl @@ -51,9 +51,10 @@ analysis_interval = 100 alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/1d/elixir_euler_density_wave.jl b/examples/1d/elixir_euler_density_wave.jl index 3c026f84dc..9cdd431390 100644 --- a/examples/1d/elixir_euler_density_wave.jl +++ b/examples/1d/elixir_euler_density_wave.jl @@ -43,9 +43,10 @@ analysis_interval = 2000 alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/1d/elixir_euler_ec.jl b/examples/1d/elixir_euler_ec.jl index 7b528e34c3..e394ab11f7 100644 --- a/examples/1d/elixir_euler_ec.jl +++ b/examples/1d/elixir_euler_ec.jl @@ -44,9 +44,10 @@ analysis_interval = 100 alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/1d/elixir_euler_nonperiodic.jl b/examples/1d/elixir_euler_nonperiodic.jl index e7fec0f439..27ed19945a 100644 --- a/examples/1d/elixir_euler_nonperiodic.jl +++ b/examples/1d/elixir_euler_nonperiodic.jl @@ -56,9 +56,10 @@ analysis_interval = 100 alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/1d/elixir_euler_sedov_blast_wave.jl b/examples/1d/elixir_euler_sedov_blast_wave.jl index 354987c849..a7f0c10f81 100644 --- a/examples/1d/elixir_euler_sedov_blast_wave.jl +++ b/examples/1d/elixir_euler_sedov_blast_wave.jl @@ -65,8 +65,10 @@ analysis_interval = 1000 alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, save_solution, - analysis_callback, alive_callback) +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, + save_solution, + amr_callback, stepsize_callback) ############################################################################### diff --git a/examples/1d/elixir_euler_shockcapturing.jl b/examples/1d/elixir_euler_shockcapturing.jl index fc0239912d..36850cbd18 100644 --- a/examples/1d/elixir_euler_shockcapturing.jl +++ b/examples/1d/elixir_euler_shockcapturing.jl @@ -51,9 +51,10 @@ analysis_interval = 100 alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/1d/elixir_euler_source_terms.jl b/examples/1d/elixir_euler_source_terms.jl index c7e1784e5e..bfb8a726bb 100644 --- a/examples/1d/elixir_euler_source_terms.jl +++ b/examples/1d/elixir_euler_source_terms.jl @@ -47,9 +47,10 @@ analysis_callback = AnalysisCallback(semi, interval=analysis_interval, extra_analysis_errors=(:l2_error_primitive, :linf_error_primitive)) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### From 0de394e66c2c3ab3d1c5fb943774f41506b08f12 Mon Sep 17 00:00:00 2001 From: Gregor Gassner Date: Mon, 16 Nov 2020 16:45:35 +0100 Subject: [PATCH 03/24] change callbacks ordering --- examples/2d/elixir_advection_amr.jl | 6 +++--- examples/2d/elixir_advection_amr_nonperiodic.jl | 6 +++--- examples/2d/elixir_advection_basic.jl | 5 +++-- examples/2d/elixir_advection_callbacks.jl | 5 +++-- examples/2d/elixir_advection_mortar.jl | 5 +++-- examples/2d/elixir_advection_timeintegration.jl | 5 +++-- examples/2d/elixir_euler_blast_wave.jl | 5 +++-- examples/2d/elixir_euler_blast_wave_amr.jl | 5 +++-- examples/2d/elixir_euler_blob_amr.jl | 5 +++-- examples/2d/elixir_euler_blob_mortar.jl | 5 +++-- examples/2d/elixir_euler_density_wave.jl | 5 +++-- examples/2d/elixir_euler_ec.jl | 5 +++-- 12 files changed, 36 insertions(+), 26 deletions(-) diff --git a/examples/2d/elixir_advection_amr.jl b/examples/2d/elixir_advection_amr.jl index 08d1fc40f5..4b1ce643ab 100644 --- a/examples/2d/elixir_advection_amr.jl +++ b/examples/2d/elixir_advection_amr.jl @@ -56,10 +56,10 @@ alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval, extra_analysis_integrals=(entropy,)) -# TODO: Taal decide, first AMR or save solution etc. -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback); + amr_callback, stepsize_callback); ############################################################################### diff --git a/examples/2d/elixir_advection_amr_nonperiodic.jl b/examples/2d/elixir_advection_amr_nonperiodic.jl index b0eb4cb430..a03bd204d9 100644 --- a/examples/2d/elixir_advection_amr_nonperiodic.jl +++ b/examples/2d/elixir_advection_amr_nonperiodic.jl @@ -62,10 +62,10 @@ alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval, extra_analysis_integrals=(entropy,)) -# TODO: Taal decide, first AMR or save solution etc. -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback); + amr_callback, stepsize_callback); ############################################################################### diff --git a/examples/2d/elixir_advection_basic.jl b/examples/2d/elixir_advection_basic.jl index cc4aeecc60..c14150bfc7 100644 --- a/examples/2d/elixir_advection_basic.jl +++ b/examples/2d/elixir_advection_basic.jl @@ -57,9 +57,10 @@ alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval, extra_analysis_integrals=(entropy, energy_total)) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_advection_callbacks.jl b/examples/2d/elixir_advection_callbacks.jl index 11f2019459..3a33fe0582 100644 --- a/examples/2d/elixir_advection_callbacks.jl +++ b/examples/2d/elixir_advection_callbacks.jl @@ -141,10 +141,11 @@ alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval, extra_analysis_integrals=(entropy, energy_total)) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, example_callback, - analysis_callback, alive_callback) + stepsize_callback) # In OrdinaryDiffEq.jl, the `step_limiter!` is called after every Runge-Kutta step # but before possible RHS evaluations of the new value occur. Hence, it's possible diff --git a/examples/2d/elixir_advection_mortar.jl b/examples/2d/elixir_advection_mortar.jl index 3158fec49c..3d7d9b493d 100644 --- a/examples/2d/elixir_advection_mortar.jl +++ b/examples/2d/elixir_advection_mortar.jl @@ -51,9 +51,10 @@ alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval, extra_analysis_integrals=(entropy,)) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_advection_timeintegration.jl b/examples/2d/elixir_advection_timeintegration.jl index 299c128460..af2b8e2397 100644 --- a/examples/2d/elixir_advection_timeintegration.jl +++ b/examples/2d/elixir_advection_timeintegration.jl @@ -44,9 +44,10 @@ alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval, extra_analysis_integrals=(entropy, energy_total)) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_euler_blast_wave.jl b/examples/2d/elixir_euler_blast_wave.jl index a47f449170..893a62b1ab 100644 --- a/examples/2d/elixir_euler_blast_wave.jl +++ b/examples/2d/elixir_euler_blast_wave.jl @@ -51,9 +51,10 @@ analysis_interval = 100 alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_euler_blast_wave_amr.jl b/examples/2d/elixir_euler_blast_wave_amr.jl index 88cea6f63e..5d6dcc7fec 100644 --- a/examples/2d/elixir_euler_blast_wave_amr.jl +++ b/examples/2d/elixir_euler_blast_wave_amr.jl @@ -64,9 +64,10 @@ analysis_interval = 100 alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + amr_callback, stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_euler_blob_amr.jl b/examples/2d/elixir_euler_blob_amr.jl index eed2fecab6..003125050d 100644 --- a/examples/2d/elixir_euler_blob_amr.jl +++ b/examples/2d/elixir_euler_blob_amr.jl @@ -69,9 +69,10 @@ analysis_interval = 100 alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + amr_callback, stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_euler_blob_mortar.jl b/examples/2d/elixir_euler_blob_mortar.jl index 7b0a9daa54..fdf842e13e 100644 --- a/examples/2d/elixir_euler_blob_mortar.jl +++ b/examples/2d/elixir_euler_blob_mortar.jl @@ -58,9 +58,10 @@ analysis_interval = 100 alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_euler_density_wave.jl b/examples/2d/elixir_euler_density_wave.jl index 8636e06024..dcbe8f4813 100644 --- a/examples/2d/elixir_euler_density_wave.jl +++ b/examples/2d/elixir_euler_density_wave.jl @@ -45,9 +45,10 @@ analysis_interval = 100 alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_euler_ec.jl b/examples/2d/elixir_euler_ec.jl index 186c0c64fa..b66778c4c9 100644 --- a/examples/2d/elixir_euler_ec.jl +++ b/examples/2d/elixir_euler_ec.jl @@ -44,9 +44,10 @@ analysis_interval = 100 alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### From 66e908a2a81b8e3c42cebf58b64e17f1ee86b37e Mon Sep 17 00:00:00 2001 From: Gregor Gassner Date: Mon, 16 Nov 2020 16:47:29 +0100 Subject: [PATCH 04/24] do we want to change the construction order as well? --- examples/1d/elixir_advection_amr.jl | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/examples/1d/elixir_advection_amr.jl b/examples/1d/elixir_advection_amr.jl index 71229bfe95..ce4ab215a8 100644 --- a/examples/1d/elixir_advection_amr.jl +++ b/examples/1d/elixir_advection_amr.jl @@ -31,6 +31,19 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 +alive_callback = AliveCallback(analysis_interval=analysis_interval) +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy,)) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) + amr_controller = ControllerThreeLevel(semi, IndicatorMax(semi, variable=first), base_level=4, med_level=5, med_threshold=0.1, @@ -42,19 +55,6 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=1.6) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy,)) - callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, save_restart, save_solution, From f879ada0216a819e1e07f4a501362e70fe36223f Mon Sep 17 00:00:00 2001 From: Gregor Gassner Date: Mon, 16 Nov 2020 16:51:44 +0100 Subject: [PATCH 05/24] changing also the order of callback construction... --- examples/1d/elixir_advection_amr.jl | 9 ++++--- .../1d/elixir_advection_amr_nonperiodic.jl | 27 ++++++++++--------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/examples/1d/elixir_advection_amr.jl b/examples/1d/elixir_advection_amr.jl index ce4ab215a8..90e4545e63 100644 --- a/examples/1d/elixir_advection_amr.jl +++ b/examples/1d/elixir_advection_amr.jl @@ -32,18 +32,19 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) analysis_callback = AnalysisCallback(semi, interval=analysis_interval, extra_analysis_integrals=(entropy,)) +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) + save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - amr_controller = ControllerThreeLevel(semi, IndicatorMax(semi, variable=first), base_level=4, med_level=5, med_threshold=0.1, diff --git a/examples/1d/elixir_advection_amr_nonperiodic.jl b/examples/1d/elixir_advection_amr_nonperiodic.jl index 8afb12ccc2..853c1c0e76 100644 --- a/examples/1d/elixir_advection_amr_nonperiodic.jl +++ b/examples/1d/elixir_advection_amr_nonperiodic.jl @@ -37,6 +37,20 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy,)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_controller = ControllerThreeLevel(semi, IndicatorMax(semi, variable=first), base_level=4, med_level=5, med_threshold=0.1, @@ -48,19 +62,6 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=1.6) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy,)) - callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, save_restart, save_solution, From 49b90fedb6f07899bb747a1766c96d7c2265bc2e Mon Sep 17 00:00:00 2001 From: Gregor Gassner Date: Mon, 16 Nov 2020 17:01:33 +0100 Subject: [PATCH 06/24] change also construction order of callbacks...1d complete? --- examples/1d/elixir_advection_basic.jl | 17 +++++++------- examples/1d/elixir_euler_blast_wave.jl | 10 ++++---- examples/1d/elixir_euler_density_wave.jl | 17 +++++++------- examples/1d/elixir_euler_ec.jl | 15 ++++++------ examples/1d/elixir_euler_nonperiodic.jl | 15 ++++++------ examples/1d/elixir_euler_sedov_blast_wave.jl | 24 +++++++++++--------- examples/1d/elixir_euler_shockcapturing.jl | 9 ++++---- examples/1d/elixir_euler_source_terms.jl | 19 ++++++++-------- 8 files changed, 68 insertions(+), 58 deletions(-) diff --git a/examples/1d/elixir_advection_basic.jl b/examples/1d/elixir_advection_basic.jl index da38ff731c..ae524aa885 100644 --- a/examples/1d/elixir_advection_basic.jl +++ b/examples/1d/elixir_advection_basic.jl @@ -40,20 +40,21 @@ ode = semidiscretize(semi, tspan); summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.6) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy, energy_total)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:conservative) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy, energy_total)) +stepsize_callback = StepsizeCallback(cfl=1.6) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/1d/elixir_euler_blast_wave.jl b/examples/1d/elixir_euler_blast_wave.jl index 90595bd944..06d306fe6d 100644 --- a/examples/1d/elixir_euler_blast_wave.jl +++ b/examples/1d/elixir_euler_blast_wave.jl @@ -40,16 +40,18 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=0.5) +analysis_interval = 100 + +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=0.5) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/1d/elixir_euler_density_wave.jl b/examples/1d/elixir_euler_density_wave.jl index 9cdd431390..a62b2c16c9 100644 --- a/examples/1d/elixir_euler_density_wave.jl +++ b/examples/1d/elixir_euler_density_wave.jl @@ -29,26 +29,27 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=0.8) +analysis_interval = 2000 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 2000 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=0.8) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, save_restart, save_solution, stepsize_callback) - ############################################################################### # run the simulation diff --git a/examples/1d/elixir_euler_ec.jl b/examples/1d/elixir_euler_ec.jl index e394ab11f7..d6665f1304 100644 --- a/examples/1d/elixir_euler_ec.jl +++ b/examples/1d/elixir_euler_ec.jl @@ -30,19 +30,20 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=0.8) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=0.8) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/1d/elixir_euler_nonperiodic.jl b/examples/1d/elixir_euler_nonperiodic.jl index 27ed19945a..043d14cdd7 100644 --- a/examples/1d/elixir_euler_nonperiodic.jl +++ b/examples/1d/elixir_euler_nonperiodic.jl @@ -42,19 +42,20 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=0.8) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=0.8) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/1d/elixir_euler_sedov_blast_wave.jl b/examples/1d/elixir_euler_sedov_blast_wave.jl index a7f0c10f81..ad159ed13b 100644 --- a/examples/1d/elixir_euler_sedov_blast_wave.jl +++ b/examples/1d/elixir_euler_sedov_blast_wave.jl @@ -39,6 +39,19 @@ semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver) tspan = (0.0, 12.5) ode = semidiscretize(semi, tspan) + +summary_callback = SummaryCallback() + +analysis_interval = 1000 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_indicator = IndicatorHennemannGassner(semi, alpha_max=0.5, alpha_min=0.001, @@ -52,19 +65,8 @@ amr_callback = AMRCallback(semi, amr_controller, adapt_initial_condition=true, adapt_initial_condition_only_refine=true) -summary_callback = SummaryCallback() - stepsize_callback = StepsizeCallback(cfl=0.8) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -analysis_interval = 1000 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) - callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, save_solution, diff --git a/examples/1d/elixir_euler_shockcapturing.jl b/examples/1d/elixir_euler_shockcapturing.jl index 36850cbd18..90b6167f8e 100644 --- a/examples/1d/elixir_euler_shockcapturing.jl +++ b/examples/1d/elixir_euler_shockcapturing.jl @@ -40,16 +40,17 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=0.8) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=0.8) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/1d/elixir_euler_source_terms.jl b/examples/1d/elixir_euler_source_terms.jl index bfb8a726bb..0ed63f235b 100644 --- a/examples/1d/elixir_euler_source_terms.jl +++ b/examples/1d/elixir_euler_source_terms.jl @@ -31,21 +31,22 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=0.8) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_errors=(:l2_error_primitive, + :linf_error_primitive)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_errors=(:l2_error_primitive, - :linf_error_primitive)) +stepsize_callback = StepsizeCallback(cfl=0.8) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, From f35636418cb2b41b2b7d3792bd2341082e4c12b1 Mon Sep 17 00:00:00 2001 From: Gregor Gassner Date: Mon, 16 Nov 2020 17:12:42 +0100 Subject: [PATCH 07/24] reordering of callbacks --- examples/2d/elixir_advection_amr.jl | 27 ++++++++--------- .../2d/elixir_advection_amr_nonperiodic.jl | 29 +++++++++---------- examples/2d/elixir_advection_basic.jl | 17 ++++++----- examples/2d/elixir_advection_callbacks.jl | 11 +++---- examples/2d/elixir_advection_mortar.jl | 17 ++++++----- .../2d/elixir_advection_timeintegration.jl | 11 +++---- examples/2d/elixir_euler_blast_wave.jl | 9 +++--- examples/2d/elixir_euler_blast_wave_amr.jl | 19 ++++++------ examples/2d/elixir_euler_blob_amr.jl | 19 ++++++------ examples/2d/elixir_euler_blob_mortar.jl | 9 +++--- examples/2d/elixir_euler_density_wave.jl | 15 +++++----- 11 files changed, 96 insertions(+), 87 deletions(-) diff --git a/examples/2d/elixir_advection_amr.jl b/examples/2d/elixir_advection_amr.jl index 4b1ce643ab..c7253ef98f 100644 --- a/examples/2d/elixir_advection_amr.jl +++ b/examples/2d/elixir_advection_amr.jl @@ -32,6 +32,20 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy,)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_controller = ControllerThreeLevel(semi, IndicatorMax(semi, variable=first), base_level=4, med_level=5, med_threshold=0.1, @@ -43,19 +57,6 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=1.6) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy,)) - callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, save_restart, save_solution, diff --git a/examples/2d/elixir_advection_amr_nonperiodic.jl b/examples/2d/elixir_advection_amr_nonperiodic.jl index a03bd204d9..b9f6b3d4f6 100644 --- a/examples/2d/elixir_advection_amr_nonperiodic.jl +++ b/examples/2d/elixir_advection_amr_nonperiodic.jl @@ -38,6 +38,20 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy,)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_controller = ControllerThreeLevel(semi, IndicatorMax(semi, variable=first), base_level=4, med_level=5, med_threshold=0.1, @@ -49,25 +63,10 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=1.6) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy,)) - callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, save_restart, save_solution, amr_callback, stepsize_callback); - - ############################################################################### # run the simulation diff --git a/examples/2d/elixir_advection_basic.jl b/examples/2d/elixir_advection_basic.jl index c14150bfc7..fb0340b4e5 100644 --- a/examples/2d/elixir_advection_basic.jl +++ b/examples/2d/elixir_advection_basic.jl @@ -42,20 +42,21 @@ ode = semidiscretize(semi, tspan); summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.6) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy, energy_total)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:conservative) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy, energy_total)) +stepsize_callback = StepsizeCallback(cfl=1.6) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/2d/elixir_advection_callbacks.jl b/examples/2d/elixir_advection_callbacks.jl index 3a33fe0582..a9a89d5bbf 100644 --- a/examples/2d/elixir_advection_callbacks.jl +++ b/examples/2d/elixir_advection_callbacks.jl @@ -127,7 +127,11 @@ ode = semidiscretize(semi, tspan); summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.6) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy, energy_total)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, @@ -136,10 +140,7 @@ save_solution = SaveSolutionCallback(interval=100, example_callback = TrixiExtensionExample.ExampleStepCallback(message="안녕하세요?") -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy, energy_total)) +stepsize_callback = StepsizeCallback(cfl=1.6) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/2d/elixir_advection_mortar.jl b/examples/2d/elixir_advection_mortar.jl index 3d7d9b493d..6bca6e6199 100644 --- a/examples/2d/elixir_advection_mortar.jl +++ b/examples/2d/elixir_advection_mortar.jl @@ -36,20 +36,21 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.6) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy,)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy,)) +stepsize_callback = StepsizeCallback(cfl=1.6) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/2d/elixir_advection_timeintegration.jl b/examples/2d/elixir_advection_timeintegration.jl index af2b8e2397..5670124575 100644 --- a/examples/2d/elixir_advection_timeintegration.jl +++ b/examples/2d/elixir_advection_timeintegration.jl @@ -32,17 +32,18 @@ ode = semidiscretize(semi, tspan); summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.6) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy, energy_total)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:conservative) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy, energy_total)) +stepsize_callback = StepsizeCallback(cfl=1.6) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/2d/elixir_euler_blast_wave.jl b/examples/2d/elixir_euler_blast_wave.jl index 893a62b1ab..58691e585c 100644 --- a/examples/2d/elixir_euler_blast_wave.jl +++ b/examples/2d/elixir_euler_blast_wave.jl @@ -40,16 +40,17 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=0.9) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=0.9) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/2d/elixir_euler_blast_wave_amr.jl b/examples/2d/elixir_euler_blast_wave_amr.jl index 5d6dcc7fec..ae5b277329 100644 --- a/examples/2d/elixir_euler_blast_wave_amr.jl +++ b/examples/2d/elixir_euler_blast_wave_amr.jl @@ -40,6 +40,16 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_indicator = IndicatorHennemannGassner(semi, alpha_max=0.5, alpha_min=0.001, @@ -55,15 +65,6 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=0.9) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) - callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, save_solution, diff --git a/examples/2d/elixir_euler_blob_amr.jl b/examples/2d/elixir_euler_blob_amr.jl index 003125050d..7166767983 100644 --- a/examples/2d/elixir_euler_blob_amr.jl +++ b/examples/2d/elixir_euler_blob_amr.jl @@ -43,6 +43,16 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_indicator = IndicatorHennemannGassner(semi, alpha_max=1.0, alpha_min=0.0001, @@ -60,15 +70,6 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=0.25) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) - callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, save_solution, diff --git a/examples/2d/elixir_euler_blob_mortar.jl b/examples/2d/elixir_euler_blob_mortar.jl index fdf842e13e..26929f0ec4 100644 --- a/examples/2d/elixir_euler_blob_mortar.jl +++ b/examples/2d/elixir_euler_blob_mortar.jl @@ -47,16 +47,17 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=0.7) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=0.7) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/2d/elixir_euler_density_wave.jl b/examples/2d/elixir_euler_density_wave.jl index dcbe8f4813..f93019f0e8 100644 --- a/examples/2d/elixir_euler_density_wave.jl +++ b/examples/2d/elixir_euler_density_wave.jl @@ -31,19 +31,20 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.6) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.6) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, From 1a9482b8efb188dc8fb2dbaac96eac35292a6e6d Mon Sep 17 00:00:00 2001 From: Gregor Gassner Date: Mon, 16 Nov 2020 17:25:43 +0100 Subject: [PATCH 08/24] more elixirs in 2d reordered... --- examples/2d/elixir_euler_ec.jl | 15 +++++---- ...ixir_euler_kelvin_helmholtz_instability.jl | 14 ++++---- ..._euler_kelvin_helmholtz_instability_amr.jl | 24 +++++++------- examples/2d/elixir_euler_nonperiodic.jl | 22 ++++++------- examples/2d/elixir_euler_sedov_blast_wave.jl | 26 +++++++-------- examples/2d/elixir_euler_shockcapturing.jl | 9 ++--- examples/2d/elixir_euler_source_terms.jl | 15 +++++---- examples/2d/elixir_euler_vortex.jl | 27 +++++++-------- examples/2d/elixir_euler_vortex_amr.jl | 33 ++++++++++--------- examples/2d/elixir_euler_vortex_mortar.jl | 27 +++++++-------- ...ixir_euler_vortex_mortar_shockcapturing.jl | 27 +++++++-------- .../2d/elixir_euler_vortex_mortar_split.jl | 27 +++++++-------- 12 files changed, 139 insertions(+), 127 deletions(-) diff --git a/examples/2d/elixir_euler_ec.jl b/examples/2d/elixir_euler_ec.jl index b66778c4c9..d24dc4f575 100644 --- a/examples/2d/elixir_euler_ec.jl +++ b/examples/2d/elixir_euler_ec.jl @@ -30,19 +30,20 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.0) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.0) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/2d/elixir_euler_kelvin_helmholtz_instability.jl b/examples/2d/elixir_euler_kelvin_helmholtz_instability.jl index 530308f03f..1c3a800c29 100644 --- a/examples/2d/elixir_euler_kelvin_helmholtz_instability.jl +++ b/examples/2d/elixir_euler_kelvin_helmholtz_instability.jl @@ -40,20 +40,22 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.3) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=20, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.3) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_euler_kelvin_helmholtz_instability_amr.jl b/examples/2d/elixir_euler_kelvin_helmholtz_instability_amr.jl index 2cce7c85a4..451372cc5b 100644 --- a/examples/2d/elixir_euler_kelvin_helmholtz_instability_amr.jl +++ b/examples/2d/elixir_euler_kelvin_helmholtz_instability_amr.jl @@ -43,6 +43,16 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_indicator = IndicatorHennemannGassner(semi, alpha_max=1.0, alpha_min=0.0001, @@ -59,18 +69,10 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=1.3) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) - -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + amr_callback, stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_euler_nonperiodic.jl b/examples/2d/elixir_euler_nonperiodic.jl index fc270b9022..0d1aadad40 100644 --- a/examples/2d/elixir_euler_nonperiodic.jl +++ b/examples/2d/elixir_euler_nonperiodic.jl @@ -43,25 +43,25 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.0) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.0) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) - - + stepsize_callback) ############################################################################### # run the simulation diff --git a/examples/2d/elixir_euler_sedov_blast_wave.jl b/examples/2d/elixir_euler_sedov_blast_wave.jl index 084909e655..7de25272f6 100644 --- a/examples/2d/elixir_euler_sedov_blast_wave.jl +++ b/examples/2d/elixir_euler_sedov_blast_wave.jl @@ -40,6 +40,16 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_indicator = IndicatorHennemannGassner(semi, alpha_max=0.5, alpha_min=0.001, @@ -55,20 +65,10 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=0.8) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) - -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) - - + amr_callback, stepsize_callback) ############################################################################### # run the simulation diff --git a/examples/2d/elixir_euler_shockcapturing.jl b/examples/2d/elixir_euler_shockcapturing.jl index b66259d8c1..28a7c701e3 100644 --- a/examples/2d/elixir_euler_shockcapturing.jl +++ b/examples/2d/elixir_euler_shockcapturing.jl @@ -40,16 +40,17 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.0) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.0) callbacks = CallbackSet(summary_callback, stepsize_callback, save_solution, diff --git a/examples/2d/elixir_euler_source_terms.jl b/examples/2d/elixir_euler_source_terms.jl index e141a30535..89b1272a9a 100644 --- a/examples/2d/elixir_euler_source_terms.jl +++ b/examples/2d/elixir_euler_source_terms.jl @@ -31,21 +31,22 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.0) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.0) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) - + stepsize_callback) ############################################################################### # run the simulation diff --git a/examples/2d/elixir_euler_vortex.jl b/examples/2d/elixir_euler_vortex.jl index 6720e44690..5506608c71 100644 --- a/examples/2d/elixir_euler_vortex.jl +++ b/examples/2d/elixir_euler_vortex.jl @@ -29,27 +29,28 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.1) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, + extra_analysis_errors=(:conservation_error,), + extra_analysis_integrals=(entropy, energy_total, + energy_kinetic, energy_internal)) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_restart = SaveRestartCallback(interval=100, save_final_restart=true) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, - extra_analysis_errors=(:conservation_error,), - extra_analysis_integrals=(entropy, energy_total, - energy_kinetic, energy_internal)) +stepsize_callback = StepsizeCallback(cfl=1.1) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_euler_vortex_amr.jl b/examples/2d/elixir_euler_vortex_amr.jl index 41b4a1704a..6f3a4d9355 100644 --- a/examples/2d/elixir_euler_vortex_amr.jl +++ b/examples/2d/elixir_euler_vortex_amr.jl @@ -89,6 +89,20 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 200 + +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, + extra_analysis_errors=(:conservation_error,), + extra_analysis_integrals=(entropy, energy_total, + energy_kinetic, energy_internal)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_solution = SaveSolutionCallback(interval=50, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_controller = ControllerThreeLevel(semi, TrixiExtension.IndicatorVortex(semi), base_level=3, med_level=4, med_threshold=-3.0, @@ -100,23 +114,10 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=1.1) -save_solution = SaveSolutionCallback(interval=50, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -analysis_interval = 200 -alive_callback = AliveCallback(analysis_interval=analysis_interval) - -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, - extra_analysis_errors=(:conservation_error,), - extra_analysis_integrals=(entropy, energy_total, - energy_kinetic, energy_internal)) - -# TODO: Taal decide, first AMR or save solution etc. -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + amr_callback, stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_euler_vortex_mortar.jl b/examples/2d/elixir_euler_vortex_mortar.jl index e81e629164..a465b0fe73 100644 --- a/examples/2d/elixir_euler_vortex_mortar.jl +++ b/examples/2d/elixir_euler_vortex_mortar.jl @@ -32,27 +32,28 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.4) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, + extra_analysis_errors=(:conservation_error,), + extra_analysis_integrals=(entropy, energy_total, + energy_kinetic, energy_internal)) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_restart = SaveRestartCallback(interval=100, save_final_restart=true) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, - extra_analysis_errors=(:conservation_error,), - extra_analysis_integrals=(entropy, energy_total, - energy_kinetic, energy_internal)) +stepsize_callback = StepsizeCallback(cfl=1.4) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_euler_vortex_mortar_shockcapturing.jl b/examples/2d/elixir_euler_vortex_mortar_shockcapturing.jl index 883cb4b06b..371ff17040 100644 --- a/examples/2d/elixir_euler_vortex_mortar_shockcapturing.jl +++ b/examples/2d/elixir_euler_vortex_mortar_shockcapturing.jl @@ -43,27 +43,28 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=0.7) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, + extra_analysis_errors=(:conservation_error,), + extra_analysis_integrals=(entropy, energy_total, + energy_kinetic, energy_internal)) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_restart = SaveRestartCallback(interval=100, save_final_restart=true) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, - extra_analysis_errors=(:conservation_error,), - extra_analysis_integrals=(entropy, energy_total, - energy_kinetic, energy_internal)) +stepsize_callback = StepsizeCallback(cfl=0.7) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_euler_vortex_mortar_split.jl b/examples/2d/elixir_euler_vortex_mortar_split.jl index 87618d57c8..f90f619790 100644 --- a/examples/2d/elixir_euler_vortex_mortar_split.jl +++ b/examples/2d/elixir_euler_vortex_mortar_split.jl @@ -33,27 +33,28 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.4) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, + extra_analysis_errors=(:conservation_error,), + extra_analysis_integrals=(entropy, energy_total, + energy_kinetic, energy_internal)) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_restart = SaveRestartCallback(interval=100, save_final_restart=true) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, - extra_analysis_errors=(:conservation_error,), - extra_analysis_integrals=(entropy, energy_total, - energy_kinetic, energy_internal)) +stepsize_callback = StepsizeCallback(cfl=1.4) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### From 3382e50c162186319005c437a42b66970c9d84ae Mon Sep 17 00:00:00 2001 From: Gregor Gassner Date: Mon, 16 Nov 2020 17:31:49 +0100 Subject: [PATCH 09/24] more elixirs in 2d --- .../2d/elixir_euler_vortex_shockcapturing.jl | 28 +++++++++---------- .../2d/elixir_hypdiff_harmonic_nonperiodic.jl | 14 ++++++---- examples/2d/elixir_hypdiff_lax_friedrichs.jl | 16 ++++++----- examples/2d/elixir_hypdiff_nonperiodic.jl | 14 ++++++---- examples/2d/elixir_hypdiff_upwind.jl | 14 ++++++---- 5 files changed, 47 insertions(+), 39 deletions(-) diff --git a/examples/2d/elixir_euler_vortex_shockcapturing.jl b/examples/2d/elixir_euler_vortex_shockcapturing.jl index f07cecdabd..3932cd4de6 100644 --- a/examples/2d/elixir_euler_vortex_shockcapturing.jl +++ b/examples/2d/elixir_euler_vortex_shockcapturing.jl @@ -39,28 +39,28 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=0.7) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, + extra_analysis_errors=(:conservation_error,), + extra_analysis_integrals=(entropy, energy_total, + energy_kinetic, energy_internal)) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_restart = SaveRestartCallback(interval=100, save_final_restart=true) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, - extra_analysis_errors=(:conservation_error,), - extra_analysis_integrals=(entropy, energy_total, - energy_kinetic, energy_internal)) +stepsize_callback = StepsizeCallback(cfl=0.7) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) - + stepsize_callback) ############################################################################### # run the simulation diff --git a/examples/2d/elixir_hypdiff_harmonic_nonperiodic.jl b/examples/2d/elixir_hypdiff_harmonic_nonperiodic.jl index d5f5431d6a..a342b48149 100644 --- a/examples/2d/elixir_hypdiff_harmonic_nonperiodic.jl +++ b/examples/2d/elixir_hypdiff_harmonic_nonperiodic.jl @@ -37,20 +37,22 @@ summary_callback = SummaryCallback() resid_tol = 5.0e-12 steady_state_callback = SteadyStateCallback(abstol=resid_tol, reltol=0.0) -stepsize_callback = StepsizeCallback(cfl=1.0) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.0) -callbacks = CallbackSet(summary_callback, steady_state_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, steady_state_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_hypdiff_lax_friedrichs.jl b/examples/2d/elixir_hypdiff_lax_friedrichs.jl index 28aa76d640..38e687fe3c 100644 --- a/examples/2d/elixir_hypdiff_lax_friedrichs.jl +++ b/examples/2d/elixir_hypdiff_lax_friedrichs.jl @@ -34,21 +34,23 @@ summary_callback = SummaryCallback() resid_tol = 5.0e-12 steady_state_callback = SteadyStateCallback(abstol=resid_tol, reltol=0.0) -stepsize_callback = StepsizeCallback(cfl=1.2) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy, energy_total)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy, energy_total)) +stepsize_callback = StepsizeCallback(cfl=1.2) -callbacks = CallbackSet(summary_callback, steady_state_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, steady_state_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_hypdiff_nonperiodic.jl b/examples/2d/elixir_hypdiff_nonperiodic.jl index 1e8b4af12f..40be29163a 100644 --- a/examples/2d/elixir_hypdiff_nonperiodic.jl +++ b/examples/2d/elixir_hypdiff_nonperiodic.jl @@ -41,20 +41,22 @@ summary_callback = SummaryCallback() resid_tol = 5.0e-12 steady_state_callback = SteadyStateCallback(abstol=resid_tol, reltol=0.0) -stepsize_callback = StepsizeCallback(cfl=1.0) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.0) -callbacks = CallbackSet(summary_callback, steady_state_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, steady_state_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_hypdiff_upwind.jl b/examples/2d/elixir_hypdiff_upwind.jl index d0c2360522..78f8802544 100644 --- a/examples/2d/elixir_hypdiff_upwind.jl +++ b/examples/2d/elixir_hypdiff_upwind.jl @@ -35,20 +35,22 @@ summary_callback = SummaryCallback() resid_tol = 5.0e-12 steady_state_callback = SteadyStateCallback(abstol=resid_tol, reltol=0.0) -stepsize_callback = StepsizeCallback(cfl=1.0) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.0) -callbacks = CallbackSet(summary_callback, steady_state_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, steady_state_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### From 274b5af688af80e1a4558087eb5e5d0ec2a45c94 Mon Sep 17 00:00:00 2001 From: Christof Czernik Date: Mon, 16 Nov 2020 17:32:44 +0100 Subject: [PATCH 10/24] mhd order 2d --- examples/2d/elixir_mhd_alfven_wave.jl | 20 +++++++++------- examples/2d/elixir_mhd_alfven_wave_mortar.jl | 20 ++++++++-------- examples/2d/elixir_mhd_ec.jl | 14 ++++++++---- examples/2d/elixir_mhd_orszag_tang.jl | 24 ++++++++++++-------- examples/2d/elixir_mhd_rotor.jl | 24 ++++++++++++-------- 5 files changed, 60 insertions(+), 42 deletions(-) diff --git a/examples/2d/elixir_mhd_alfven_wave.jl b/examples/2d/elixir_mhd_alfven_wave.jl index 55b067f168..17d2e2d9f5 100644 --- a/examples/2d/elixir_mhd_alfven_wave.jl +++ b/examples/2d/elixir_mhd_alfven_wave.jl @@ -31,7 +31,12 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.0) +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, + extra_analysis_integrals=(entropy, energy_total, + energy_kinetic, energy_internal, + energy_magnetic, cross_helicity)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=10, save_initial_solution=true, @@ -39,16 +44,15 @@ save_solution = SaveSolutionCallback(interval=10, solution_variables=:primitive) analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, - extra_analysis_integrals=(entropy, energy_total, - energy_kinetic, energy_internal, - energy_magnetic, cross_helicity)) +stepsize_callback = StepsizeCallback(cfl=1.0) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, + alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) + ############################################################################### diff --git a/examples/2d/elixir_mhd_alfven_wave_mortar.jl b/examples/2d/elixir_mhd_alfven_wave_mortar.jl index 28148da246..6e8013af87 100644 --- a/examples/2d/elixir_mhd_alfven_wave_mortar.jl +++ b/examples/2d/elixir_mhd_alfven_wave_mortar.jl @@ -34,7 +34,12 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.0) +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, + extra_analysis_integrals=(entropy, energy_total, + energy_kinetic, energy_internal, + energy_magnetic, cross_helicity)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=10, save_initial_solution=true, @@ -42,17 +47,14 @@ save_solution = SaveSolutionCallback(interval=10, solution_variables=:primitive) analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, - extra_analysis_integrals=(entropy, energy_total, - energy_kinetic, energy_internal, - energy_magnetic, cross_helicity)) +stepsize_callback = StepsizeCallback(cfl=1.0) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, + alive_callback, save_solution, - analysis_callback, alive_callback) - + stepsize_callback) ############################################################################### # run the simulation diff --git a/examples/2d/elixir_mhd_ec.jl b/examples/2d/elixir_mhd_ec.jl index 414b7cace6..8984b85c8a 100644 --- a/examples/2d/elixir_mhd_ec.jl +++ b/examples/2d/elixir_mhd_ec.jl @@ -31,20 +31,24 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.0) +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=10, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) +stepsize_callback = StepsizeCallback(cfl=1.0) + analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, + alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_mhd_orszag_tang.jl b/examples/2d/elixir_mhd_orszag_tang.jl index 270001dad5..ac5115a255 100644 --- a/examples/2d/elixir_mhd_orszag_tang.jl +++ b/examples/2d/elixir_mhd_orszag_tang.jl @@ -40,6 +40,15 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_indicator = IndicatorHennemannGassner(semi, alpha_max=0.5, alpha_min=0.001, @@ -55,19 +64,14 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=0.4) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, + alive_callback, save_solution, - analysis_callback, alive_callback) - + amr_callback, + stepsize_callback) ############################################################################### # run the simulation diff --git a/examples/2d/elixir_mhd_rotor.jl b/examples/2d/elixir_mhd_rotor.jl index fbc597ca6d..c3475302d1 100644 --- a/examples/2d/elixir_mhd_rotor.jl +++ b/examples/2d/elixir_mhd_rotor.jl @@ -41,6 +41,15 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_indicator = IndicatorHennemannGassner(semi, alpha_max=0.5, alpha_min=0.001, @@ -56,19 +65,14 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=0.35) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, + alive_callback, save_solution, - analysis_callback, alive_callback) - + amr_callback, + stepsize_callback) ############################################################################### # run the simulation From c188f08c6eef4849a9774a2434647ccc61fcd61e Mon Sep 17 00:00:00 2001 From: Christof Czernik Date: Mon, 16 Nov 2020 17:45:37 +0100 Subject: [PATCH 11/24] 3d advection order of callback --- examples/2d/elixir_mhd_blast_wave.jl | 24 ++++++++++------- examples/3d/elixir_advection_amr.jl | 36 ++++++++++++++------------ examples/3d/elixir_advection_basic.jl | 28 +++++++++++--------- examples/3d/elixir_advection_mortar.jl | 27 +++++++++++-------- 4 files changed, 66 insertions(+), 49 deletions(-) diff --git a/examples/2d/elixir_mhd_blast_wave.jl b/examples/2d/elixir_mhd_blast_wave.jl index 3d9c3f5424..a6c0ba3e1b 100644 --- a/examples/2d/elixir_mhd_blast_wave.jl +++ b/examples/2d/elixir_mhd_blast_wave.jl @@ -40,6 +40,15 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_indicator = IndicatorHennemannGassner(semi, alpha_max=0.5, alpha_min=0.001, @@ -55,19 +64,14 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=0.3) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, + alive_callback, save_solution, - analysis_callback, alive_callback) - + amr_callback, + stepsize_callback) ############################################################################### # run the simulation diff --git a/examples/3d/elixir_advection_amr.jl b/examples/3d/elixir_advection_amr.jl index ac6f80d48e..8cbc0ed164 100644 --- a/examples/3d/elixir_advection_amr.jl +++ b/examples/3d/elixir_advection_amr.jl @@ -31,6 +31,19 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy,)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_controller = ControllerThreeLevel(semi, IndicatorMax(semi, variable=first), base_level=4, med_level=5, med_threshold=0.1, @@ -42,25 +55,16 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=1.2) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy,)) - # TODO: Taal decide, first AMR or save solution etc. -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, - save_restart, save_solution, - analysis_callback, alive_callback); - +callbacks = CallbackSet(summary_callback, + analysis_callback, + alive_callback, + save_restart, + save_solution, + amr_callback, + stepsize_callback) ############################################################################### # run the simulation diff --git a/examples/3d/elixir_advection_basic.jl b/examples/3d/elixir_advection_basic.jl index f3070e8acc..c73ed13f04 100644 --- a/examples/3d/elixir_advection_basic.jl +++ b/examples/3d/elixir_advection_basic.jl @@ -41,25 +41,29 @@ ode = semidiscretize(semi, tspan); summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.2) +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy, energy_total)) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:conservative) +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_restart = SaveRestartCallback(interval=100, save_final_restart=true) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy, energy_total)) +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:conservative) -callbacks = CallbackSet(summary_callback, stepsize_callback, - save_restart, save_solution, - analysis_callback, alive_callback) +stepsize_callback = StepsizeCallback(cfl=1.2) + +analysis_interval = 100 +callbacks = CallbackSet(summary_callback, + analysis_callback, + alive_callback, + save_restart, + save_solution, + stepsize_callback) ############################################################################### # run the simulation diff --git a/examples/3d/elixir_advection_mortar.jl b/examples/3d/elixir_advection_mortar.jl index 7d3575f215..9950ab61cd 100644 --- a/examples/3d/elixir_advection_mortar.jl +++ b/examples/3d/elixir_advection_mortar.jl @@ -36,24 +36,29 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.2) +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy,)) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_restart = SaveRestartCallback(interval=100, save_final_restart=true) +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + +stepsize_callback = StepsizeCallback(cfl=1.2) + analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy,)) -callbacks = CallbackSet(summary_callback, stepsize_callback, - save_restart, save_solution, - analysis_callback, alive_callback) +callbacks = CallbackSet(summary_callback, + analysis_callback, + alive_callback, + save_restart, + save_solution, + stepsize_callback) ############################################################################### From ff578ef4e5cc448f3bb7b0e7c4b1e067fdc6c023 Mon Sep 17 00:00:00 2001 From: Gregor Gassner Date: Mon, 16 Nov 2020 17:46:38 +0100 Subject: [PATCH 12/24] more restructureing in 3d... --- examples/3d/elixir_euler_amr.jl | 35 ++++++++++--------- examples/3d/elixir_euler_blob_amr.jl | 24 +++++++------ examples/3d/elixir_euler_density_pulse.jl | 20 ++++++----- examples/3d/elixir_euler_ec.jl | 20 ++++++----- examples/3d/elixir_euler_eoc_test.jl | 20 ++++++----- examples/3d/elixir_euler_mortar.jl | 21 +++++------ examples/3d/elixir_euler_sedov_blast_wave.jl | 30 ++++++++-------- examples/3d/elixir_euler_shockcapturing.jl | 20 ++++++----- .../3d/elixir_euler_shockcapturing_amr.jl | 29 +++++++-------- examples/3d/elixir_euler_source_terms.jl | 20 ++++++----- .../3d/elixir_euler_taylor_green_vortex.jl | 20 ++++++----- 11 files changed, 139 insertions(+), 120 deletions(-) diff --git a/examples/3d/elixir_euler_amr.jl b/examples/3d/elixir_euler_amr.jl index 8808ce191d..2c983ba4df 100644 --- a/examples/3d/elixir_euler_amr.jl +++ b/examples/3d/elixir_euler_amr.jl @@ -30,6 +30,20 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy,)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_controller = ControllerThreeLevel(semi, IndicatorMax(semi, variable=first), base_level=4, med_level=5, med_threshold=1.05, @@ -41,23 +55,10 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=0.9) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy,)) - -# TODO: Taal decide, first AMR or save solution etc. -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, - save_restart, save_solution, analysis_callback, - alive_callback); +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, + save_restart, save_solution, + amr_callback, stepsize_callback); ############################################################################### diff --git a/examples/3d/elixir_euler_blob_amr.jl b/examples/3d/elixir_euler_blob_amr.jl index f1d741277a..ec7345bebe 100644 --- a/examples/3d/elixir_euler_blob_amr.jl +++ b/examples/3d/elixir_euler_blob_amr.jl @@ -38,6 +38,16 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 200 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_solution = SaveSolutionCallback(interval=200, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_indicator = IndicatorLöhner(semi, variable=density) amr_controller = ControllerThreeLevel(semi, amr_indicator, @@ -51,18 +61,10 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=1.7) -save_solution = SaveSolutionCallback(interval=200, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -analysis_interval = 200 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) - -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + amr_callback, stepsize_callback) limiter! = PositivityPreservingLimiterZhangShu(thresholds=(1.0e-4, 1.0e-4), diff --git a/examples/3d/elixir_euler_density_pulse.jl b/examples/3d/elixir_euler_density_pulse.jl index 2ade24c67d..53390de024 100644 --- a/examples/3d/elixir_euler_density_pulse.jl +++ b/examples/3d/elixir_euler_density_pulse.jl @@ -31,23 +31,25 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.1) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.1) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/3d/elixir_euler_ec.jl b/examples/3d/elixir_euler_ec.jl index 7313e5fc49..b651d29856 100644 --- a/examples/3d/elixir_euler_ec.jl +++ b/examples/3d/elixir_euler_ec.jl @@ -31,23 +31,25 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.3) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.3) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/3d/elixir_euler_eoc_test.jl b/examples/3d/elixir_euler_eoc_test.jl index 624cfae542..902d96d2ff 100644 --- a/examples/3d/elixir_euler_eoc_test.jl +++ b/examples/3d/elixir_euler_eoc_test.jl @@ -32,23 +32,25 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.1) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.1) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/3d/elixir_euler_mortar.jl b/examples/3d/elixir_euler_mortar.jl index 413ea137a1..a2d114a53f 100644 --- a/examples/3d/elixir_euler_mortar.jl +++ b/examples/3d/elixir_euler_mortar.jl @@ -35,24 +35,25 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=0.6) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=0.6) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) - + stepsize_callback) ############################################################################### # run the simulation diff --git a/examples/3d/elixir_euler_sedov_blast_wave.jl b/examples/3d/elixir_euler_sedov_blast_wave.jl index 31fa114d28..719a496359 100644 --- a/examples/3d/elixir_euler_sedov_blast_wave.jl +++ b/examples/3d/elixir_euler_sedov_blast_wave.jl @@ -44,6 +44,19 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=10, + save_final_restart=true) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) + amr_indicator = IndicatorHennemannGassner(semi, alpha_max=1.0, alpha_min=0.0, @@ -61,21 +74,10 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=0.35) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -save_restart = SaveRestartCallback(interval=10, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) - -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + amr_callback, stepsize_callback) ############################################################################### diff --git a/examples/3d/elixir_euler_shockcapturing.jl b/examples/3d/elixir_euler_shockcapturing.jl index e660204538..ae335562c8 100644 --- a/examples/3d/elixir_euler_shockcapturing.jl +++ b/examples/3d/elixir_euler_shockcapturing.jl @@ -42,23 +42,25 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.4) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.4) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/3d/elixir_euler_shockcapturing_amr.jl b/examples/3d/elixir_euler_shockcapturing_amr.jl index a7ac2b74b9..d9286aee29 100644 --- a/examples/3d/elixir_euler_shockcapturing_amr.jl +++ b/examples/3d/elixir_euler_shockcapturing_amr.jl @@ -42,6 +42,18 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) + +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) amr_indicator = IndicatorHennemannGassner(semi, alpha_smooth=false, @@ -58,21 +70,10 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=1.3) -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) - -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) - -callbacks = CallbackSet(summary_callback, amr_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + amr_callback, stepsize_callback) ############################################################################### diff --git a/examples/3d/elixir_euler_source_terms.jl b/examples/3d/elixir_euler_source_terms.jl index 11e52f0c20..05ca93101e 100644 --- a/examples/3d/elixir_euler_source_terms.jl +++ b/examples/3d/elixir_euler_source_terms.jl @@ -32,23 +32,25 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=0.6) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=0.6) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/3d/elixir_euler_taylor_green_vortex.jl b/examples/3d/elixir_euler_taylor_green_vortex.jl index 13e5aed848..eab9396572 100644 --- a/examples/3d/elixir_euler_taylor_green_vortex.jl +++ b/examples/3d/elixir_euler_taylor_green_vortex.jl @@ -31,23 +31,25 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.4) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) + +save_restart = SaveRestartCallback(interval=100, + save_final_restart=true) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -save_restart = SaveRestartCallback(interval=100, - save_final_restart=true) - -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.4) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### From 2cd673cc0b4a01bdab8d705de1e6367250fc9081 Mon Sep 17 00:00:00 2001 From: Gregor Gassner Date: Mon, 16 Nov 2020 17:49:09 +0100 Subject: [PATCH 13/24] ...more... --- examples/3d/elixir_hypdiff_lax_friedrichs.jl | 17 +++++++++-------- examples/3d/elixir_hypdiff_nonperiodic.jl | 16 +++++++++------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/examples/3d/elixir_hypdiff_lax_friedrichs.jl b/examples/3d/elixir_hypdiff_lax_friedrichs.jl index 6065cbe0ab..4e0da86121 100644 --- a/examples/3d/elixir_hypdiff_lax_friedrichs.jl +++ b/examples/3d/elixir_hypdiff_lax_friedrichs.jl @@ -34,22 +34,23 @@ summary_callback = SummaryCallback() resid_tol = 5.0e-12 steady_state_callback = SteadyStateCallback(abstol=resid_tol, reltol=0.0) -stepsize_callback = StepsizeCallback(cfl=2.4) +analysis_interval = 200 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy, energy_total)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 200 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy, energy_total)) +stepsize_callback = StepsizeCallback(cfl=2.4) -callbacks = CallbackSet(summary_callback, steady_state_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, steady_state_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) - + stepsize_callback) ############################################################################### # run the simulation diff --git a/examples/3d/elixir_hypdiff_nonperiodic.jl b/examples/3d/elixir_hypdiff_nonperiodic.jl index 16a9af5144..b247a5edfd 100644 --- a/examples/3d/elixir_hypdiff_nonperiodic.jl +++ b/examples/3d/elixir_hypdiff_nonperiodic.jl @@ -42,21 +42,23 @@ summary_callback = SummaryCallback() resid_tol = 1.0e-5 steady_state_callback = SteadyStateCallback(abstol=resid_tol, reltol=0.0) -stepsize_callback = StepsizeCallback(cfl=1.8) +analysis_interval = 200 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy, energy_total)) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=100, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 200 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy, energy_total)) +stepsize_callback = StepsizeCallback(cfl=1.8) -callbacks = CallbackSet(summary_callback, steady_state_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, steady_state_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### From d5814024492f049a98aebd1ef785600c858d4148 Mon Sep 17 00:00:00 2001 From: Christof Czernik Date: Mon, 16 Nov 2020 17:50:19 +0100 Subject: [PATCH 14/24] gravity euler 3d order --- examples/3d/elixir_eulergravity_eoc_test.jl | 28 ++++++++++++--------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/examples/3d/elixir_eulergravity_eoc_test.jl b/examples/3d/elixir_eulergravity_eoc_test.jl index bee9d61440..4179756ac8 100644 --- a/examples/3d/elixir_eulergravity_eoc_test.jl +++ b/examples/3d/elixir_eulergravity_eoc_test.jl @@ -51,25 +51,29 @@ ode = semidiscretize(semi, tspan); summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.1) +analysis_callback = AnalysisCallback(semi_euler, interval=analysis_interval, + save_analysis=true) -save_solution = SaveSolutionCallback(interval=10, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_restart = SaveRestartCallback(interval=100, save_final_restart=true) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) +save_solution = SaveSolutionCallback(interval=10, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) -analysis_callback = AnalysisCallback(semi_euler, interval=analysis_interval, - save_analysis=true) +stepsize_callback = StepsizeCallback(cfl=1.1) + +analysis_interval = 100 -callbacks = CallbackSet(summary_callback, stepsize_callback, - save_restart, save_solution, - analysis_callback, alive_callback) +callbacks = CallbackSet(summary_callback, + analysis_callback, + alive_callback, + save_restart, + save_solution, + stepsize_callback) ############################################################################### From 64ba32b0fcb2733d669547c98bc101af4c69ef16 Mon Sep 17 00:00:00 2001 From: Gregor Gassner Date: Mon, 16 Nov 2020 17:51:45 +0100 Subject: [PATCH 15/24] more --- examples/3d/elixir_mhd_ec.jl | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/examples/3d/elixir_mhd_ec.jl b/examples/3d/elixir_mhd_ec.jl index 970957a356..a0439a0537 100644 --- a/examples/3d/elixir_mhd_ec.jl +++ b/examples/3d/elixir_mhd_ec.jl @@ -31,20 +31,22 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.4) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=10, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.4) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### From 44bd866e182e844fb9e38f7ff974cde008661de2 Mon Sep 17 00:00:00 2001 From: Christof Czernik Date: Mon, 16 Nov 2020 17:52:53 +0100 Subject: [PATCH 16/24] not alfven wave --- examples/3d/elixir_mhd_orszag_tang.jl | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/examples/3d/elixir_mhd_orszag_tang.jl b/examples/3d/elixir_mhd_orszag_tang.jl index 14d45e4cdc..7296a79a2e 100644 --- a/examples/3d/elixir_mhd_orszag_tang.jl +++ b/examples/3d/elixir_mhd_orszag_tang.jl @@ -29,20 +29,24 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.1) +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) + +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=10, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) +stepsize_callback = StepsizeCallback(cfl=1.1) + analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, + alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### From 661af140ba7483f46be10463cbcaf15881e5e7ef Mon Sep 17 00:00:00 2001 From: Michael Schlottke-Lakemper Date: Mon, 16 Nov 2020 17:55:29 +0100 Subject: [PATCH 17/24] Add reordered Alfven wave elixirs for 3D --- examples/3d/elixir_mhd_alfven_wave.jl | 14 ++++++++------ examples/3d/elixir_mhd_alfven_wave_mortar.jl | 13 +++++++------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/examples/3d/elixir_mhd_alfven_wave.jl b/examples/3d/elixir_mhd_alfven_wave.jl index afe56adf7b..987350c4bb 100644 --- a/examples/3d/elixir_mhd_alfven_wave.jl +++ b/examples/3d/elixir_mhd_alfven_wave.jl @@ -31,20 +31,22 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.4) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=10, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.4) + -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/3d/elixir_mhd_alfven_wave_mortar.jl b/examples/3d/elixir_mhd_alfven_wave_mortar.jl index cb3683ed10..44f87160b5 100644 --- a/examples/3d/elixir_mhd_alfven_wave_mortar.jl +++ b/examples/3d/elixir_mhd_alfven_wave_mortar.jl @@ -34,20 +34,21 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() -stepsize_callback = StepsizeCallback(cfl=1.4) +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +alive_callback = AliveCallback(analysis_interval=analysis_interval) save_solution = SaveSolutionCallback(interval=10, save_initial_solution=true, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) -analysis_callback = AnalysisCallback(semi, interval=analysis_interval) +stepsize_callback = StepsizeCallback(cfl=1.4) -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### From 849012c8a863d3ae2878c2bd8d2836a65dbbb424 Mon Sep 17 00:00:00 2001 From: Michael Schlottke-Lakemper Date: Mon, 16 Nov 2020 17:55:43 +0100 Subject: [PATCH 18/24] Add comment on TrivialCallback --- src/callbacks_step/callbacks_step.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/callbacks_step/callbacks_step.jl b/src/callbacks_step/callbacks_step.jl index 196f352240..d64519407e 100644 --- a/src/callbacks_step/callbacks_step.jl +++ b/src/callbacks_step/callbacks_step.jl @@ -45,4 +45,6 @@ include("save_solution.jl") include("amr.jl") include("stepsize.jl") +# The `TrivialCallback` purposely does nothing: It allows to quickly disable specific callbacks +# when using `trixi_include` or `test_trixi_include` include("trivial.jl") From 9f01fbca324fcd0c852236eaf6b1b7ad6d4a1c42 Mon Sep 17 00:00:00 2001 From: Michael Schlottke-Lakemper Date: Mon, 16 Nov 2020 20:41:04 +0100 Subject: [PATCH 19/24] Re-order new extended elixirs --- examples/1d/elixir_advection_extended.jl | 31 ++++++++++++------------ examples/2d/elixir_advection_extended.jl | 31 ++++++++++++------------ examples/3d/elixir_advection_extended.jl | 31 ++++++++++++------------ 3 files changed, 48 insertions(+), 45 deletions(-) diff --git a/examples/1d/elixir_advection_extended.jl b/examples/1d/elixir_advection_extended.jl index 360d6e0505..daa7cd4c11 100644 --- a/examples/1d/elixir_advection_extended.jl +++ b/examples/1d/elixir_advection_extended.jl @@ -47,31 +47,32 @@ ode = semidiscretize(semi, tspan); # and resets the timers summary_callback = SummaryCallback() -# The StepsizeCallback handles the re-calculcation of the maximum Δt after each time step -stepsize_callback = StepsizeCallback(cfl=1.6) +# The AnalysisCallback allows to analyse the solution in regular intervals and prints the results +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy, energy_total)) -# The SaveSolutionCallback allows to save the solution to a file in regular intervals -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) +# The AliveCallback prints short status information in regular intervals +alive_callback = AliveCallback(analysis_interval=analysis_interval) # The SaveRestartCallback allows to save a file from which a Trixi simulation can be restarted save_restart = SaveRestartCallback(interval=100, save_final_restart=true) -# The AliveCallback prints short status information in regular intervals -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) +# The SaveSolutionCallback allows to save the solution to a file in regular intervals +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) -# The AnalysisCallback allows to analyse the solution in regular intervals and prints the results -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy, energy_total)) +# The StepsizeCallback handles the re-calculcation of the maximum Δt after each time step +stepsize_callback = StepsizeCallback(cfl=1.6) # Create a CallbackSet to collect all callbacks such that they can be passed to the ODE solver -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/2d/elixir_advection_extended.jl b/examples/2d/elixir_advection_extended.jl index 17b9ea5ee3..63ea804924 100644 --- a/examples/2d/elixir_advection_extended.jl +++ b/examples/2d/elixir_advection_extended.jl @@ -48,31 +48,32 @@ ode = semidiscretize(semi, tspan); # and resets the timers summary_callback = SummaryCallback() -# The StepsizeCallback handles the re-calculcation of the maximum Δt after each time step -stepsize_callback = StepsizeCallback(cfl=1.6) +# The AnalysisCallback allows to analyse the solution in regular intervals and prints the results +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy, energy_total)) -# The SaveSolutionCallback allows to save the solution to a file in regular intervals -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) +# The AliveCallback prints short status information in regular intervals +alive_callback = AliveCallback(analysis_interval=analysis_interval) # The SaveRestartCallback allows to save a file from which a Trixi simulation can be restarted save_restart = SaveRestartCallback(interval=100, save_final_restart=true) -# The AliveCallback prints short status information in regular intervals -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) +# The SaveSolutionCallback allows to save the solution to a file in regular intervals +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) -# The AnalysisCallback allows to analyse the solution in regular intervals and prints the results -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy, energy_total)) +# The StepsizeCallback handles the re-calculcation of the maximum Δt after each time step +stepsize_callback = StepsizeCallback(cfl=1.6) # Create a CallbackSet to collect all callbacks such that they can be passed to the ODE solver -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### diff --git a/examples/3d/elixir_advection_extended.jl b/examples/3d/elixir_advection_extended.jl index 8e632701aa..6c662f5970 100644 --- a/examples/3d/elixir_advection_extended.jl +++ b/examples/3d/elixir_advection_extended.jl @@ -48,31 +48,32 @@ ode = semidiscretize(semi, tspan); # and resets the timers summary_callback = SummaryCallback() -# The StepsizeCallback handles the re-calculcation of the maximum Δt after each time step -stepsize_callback = StepsizeCallback(cfl=1.2) +# The AnalysisCallback allows to analyse the solution in regular intervals and prints the results +analysis_interval = 100 +analysis_callback = AnalysisCallback(semi, interval=analysis_interval, + extra_analysis_integrals=(entropy, energy_total)) -# The SaveSolutionCallback allows to save the solution to a file in regular intervals -save_solution = SaveSolutionCallback(interval=100, - save_initial_solution=true, - save_final_solution=true, - solution_variables=:primitive) +# The AliveCallback prints short status information in regular intervals +alive_callback = AliveCallback(analysis_interval=analysis_interval) # The SaveRestartCallback allows to save a file from which a Trixi simulation can be restarted save_restart = SaveRestartCallback(interval=100, save_final_restart=true) -# The AliveCallback prints short status information in regular intervals -analysis_interval = 100 -alive_callback = AliveCallback(analysis_interval=analysis_interval) +# The SaveSolutionCallback allows to save the solution to a file in regular intervals +save_solution = SaveSolutionCallback(interval=100, + save_initial_solution=true, + save_final_solution=true, + solution_variables=:primitive) -# The AnalysisCallback allows to analyse the solution in regular intervals and prints the results -analysis_callback = AnalysisCallback(semi, interval=analysis_interval, - extra_analysis_integrals=(entropy, energy_total)) +# The StepsizeCallback handles the re-calculcation of the maximum Δt after each time step +stepsize_callback = StepsizeCallback(cfl=1.2) # Create a CallbackSet to collect all callbacks such that they can be passed to the ODE solver -callbacks = CallbackSet(summary_callback, stepsize_callback, +callbacks = CallbackSet(summary_callback, + analysis_callback, alive_callback, save_restart, save_solution, - analysis_callback, alive_callback) + stepsize_callback) ############################################################################### From be4919f497ede8847aa40294365a66cac39af639 Mon Sep 17 00:00:00 2001 From: Michael Schlottke-Lakemper Date: Mon, 16 Nov 2020 20:51:03 +0100 Subject: [PATCH 20/24] Fix most tests (one 2D amr case probably still broken) --- examples/2d/elixir_mhd_alfven_wave.jl | 3 +-- examples/2d/elixir_mhd_alfven_wave_mortar.jl | 3 +-- examples/2d/elixir_mhd_blast_wave.jl | 3 +-- examples/2d/elixir_mhd_ec.jl | 3 +-- examples/2d/elixir_mhd_orszag_tang.jl | 3 +-- examples/2d/elixir_mhd_rotor.jl | 3 +-- examples/3d/elixir_advection_amr.jl | 4 +--- examples/3d/elixir_eulergravity_eoc_test.jl | 3 +-- test/test_examples_1d.jl | 1 - test/test_examples_2d.jl | 1 - test/test_examples_3d.jl | 1 - 11 files changed, 8 insertions(+), 20 deletions(-) diff --git a/examples/2d/elixir_mhd_alfven_wave.jl b/examples/2d/elixir_mhd_alfven_wave.jl index 17d2e2d9f5..dc1ed0e738 100644 --- a/examples/2d/elixir_mhd_alfven_wave.jl +++ b/examples/2d/elixir_mhd_alfven_wave.jl @@ -31,6 +31,7 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, extra_analysis_integrals=(entropy, energy_total, energy_kinetic, energy_internal, @@ -43,8 +44,6 @@ save_solution = SaveSolutionCallback(interval=10, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 - stepsize_callback = StepsizeCallback(cfl=1.0) callbacks = CallbackSet(summary_callback, diff --git a/examples/2d/elixir_mhd_alfven_wave_mortar.jl b/examples/2d/elixir_mhd_alfven_wave_mortar.jl index 6e8013af87..bb001e4f52 100644 --- a/examples/2d/elixir_mhd_alfven_wave_mortar.jl +++ b/examples/2d/elixir_mhd_alfven_wave_mortar.jl @@ -34,6 +34,7 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 analysis_callback = AnalysisCallback(semi, interval=analysis_interval, save_analysis=true, extra_analysis_integrals=(entropy, energy_total, energy_kinetic, energy_internal, @@ -46,8 +47,6 @@ save_solution = SaveSolutionCallback(interval=10, save_final_solution=true, solution_variables=:primitive) -analysis_interval = 100 - stepsize_callback = StepsizeCallback(cfl=1.0) callbacks = CallbackSet(summary_callback, diff --git a/examples/2d/elixir_mhd_blast_wave.jl b/examples/2d/elixir_mhd_blast_wave.jl index a6c0ba3e1b..1041760c0d 100644 --- a/examples/2d/elixir_mhd_blast_wave.jl +++ b/examples/2d/elixir_mhd_blast_wave.jl @@ -40,6 +40,7 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 analysis_callback = AnalysisCallback(semi, interval=analysis_interval) alive_callback = AliveCallback(analysis_interval=analysis_interval) @@ -64,8 +65,6 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=0.3) -analysis_interval = 100 - callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/2d/elixir_mhd_ec.jl b/examples/2d/elixir_mhd_ec.jl index 8984b85c8a..106541add8 100644 --- a/examples/2d/elixir_mhd_ec.jl +++ b/examples/2d/elixir_mhd_ec.jl @@ -31,6 +31,7 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 analysis_callback = AnalysisCallback(semi, interval=analysis_interval) alive_callback = AliveCallback(analysis_interval=analysis_interval) @@ -42,8 +43,6 @@ save_solution = SaveSolutionCallback(interval=10, stepsize_callback = StepsizeCallback(cfl=1.0) -analysis_interval = 100 - callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/2d/elixir_mhd_orszag_tang.jl b/examples/2d/elixir_mhd_orszag_tang.jl index ac5115a255..178755868d 100644 --- a/examples/2d/elixir_mhd_orszag_tang.jl +++ b/examples/2d/elixir_mhd_orszag_tang.jl @@ -40,6 +40,7 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 analysis_callback = AnalysisCallback(semi, interval=analysis_interval) alive_callback = AliveCallback(analysis_interval=analysis_interval) @@ -64,8 +65,6 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=0.4) -analysis_interval = 100 - callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/2d/elixir_mhd_rotor.jl b/examples/2d/elixir_mhd_rotor.jl index c3475302d1..35dbf0319a 100644 --- a/examples/2d/elixir_mhd_rotor.jl +++ b/examples/2d/elixir_mhd_rotor.jl @@ -41,6 +41,7 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 analysis_callback = AnalysisCallback(semi, interval=analysis_interval) alive_callback = AliveCallback(analysis_interval=analysis_interval) @@ -65,8 +66,6 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=0.35) -analysis_interval = 100 - callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/3d/elixir_advection_amr.jl b/examples/3d/elixir_advection_amr.jl index 8cbc0ed164..cde4725165 100644 --- a/examples/3d/elixir_advection_amr.jl +++ b/examples/3d/elixir_advection_amr.jl @@ -31,6 +31,7 @@ ode = semidiscretize(semi, tspan) summary_callback = SummaryCallback() +analysis_interval = 100 analysis_callback = AnalysisCallback(semi, interval=analysis_interval, extra_analysis_integrals=(entropy,)) @@ -55,9 +56,6 @@ amr_callback = AMRCallback(semi, amr_controller, stepsize_callback = StepsizeCallback(cfl=1.2) -analysis_interval = 100 - -# TODO: Taal decide, first AMR or save solution etc. callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/3d/elixir_eulergravity_eoc_test.jl b/examples/3d/elixir_eulergravity_eoc_test.jl index 4179756ac8..9d3ca0fe1c 100644 --- a/examples/3d/elixir_eulergravity_eoc_test.jl +++ b/examples/3d/elixir_eulergravity_eoc_test.jl @@ -51,6 +51,7 @@ ode = semidiscretize(semi, tspan); summary_callback = SummaryCallback() +analysis_interval = 100 analysis_callback = AnalysisCallback(semi_euler, interval=analysis_interval, save_analysis=true) @@ -66,8 +67,6 @@ save_solution = SaveSolutionCallback(interval=10, stepsize_callback = StepsizeCallback(cfl=1.1) -analysis_interval = 100 - callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/test/test_examples_1d.jl b/test/test_examples_1d.jl index eecdb76bf8..09dd828eab 100644 --- a/test/test_examples_1d.jl +++ b/test/test_examples_1d.jl @@ -44,7 +44,6 @@ end end @testset "elixir_advection_extended.jl with initial_condition_linear_x" begin - # TODO Taal: create separate `*_linear_x.jl` elixir to keep `basic` simple @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_advection_extended.jl"), l2 = [1.9882464973192864e-16], linf = [1.4432899320127035e-15], diff --git a/test/test_examples_2d.jl b/test/test_examples_2d.jl index 8441832242..db8a0813bf 100644 --- a/test/test_examples_2d.jl +++ b/test/test_examples_2d.jl @@ -34,7 +34,6 @@ end # Coverage test for all initial conditions @testset "Tests for initial conditions" begin - # TODO Taal: create separate elixirs for ICs/BCs to keep `basic` simple # Linear scalar advection @testset "elixir_advection_extended.jl with initial_condition_sin_sin" begin @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_advection_extended.jl"), diff --git a/test/test_examples_3d.jl b/test/test_examples_3d.jl index a90292b140..6b3f2262c9 100644 --- a/test/test_examples_3d.jl +++ b/test/test_examples_3d.jl @@ -16,7 +16,6 @@ isdir(outdir) && rm(outdir, recursive=true) # Run basic tests @testset "Examples 3D" begin - # TODO Taal: create separate elixirs for ICs/BCs etc. to keep `basic` simple # Linear scalar advection include("test_examples_3d_advection.jl") From 94bb30997f3bf1f3c4412d36fd2e058b7f447204 Mon Sep 17 00:00:00 2001 From: Michael Schlottke-Lakemper Date: Tue, 17 Nov 2020 06:18:45 +0100 Subject: [PATCH 21/24] Adapt output to 100 character limit [ci skip] --- test/test_trixi.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_trixi.jl b/test/test_trixi.jl index cec5478193..00f2e79d50 100644 --- a/test/test_trixi.jl +++ b/test/test_trixi.jl @@ -29,7 +29,7 @@ macro test_trixi_include(elixir, args...) end quote - Trixi.mpi_isroot() && println("#"^80) + Trixi.mpi_isroot() && println("═"^100) Trixi.mpi_isroot() && println($elixir) # evaluate examples in the scope of the module they're called from @@ -54,7 +54,7 @@ macro test_trixi_include(elixir, args...) end end - Trixi.mpi_isroot() && println("#"^80) + Trixi.mpi_isroot() && println("═"^100) Trixi.mpi_isroot() && println("\n\n") end end From ee7167e8a489299d5aac1804d10aaa86f7520097 Mon Sep 17 00:00:00 2001 From: Michael Schlottke-Lakemper Date: Tue, 17 Nov 2020 06:21:05 +0100 Subject: [PATCH 22/24] Add "local" to LF and "Rusanov" to comment [ci skip] --- examples/1d/elixir_advection_basic.jl | 2 +- examples/1d/elixir_advection_extended.jl | 2 +- examples/2d/elixir_advection_basic.jl | 2 +- examples/2d/elixir_advection_extended.jl | 2 +- examples/3d/elixir_advection_basic.jl | 2 +- examples/3d/elixir_advection_extended.jl | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/1d/elixir_advection_basic.jl b/examples/1d/elixir_advection_basic.jl index 0c888af38c..4ef68c8a85 100644 --- a/examples/1d/elixir_advection_basic.jl +++ b/examples/1d/elixir_advection_basic.jl @@ -8,7 +8,7 @@ using Trixi advectionvelocity = 1.0 equations = LinearScalarAdvectionEquation1D(advectionvelocity) -# Create DG solver with polynomial degree = 3 and Lax-Friedrichs flux as surface flux +# Create DG solver with polynomial degree = 3 and (local) Lax-Friedrichs/Rusanov flux as surface flux solver = DGSEM(3, flux_lax_friedrichs) coordinates_min = -1 # minimum coordinate diff --git a/examples/1d/elixir_advection_extended.jl b/examples/1d/elixir_advection_extended.jl index daa7cd4c11..d1f4be4bc1 100644 --- a/examples/1d/elixir_advection_extended.jl +++ b/examples/1d/elixir_advection_extended.jl @@ -17,7 +17,7 @@ initial_condition = initial_condition_convergence_test # fully periodic domains. Here, however, it is included to allow easy override during testing boundary_conditions = boundary_condition_periodic -# Create DG solver with polynomial degree = 3 and Lax-Friedrichs flux as surface flux +# Create DG solver with polynomial degree = 3 and (local) Lax-Friedrichs/Rusanov flux as surface flux surface_flux = flux_lax_friedrichs polydeg = 3 solver = DGSEM(polydeg, surface_flux) diff --git a/examples/2d/elixir_advection_basic.jl b/examples/2d/elixir_advection_basic.jl index c542580f1e..e6a5308b61 100644 --- a/examples/2d/elixir_advection_basic.jl +++ b/examples/2d/elixir_advection_basic.jl @@ -8,7 +8,7 @@ using Trixi advectionvelocity = (1.0, 1.0) equations = LinearScalarAdvectionEquation2D(advectionvelocity) -# Create DG solver with polynomial degree = 3 and Lax-Friedrichs flux as surface flux +# Create DG solver with polynomial degree = 3 and (local) Lax-Friedrichs/Rusanov flux as surface flux solver = DGSEM(3, flux_lax_friedrichs) coordinates_min = (-1, -1) # minimum coordinates (min(x), min(y)) diff --git a/examples/2d/elixir_advection_extended.jl b/examples/2d/elixir_advection_extended.jl index 63ea804924..3dff53d589 100644 --- a/examples/2d/elixir_advection_extended.jl +++ b/examples/2d/elixir_advection_extended.jl @@ -18,7 +18,7 @@ initial_condition = initial_condition_convergence_test # fully periodic domains. Here, however, it is included to allow easy override during testing boundary_conditions = boundary_condition_periodic -# Create DG solver with polynomial degree = 3 and Lax-Friedrichs flux as surface flux +# Create DG solver with polynomial degree = 3 and (local) Lax-Friedrichs/Rusanov flux as surface flux surface_flux = flux_lax_friedrichs polydeg = 3 solver = DGSEM(polydeg, surface_flux) diff --git a/examples/3d/elixir_advection_basic.jl b/examples/3d/elixir_advection_basic.jl index e234e8dae9..1bbc6ee09c 100644 --- a/examples/3d/elixir_advection_basic.jl +++ b/examples/3d/elixir_advection_basic.jl @@ -8,7 +8,7 @@ using Trixi advectionvelocity = (1.0, 1.0, 1.0) equations = LinearScalarAdvectionEquation3D(advectionvelocity) -# Create DG solver with polynomial degree = 3 and Lax-Friedrichs flux as surface flux +# Create DG solver with polynomial degree = 3 and (local) Lax-Friedrichs/Rusanov flux as surface flux solver = DGSEM(3, flux_lax_friedrichs) coordinates_min = (-1, -1, -1) # minimum coordinates (min(x), min(y), min(z)) diff --git a/examples/3d/elixir_advection_extended.jl b/examples/3d/elixir_advection_extended.jl index 6c662f5970..0177409747 100644 --- a/examples/3d/elixir_advection_extended.jl +++ b/examples/3d/elixir_advection_extended.jl @@ -18,7 +18,7 @@ initial_condition = initial_condition_convergence_test # fully periodic domains. Here, however, it is included to allow easy override during testing boundary_conditions = boundary_condition_periodic -# Create DG solver with polynomial degree = 3 and Lax-Friedrichs flux as surface flux +# Create DG solver with polynomial degree = 3 and (local) Lax-Friedrichs/Rusanov flux as surface flux surface_flux = flux_lax_friedrichs polydeg = 3 solver = DGSEM(polydeg, surface_flux) From 7b7e2094480fc0a912ffe2d26ace2e0c32cff3a8 Mon Sep 17 00:00:00 2001 From: Michael Schlottke-Lakemper Date: Tue, 17 Nov 2020 11:22:17 +0100 Subject: [PATCH 23/24] Update refs for Kelvin-Helmholtz AMR test since the ICs are affected by the ordering of analysis and AMR callbacks (PRNG issue) --- test/test_examples_2d_euler.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_examples_2d_euler.jl b/test/test_examples_2d_euler.jl index 7cb6ff0bca..6feefc8402 100644 --- a/test/test_examples_2d_euler.jl +++ b/test/test_examples_2d_euler.jl @@ -102,8 +102,8 @@ EXAMPLES_DIR = joinpath(pathof(Trixi) |> dirname |> dirname, "examples", "2d") # minor versions of Julia. # See https://github.com/trixi-framework/Trixi.jl/issues/232#issuecomment-709738400 @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_kelvin_helmholtz_instability_amr.jl"), - l2 = [0.0016547879036312315, 0.0023815990489650233, 0.0013738124611069249, 0.0031578210702852003], - linf = [0.022466749278200915, 0.016671527732386116, 0.007178033902807723, 0.015014697702609325], + l2 = [0.0015773943210539198, 0.0023012411276933705, 0.0013793453564426015, 0.003239622733845669], + linf = [0.025791632274568155, 0.015170620391733003, 0.00958159135384009, 0.013265593557157729], tspan = (0.0, 0.2)) else @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_kelvin_helmholtz_instability_amr.jl"), From afa267bb07257df0c48d66d1430f41354a8cdeee Mon Sep 17 00:00:00 2001 From: Michael Schlottke-Lakemper Date: Tue, 17 Nov 2020 11:24:37 +0100 Subject: [PATCH 24/24] Add comment on manually increased test tolerances --- test/test_examples_2d_parallel.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/test_examples_2d_parallel.jl b/test/test_examples_2d_parallel.jl index cbac8bcc33..c274f1228e 100644 --- a/test/test_examples_2d_parallel.jl +++ b/test/test_examples_2d_parallel.jl @@ -57,6 +57,8 @@ const EXAMPLES_DIR = joinpath(pathof(Trixi) |> dirname |> dirname, "examples", " # Compressible Euler + # Note: Some tests here have manually increased relative tolerances since reduction via MPI can + # slightly change the L2 error norms (different floating point truncation errors) @testset "elixir_euler_source_terms.jl" begin @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_source_terms.jl"), l2 = [8.517783186497567e-7, 1.2350199409361865e-6, 1.2350199409828616e-6, 4.277884398786315e-6],