Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
trixi-framework
GitHub Repository: trixi-framework/Trixi.jl
Path: blob/main/examples/dgmulti_2d/elixir_euler_cgsbp_periodic.jl
5586 views
1
using OrdinaryDiffEqLowStorageRK
2
using Trixi
3
4
# Create a 1D global CGSEM operator with periodic BCs
5
# In multiple space dimensions, tensor products of the 1D operator are used.
6
D = couple_continuously(legendre_derivative_operator(xmin = 0.0, xmax = 1.0, N = 3),
7
UniformPeriodicMesh1D(xmin = -1.0, xmax = 1.0, Nx = 32))
8
dg = DGMulti(element_type = Quad(),
9
approximation_type = D,
10
volume_integral = VolumeIntegralFluxDifferencing(flux_kennedy_gruber))
11
12
equations = CompressibleEulerEquations2D(1.4)
13
initial_condition = initial_condition_convergence_test
14
source_terms = source_terms_convergence_test
15
16
mesh = DGMultiMesh(dg, coordinates_min = (-1.0, -1.0),
17
coordinates_max = (1.0, 1.0))
18
19
semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, dg;
20
source_terms = source_terms,
21
boundary_conditions = boundary_condition_periodic)
22
23
tspan = (0.0, 0.4)
24
ode = semidiscretize(semi, tspan)
25
26
summary_callback = SummaryCallback()
27
alive_callback = AliveCallback(alive_interval = 10)
28
analysis_interval = 100
29
analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))
30
stepsize_callback = StepsizeCallback(cfl = 1.0)
31
callbacks = CallbackSet(summary_callback, alive_callback, stepsize_callback,
32
analysis_callback)
33
34
###############################################################################
35
# run the simulation
36
37
sol = solve(ode, CarpenterKennedy2N54(williamson_condition = false);
38
dt = 0.5 * estimate_dt(mesh, dg),
39
ode_default_options()...,
40
callback = callbacks);
41
42