Skip to content

Commit

Permalink
visualisation callback new file for testing
Browse files Browse the repository at this point in the history
  • Loading branch information
s6nistam committed Nov 28, 2024
1 parent 13d8ed0 commit 246139e
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 10 deletions.
13 changes: 7 additions & 6 deletions examples/tree_3d_dgsem/elixir_euler_amr_catalyst.jl
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ solver = DGSEM(polydeg = 3, surface_flux = flux_lax_friedrichs)
coordinates_min = (-5.0, -5.0, -5.0)
coordinates_max = (5.0, 5.0, 5.0)
mesh = TreeMesh(coordinates_min, coordinates_max,
initial_refinement_level = 1,
initial_refinement_level = 4,
n_cells_max = 10_000)

semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver)
Expand All @@ -45,7 +45,7 @@ ode = semidiscretize(semi, tspan)

summary_callback = SummaryCallback()

analysis_interval = 100
analysis_interval = 10
analysis_callback = AnalysisCallback(semi, interval = analysis_interval,
extra_analysis_integrals = (entropy,))

Expand All @@ -60,9 +60,9 @@ save_solution = SaveSolutionCallback(interval = 100,
solution_variables = cons2prim)

amr_controller = ControllerThreeLevel(semi, IndicatorMax(semi, variable = first),
base_level = 1,
med_level = 2, med_threshold = 1.05,
max_level = 3, max_threshold = 1.3)
base_level = 2,
med_level = 3, med_threshold = 1.05,
max_level = 4, max_threshold = 1.3)
amr_callback = AMRCallback(semi, amr_controller,
interval = 5,
adapt_initial_condition = true,
Expand All @@ -75,7 +75,8 @@ catalyst_callback = ParaviewCatalystCallback(interval=100)
callbacks = CallbackSet(summary_callback,
analysis_callback, alive_callback,
save_restart, save_solution,
amr_callback, stepsize_callback, catalyst_callback);
amr_callback, stepsize_callback,
catalyst_callback);

###############################################################################
# run the simulation
Expand Down
8 changes: 4 additions & 4 deletions examples/tree_3d_dgsem/elixir_euler_amr_visualization.jl
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,9 @@ save_solution = SaveSolutionCallback(interval = 100,
solution_variables = cons2prim)

amr_controller = ControllerThreeLevel(semi, IndicatorMax(semi, variable = first),
base_level = 3,
med_level = 4, med_threshold = 1.05,
max_level = 5, max_threshold = 1.3)
base_level = 2,
med_level = 3, med_threshold = 1.05,
max_level = 4, max_threshold = 1.3)
amr_callback = AMRCallback(semi, amr_controller,
interval = 5,
adapt_initial_condition = true,
Expand All @@ -84,5 +84,5 @@ callbacks = CallbackSet(summary_callback,

sol = solve(ode, CarpenterKennedy2N54(williamson_condition = false),
dt = 1.0, # solve needs some value here but it will be overwritten by the stepsize_callback
save_everystep = false, callback = callbacks, maxiters = 2);
save_everystep = false, callback = callbacks);
summary_callback() # print the timer summary
91 changes: 91 additions & 0 deletions examples/tree_3d_dgsem/elixir_euler_amr_visualization_catalyst.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@

using OrdinaryDiffEq
using Trixi
using ParaviewCatalyst
using Plots
using GLMakie

###############################################################################
# semidiscretization of the compressible Euler equations

equations = CompressibleEulerEquations3D(1.4)

"""
initial_condition_density_pulse(x, t, equations::CompressibleEulerEquations3D)
A Gaussian pulse in the density with constant velocity and pressure; reduces the
compressible Euler equations to the linear advection equations.
"""
function initial_condition_density_pulse(x, t, equations::CompressibleEulerEquations3D)
rho = 1 + exp(-(x[1]^2 + x[2]^2 + x[3]^2)) / 2
v1 = 1
v2 = 1
v3 = 1
rho_v1 = rho * v1
rho_v2 = rho * v2
rho_v3 = rho * v3
p = 1
rho_e = p / (equations.gamma - 1) + 1 / 2 * rho * (v1^2 + v2^2 + v3^2)
return SVector(rho, rho_v1, rho_v2, rho_v3, rho_e)
end
initial_condition = initial_condition_density_pulse
solver = DGSEM(polydeg = 3, surface_flux = flux_lax_friedrichs)

coordinates_min = (-5.0, -5.0, -5.0)
coordinates_max = (5.0, 5.0, 5.0)
mesh = TreeMesh(coordinates_min, coordinates_max,
initial_refinement_level = 4,
n_cells_max = 10_000)

semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver)

###############################################################################
# ODE solvers, callbacks etc.

tspan = (0.0, 10.0)
ode = semidiscretize(semi, tspan)

summary_callback = SummaryCallback()

analysis_interval = 10
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 = cons2prim)

amr_controller = ControllerThreeLevel(semi, IndicatorMax(semi, variable = first),
base_level = 2,
med_level = 3, med_threshold = 1.05,
max_level = 4, max_threshold = 1.3)
amr_callback = AMRCallback(semi, amr_controller,
interval = 5,
adapt_initial_condition = true,
adapt_initial_condition_only_refine = true)

stepsize_callback = StepsizeCallback(cfl = 0.9)

visualization_callback = VisualizationCallback(interval = 20, clims = (0, 1))

catalyst_callback = ParaviewCatalystCallback(interval=100)

callbacks = CallbackSet(summary_callback,
analysis_callback, alive_callback,
save_restart, save_solution,
amr_callback, stepsize_callback,
visualization_callback, catalyst_callback);

###############################################################################
# run the simulation

sol = solve(ode, CarpenterKennedy2N54(williamson_condition = false),
dt = 1.0, # solve needs some value here but it will be overwritten by the stepsize_callback
save_everystep = false, callback = callbacks);
summary_callback() # print the timer summary

0 comments on commit 246139e

Please sign in to comment.