Path: blob/main/examples/dgmulti_1d/elixir_euler_modified_sod.jl
2055 views
using OrdinaryDiffEqSSPRK1using Trixi23surface_flux = FluxPlusDissipation(flux_ranocha, DissipationMatrixWintersEtal())4volume_flux = flux_ranocha5dg = DGMulti(polydeg = 3, element_type = Line(), approximation_type = SBP(),6surface_integral = SurfaceIntegralWeakForm(surface_flux),7volume_integral = VolumeIntegralFluxDifferencing(volume_flux))89equations = CompressibleEulerEquations1D(1.4)1011function initial_condition_modified_sod(x, t, ::CompressibleEulerEquations1D)12if x[1] < 0.313return prim2cons(SVector(1, 0.75, 1), equations)14else15return prim2cons(SVector(0.125, 0.0, 0.1), equations)16end17end1819initial_condition = initial_condition_modified_sod2021cells_per_dimension = (50,)22mesh = DGMultiMesh(dg, cells_per_dimension,23coordinates_min = (0.0,), coordinates_max = (1.0,), periodicity = false)24semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, dg)2526tspan = (0.0, 0.2)27ode = semidiscretize(semi, tspan)2829summary_callback = SummaryCallback()30alive_callback = AliveCallback(alive_interval = 100)31analysis_interval = 100032analysis_callback = AnalysisCallback(semi, interval = analysis_interval, uEltype = real(dg))33callbacks = CallbackSet(summary_callback,34analysis_callback,35alive_callback)3637###############################################################################38# run the simulation3940sol = solve(ode, SSPRK43(); adaptive = false,41dt = 0.5 * estimate_dt(mesh, dg),42ode_default_options()...,43callback = callbacks);444546