Skip to content

Feature: DGMultiMesh from t8code forest (prototype) #2270

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 37 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
ea5e216
Adding dgmulti mesh io support.
Feb 3, 2025
81d29a6
Adding save solution cb to elixir.
Feb 3, 2025
80479b2
Adding save solution support for DGMulti.
Feb 4, 2025
4ff9c67
Adding save solution callbacks to dgmulti examples.
Feb 4, 2025
5f62d3a
Code cleanup.
Feb 4, 2025
a3e0f55
Applied minor fixes.
Feb 4, 2025
6076354
Adding t8code dgmulti mesh support.
Feb 7, 2025
1aa2762
Added baroclinic instab. test.
Feb 7, 2025
41093a4
Applied formatter.
Feb 7, 2025
7fc19a7
Merge branch 'main' into dgmulti_with_t8code
tristanmontoya Apr 15, 2025
70b9a68
Merge branch 'main' into dgmulti_with_t8code
tristanmontoya Apr 15, 2025
d0386c8
Merge branch 'main' into dgmulti-mesh-io-support
tristanmontoya Apr 16, 2025
7751018
fix save to file for new solution data structure
tristanmontoya Apr 16, 2025
6b895de
Merge branch 'main' into dgmulti-mesh-io-support
tristanmontoya Apr 16, 2025
37875dd
Formatting suggestion
tristanmontoya Apr 16, 2025
e0bb3ab
Merge branch 'dgmulti-mesh-io-support' into dgmulti_with_t8code
tristanmontoya Apr 16, 2025
e2339d2
update elixirs
tristanmontoya Apr 16, 2025
3b5c6bb
Merge remote-tracking branch 'origin/dgmulti_with_t8code' into dgmult…
tristanmontoya Apr 16, 2025
e6bb8a5
fix boundary flux
tristanmontoya Apr 18, 2025
77a2810
Merge remote-tracking branch 'origin/dgmulti_with_t8code' into dgmult…
tristanmontoya Apr 18, 2025
8a949dc
remove coverage override
tristanmontoya Apr 18, 2025
c36369f
Merge branch 'main' into dgmulti-mesh-io-support
tristanmontoya Apr 18, 2025
7faed0d
Merge branch 'main' into dgmulti_with_t8code
tristanmontoya Apr 18, 2025
7a8326b
remove RefElemData from DGMultiMesh
tristanmontoya Apr 21, 2025
06b086f
fix load_mesh_serial and include in test
tristanmontoya Apr 21, 2025
7716e52
fix tests
tristanmontoya Apr 21, 2025
2c735e9
format tests dir
tristanmontoya Apr 21, 2025
e906dc5
Merge branch 'main' into dgmulti-mesh-io-support
tristanmontoya Apr 22, 2025
bc7c687
Merge branch 'main' into dgmulti-mesh-io-support
tristanmontoya Apr 25, 2025
a2e3e53
Merge branch 'main' into dgmulti_with_t8code
tristanmontoya Apr 25, 2025
4aa5952
fix baroclinic instability elixir
tristanmontoya Apr 25, 2025
4476993
Merge branch 'main' into dgmulti_with_t8code
tristanmontoya Apr 25, 2025
3ba14da
Merge branch 'main' into dgmulti-mesh-io-support
tristanmontoya Apr 25, 2025
43a0f23
Merge branch 'dgmulti-mesh-io-support' into dgmulti_with_t8code
tristanmontoya Apr 25, 2025
1434c27
removal of RefElemData seems to work
tristanmontoya Apr 25, 2025
be1455e
Merge branch 'main' into dgmulti_with_t8code
tristanmontoya Apr 25, 2025
211ced8
Merge branch 'main' into dgmulti_with_t8code
tristanmontoya Apr 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion examples/dgmulti_1d/elixir_advection_gauss_sbp.jl
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,16 @@ summary_callback = SummaryCallback()
# analyse the solution in regular intervals and prints the results
analysis_callback = AnalysisCallback(semi, interval = 100, uEltype = real(dg))

# The SaveSolutionCallback allows to save the solution to a file in regular intervals
save_solution = SaveSolutionCallback(interval = 100,
solution_variables = cons2prim)

# handles the re-calculation of the maximum Δt after each time step
stepsize_callback = StepsizeCallback(cfl = 0.75)

# collect all callbacks such that they can be passed to the ODE solver
callbacks = CallbackSet(summary_callback, analysis_callback, stepsize_callback)
callbacks = CallbackSet(summary_callback, analysis_callback, save_solution,
stepsize_callback)

###############################################################################
# run the simulation
Expand Down
7 changes: 6 additions & 1 deletion examples/dgmulti_1d/elixir_burgers_gauss_shock_capturing.jl
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,16 @@ summary_callback = SummaryCallback()
# analyse the solution in regular intervals and prints the results
analysis_callback = AnalysisCallback(semi, interval = 100, uEltype = real(dg))

# SaveSolutionCallback allows to save the solution to a file in regular intervals
save_solution = SaveSolutionCallback(interval = 100,
solution_variables = cons2prim)

# handles the re-calculation of the maximum Δt after each time step
stepsize_callback = StepsizeCallback(cfl = 0.5)

# collect all callbacks such that they can be passed to the ODE solver
callbacks = CallbackSet(summary_callback, analysis_callback, stepsize_callback)
callbacks = CallbackSet(summary_callback, analysis_callback, save_solution,
stepsize_callback)

# ###############################################################################
# # run the simulation
Expand Down
4 changes: 3 additions & 1 deletion examples/dgmulti_1d/elixir_euler_flux_diff.jl
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,11 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
save_solution = SaveSolutionCallback(interval = 100,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback,
analysis_callback,
alive_callback)
alive_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
3 changes: 3 additions & 0 deletions examples/dgmulti_1d/elixir_euler_quasi_1d.jl
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,14 @@ analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))

alive_callback = AliveCallback(analysis_interval = analysis_interval)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
stepsize_callback = StepsizeCallback(cfl = 0.8)

callbacks = CallbackSet(summary_callback,
analysis_callback,
alive_callback,
save_solution,
stepsize_callback)

###############################################################################
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,16 @@ summary_callback = SummaryCallback()
# analyse the solution in regular intervals and prints the results
analysis_callback = AnalysisCallback(semi, interval = 100, uEltype = real(dg))

# SaveSolutionCallback allows to save the solution to a file in regular intervals
save_solution = SaveSolutionCallback(interval = 100,
solution_variables = cons2prim)

# handles the re-calculation of the maximum Δt after each time step
stepsize_callback = StepsizeCallback(cfl = 0.2)

# collect all callbacks such that they can be passed to the ODE solver
callbacks = CallbackSet(summary_callback, analysis_callback, stepsize_callback)
callbacks = CallbackSet(summary_callback, analysis_callback, save_solution,
stepsize_callback)

# ###############################################################################
# # run the simulation
Expand Down
5 changes: 4 additions & 1 deletion examples/dgmulti_1d/elixir_shallow_water_quasi_1d.jl
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,12 @@ analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype

alive_callback = AliveCallback(analysis_interval = analysis_interval)

save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)

callbacks = CallbackSet(summary_callback,
analysis_callback,
alive_callback)
alive_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
4 changes: 3 additions & 1 deletion examples/dgmulti_2d/elixir_advection_diffusion.jl
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,9 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
4 changes: 3 additions & 1 deletion examples/dgmulti_2d/elixir_advection_diffusion_periodic.jl
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
4 changes: 3 additions & 1 deletion examples/dgmulti_2d/elixir_euler_bilinear.jl
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
4 changes: 3 additions & 1 deletion examples/dgmulti_2d/elixir_euler_brown_minion_vortex.jl
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
4 changes: 3 additions & 1 deletion examples/dgmulti_2d/elixir_euler_curved.jl
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
5 changes: 4 additions & 1 deletion examples/dgmulti_2d/elixir_euler_hohqmesh.jl
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,12 @@ analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype

alive_callback = AliveCallback(analysis_interval = analysis_interval)

save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)

callbacks = CallbackSet(summary_callback,
analysis_callback,
alive_callback)
alive_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,11 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback,
analysis_callback,
alive_callback)
alive_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,12 @@ analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype

alive_callback = AliveCallback(analysis_interval = analysis_interval)

save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)

callbacks = CallbackSet(summary_callback,
analysis_callback,
alive_callback)
alive_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
4 changes: 3 additions & 1 deletion examples/dgmulti_2d/elixir_euler_shockcapturing.jl
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
4 changes: 3 additions & 1 deletion examples/dgmulti_2d/elixir_euler_shockcapturing_curved.jl
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
4 changes: 3 additions & 1 deletion examples/dgmulti_2d/elixir_euler_triangulate_pkg_mesh.jl
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
4 changes: 3 additions & 1 deletion examples/dgmulti_2d/elixir_euler_weakform.jl
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,10 @@ alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
stepsize_callback = StepsizeCallback(cfl = 1.5)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback, alive_callback, stepsize_callback,
analysis_callback)
analysis_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
4 changes: 3 additions & 1 deletion examples/dgmulti_2d/elixir_euler_weakform_periodic.jl
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
6 changes: 5 additions & 1 deletion examples/dgmulti_2d/elixir_mhd_reflective_wall.jl
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,15 @@ cfl = 0.5
stepsize_callback = StepsizeCallback(cfl = cfl)
glm_speed_callback = GlmSpeedCallback(glm_scale = 0.5, cfl = cfl)

save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)

callbacks = CallbackSet(summary_callback,
analysis_callback,
alive_callback,
stepsize_callback,
glm_speed_callback)
glm_speed_callback,
save_solution)

###############################################################################
# run the simulation
Expand Down
6 changes: 5 additions & 1 deletion examples/dgmulti_2d/elixir_mhd_weak_blast_wave.jl
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,15 @@ stepsize_callback = StepsizeCallback(cfl = cfl)

glm_speed_callback = GlmSpeedCallback(glm_scale = 0.5, cfl = cfl)

save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)

callbacks = CallbackSet(summary_callback,
analysis_callback,
stepsize_callback,
alive_callback,
glm_speed_callback)
glm_speed_callback,
save_solution)

###############################################################################
# run the simulation
Expand Down
5 changes: 4 additions & 1 deletion examples/dgmulti_2d/elixir_mhd_weak_blast_wave_SBP.jl
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,13 @@ alive_callback = AliveCallback(analysis_interval = analysis_interval)
#
# glm_speed_callback = GlmSpeedCallback(glm_scale=0.5, cfl=cfl)

save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)

callbacks = CallbackSet(summary_callback,
analysis_callback,
#stepsize_callback,
alive_callback) #=glm_speed_callback=#
alive_callback, save_solution) #=glm_speed_callback=#

###############################################################################
# run the simulation
Expand Down
4 changes: 3 additions & 1 deletion examples/dgmulti_2d/elixir_navierstokes_convergence.jl
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,9 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,9 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
4 changes: 3 additions & 1 deletion examples/dgmulti_2d/elixir_navierstokes_lid_driven_cavity.jl
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@ summary_callback = SummaryCallback()
alive_callback = AliveCallback(alive_interval = 10)
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback)
save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback, save_solution)

###############################################################################
# run the simulation
Expand Down
6 changes: 4 additions & 2 deletions examples/dgmulti_2d/elixir_shallowwater_source_terms.jl
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,12 @@ summary_callback = SummaryCallback()
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
alive_callback = AliveCallback(analysis_interval = analysis_interval)

save_solution = SaveSolutionCallback(interval = analysis_interval,
solution_variables = cons2prim)
callbacks = CallbackSet(summary_callback,
analysis_callback,
alive_callback)
alive_callback,
save_solution)

###############################################################################
# run the simulation
Expand Down
Loading
Loading