Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
trixi-framework
GitHub Repository: trixi-framework/Trixi.jl
Path: blob/main/examples/unstructured_2d_dgsem/elixir_euler_periodic.jl
2055 views
1
using OrdinaryDiffEqSSPRK
2
using Trixi
3
4
###############################################################################
5
# semidiscretization of the compressible Euler equations
6
7
equations = CompressibleEulerEquations2D(1.4)
8
9
initial_condition = initial_condition_convergence_test
10
source_terms = source_terms_convergence_test
11
boundary_conditions = boundary_condition_periodic
12
13
###############################################################################
14
# Get the DG approximation space
15
16
solver = DGSEM(polydeg = 6, surface_flux = FluxRotated(flux_hll))
17
18
###############################################################################
19
# Get the curved quad mesh from a file (downloads the file if not available locally)
20
mesh_file = Trixi.download("https://gist.githubusercontent.com/andrewwinters5000/12ce661d7c354c3d94c74b964b0f1c96/raw/8275b9a60c6e7ebbdea5fc4b4f091c47af3d5273/mesh_periodic_square_with_twist.mesh",
21
joinpath(@__DIR__, "mesh_periodic_square_with_twist.mesh"))
22
23
mesh = UnstructuredMesh2D(mesh_file, periodicity = true)
24
25
###############################################################################
26
# create the semi discretization object
27
28
semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver,
29
source_terms = source_terms,
30
boundary_conditions = boundary_conditions)
31
32
###############################################################################
33
# ODE solvers, callbacks etc.
34
35
tspan = (0.0, 1.0)
36
ode = semidiscretize(semi, tspan)
37
38
summary_callback = SummaryCallback()
39
40
analysis_interval = 100
41
analysis_callback = AnalysisCallback(semi, interval = analysis_interval)
42
43
alive_callback = AliveCallback(analysis_interval = analysis_interval)
44
45
callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback)
46
47
###############################################################################
48
# run the simulation
49
50
sol = solve(ode, SSPRK43(); ode_default_options()..., callback = callbacks);
51
52