Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
trixi-framework
GitHub Repository: trixi-framework/Trixi.jl
Path: blob/main/examples/tree_1d_fdsbp/elixir_euler_convergence.jl
5586 views
1
# !!! warning "Experimental implementation (upwind SBP)"
2
# This is an experimental feature and may change in future releases.
3
4
using OrdinaryDiffEqSSPRK
5
using Trixi
6
7
###############################################################################
8
# semidiscretization of the compressible Euler equations
9
10
equations = CompressibleEulerEquations1D(1.4)
11
12
initial_condition = initial_condition_convergence_test
13
14
D_upw = upwind_operators(SummationByPartsOperators.Mattsson2017,
15
derivative_order = 1,
16
accuracy_order = 4,
17
xmin = -1.0, xmax = 1.0,
18
N = 32)
19
flux_splitting = splitting_steger_warming
20
solver = FDSBP(D_upw,
21
surface_integral = SurfaceIntegralUpwind(flux_splitting),
22
volume_integral = VolumeIntegralUpwind(flux_splitting))
23
24
coordinates_min = 0.0
25
coordinates_max = 2.0
26
mesh = TreeMesh(coordinates_min, coordinates_max,
27
initial_refinement_level = 1,
28
n_cells_max = 10_000, periodicity = true)
29
30
semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver;
31
source_terms = source_terms_convergence_test,
32
boundary_conditions = boundary_condition_periodic)
33
34
###############################################################################
35
# ODE solvers, callbacks etc.
36
37
tspan = (0.0, 2.0)
38
ode = semidiscretize(semi, tspan)
39
40
summary_callback = SummaryCallback()
41
42
analysis_interval = 100
43
analysis_callback = AnalysisCallback(semi, interval = analysis_interval,
44
extra_analysis_errors = (:l2_error_primitive,
45
:linf_error_primitive))
46
47
alive_callback = AliveCallback(analysis_interval = analysis_interval)
48
49
save_solution = SaveSolutionCallback(interval = 100,
50
save_initial_solution = true,
51
save_final_solution = true,
52
solution_variables = cons2prim)
53
54
callbacks = CallbackSet(summary_callback,
55
analysis_callback, alive_callback,
56
save_solution)
57
58
###############################################################################
59
# run the simulation
60
61
sol = solve(ode, SSPRK43(); abstol = 1.0e-6, reltol = 1.0e-6,
62
ode_default_options()..., callback = callbacks)
63
64