Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
trixi-framework
GitHub Repository: trixi-framework/Trixi.jl
Path: blob/main/examples/dgmulti_3d/elixir_euler_weakform_periodic.jl
2055 views
1
using OrdinaryDiffEqLowStorageRK
2
using Trixi
3
4
dg = DGMulti(polydeg = 3, element_type = Tet(), approximation_type = Polynomial(),
5
surface_integral = SurfaceIntegralWeakForm(flux_hll),
6
volume_integral = VolumeIntegralWeakForm())
7
8
equations = CompressibleEulerEquations3D(1.4)
9
initial_condition = initial_condition_convergence_test
10
source_terms = source_terms_convergence_test
11
12
cells_per_dimension = (4, 4, 4)
13
mesh = DGMultiMesh(dg, cells_per_dimension, periodicity = true)
14
15
semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, dg,
16
source_terms = source_terms)
17
18
tspan = (0.0, 0.1)
19
ode = semidiscretize(semi, tspan)
20
21
summary_callback = SummaryCallback()
22
alive_callback = AliveCallback(alive_interval = 10)
23
analysis_interval = 100
24
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
25
save_solution = SaveSolutionCallback(interval = analysis_interval,
26
solution_variables = cons2prim)
27
callbacks = CallbackSet(summary_callback, alive_callback, analysis_callback, save_solution)
28
29
###############################################################################
30
# run the simulation
31
32
sol = solve(ode, CarpenterKennedy2N54(williamson_condition = false);
33
dt = 0.5 * estimate_dt(mesh, dg), ode_default_options()...,
34
callback = callbacks);
35
36