Path: blob/main/examples/dgmulti_2d/elixir_euler_cgsbp_periodic.jl
5586 views
using OrdinaryDiffEqLowStorageRK1using Trixi23# Create a 1D global CGSEM operator with periodic BCs4# In multiple space dimensions, tensor products of the 1D operator are used.5D = couple_continuously(legendre_derivative_operator(xmin = 0.0, xmax = 1.0, N = 3),6UniformPeriodicMesh1D(xmin = -1.0, xmax = 1.0, Nx = 32))7dg = DGMulti(element_type = Quad(),8approximation_type = D,9volume_integral = VolumeIntegralFluxDifferencing(flux_kennedy_gruber))1011equations = CompressibleEulerEquations2D(1.4)12initial_condition = initial_condition_convergence_test13source_terms = source_terms_convergence_test1415mesh = DGMultiMesh(dg, coordinates_min = (-1.0, -1.0),16coordinates_max = (1.0, 1.0))1718semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, dg;19source_terms = source_terms,20boundary_conditions = boundary_condition_periodic)2122tspan = (0.0, 0.4)23ode = semidiscretize(semi, tspan)2425summary_callback = SummaryCallback()26alive_callback = AliveCallback(alive_interval = 10)27analysis_interval = 10028analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))29stepsize_callback = StepsizeCallback(cfl = 1.0)30callbacks = CallbackSet(summary_callback, alive_callback, stepsize_callback,31analysis_callback)3233###############################################################################34# run the simulation3536sol = solve(ode, CarpenterKennedy2N54(williamson_condition = false);37dt = 0.5 * estimate_dt(mesh, dg),38ode_default_options()...,39callback = callbacks);404142