Path: blob/main/examples/unstructured_2d_dgsem/elixir_euler_free_stream.jl
2055 views
using OrdinaryDiffEqLowStorageRK1using Trixi23###############################################################################4# semidiscretization of the compressible Euler equations56equations = CompressibleEulerEquations2D(1.4)78initial_condition = initial_condition_constant910boundary_condition_free_stream = BoundaryConditionDirichlet(initial_condition)11boundary_conditions = Dict(:Body => boundary_condition_free_stream,12:Button1 => boundary_condition_free_stream,13:Button2 => boundary_condition_free_stream,14:Eye1 => boundary_condition_free_stream,15:Eye2 => boundary_condition_free_stream,16:Smile => boundary_condition_free_stream,17:Bowtie => boundary_condition_free_stream)1819###############################################################################20# Get the DG approximation space2122solver = DGSEM(polydeg = 6, surface_flux = flux_hll)2324###############################################################################25# Get the curved quad mesh from a file (downloads the file if not available locally)26mesh_file = Trixi.download("https://gist.githubusercontent.com/andrewwinters5000/2c6440b5f8a57db131061ad7aa78ee2b/raw/1f89fdf2c874ff678c78afb6fe8dc784bdfd421f/mesh_gingerbread_man.mesh",27joinpath(@__DIR__, "mesh_gingerbread_man.mesh"))2829mesh = UnstructuredMesh2D(mesh_file)3031###############################################################################32# create the semi discretization object3334semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver,35boundary_conditions = boundary_conditions)3637###############################################################################38# ODE solvers, callbacks etc.3940tspan = (0.0, 5.0)41ode = semidiscretize(semi, tspan)4243summary_callback = SummaryCallback()4445analysis_interval = 10046analysis_callback = AnalysisCallback(semi, interval = analysis_interval)4748alive_callback = AliveCallback(analysis_interval = analysis_interval)4950save_solution = SaveSolutionCallback(interval = 100,51save_initial_solution = true,52save_final_solution = true)5354stepsize_callback = StepsizeCallback(cfl = 1.0)5556callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, save_solution,57stepsize_callback)5859###############################################################################60# run the simulation6162sol = solve(ode, CarpenterKennedy2N54(williamson_condition = false);63dt = 1.0, # solve needs some value here but it will be overwritten by the stepsize_callback64ode_default_options()..., callback = callbacks);656667