Path: blob/main/examples/tree_3d_dgsem/elixir_advection_er.jl
5586 views
using Trixi12###############################################################################3# semidiscretization of the linear advection equation45advection_velocity = (1.0, 1.0, 1.0)6equations = LinearScalarAdvectionEquation3D(advection_velocity)78solver = DGSEM(polydeg = 2, surface_flux = flux_central,9volume_integral = VolumeIntegralFluxDifferencing(flux_central)) # Entropy-conservative setup1011coordinates_min = (-1.0, -1.0, -1.0)12coordinates_max = (1.0, 1.0, 1.0)13# Create a uniformly refined mesh with periodic boundaries14mesh = TreeMesh(coordinates_min, coordinates_max,15initial_refinement_level = 3,16n_cells_max = 30_000, periodicity = true)1718semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition_convergence_test,19solver;20boundary_conditions = boundary_condition_periodic)2122###############################################################################23# ODE solvers, callbacks etc.2425ode = semidiscretize(semi, (0.0, 1.0))2627summary_callback = SummaryCallback()2829analysis_interval = 130analysis_callback = AnalysisCallback(semi, interval = analysis_interval,31analysis_errors = Symbol[], # Switch off error computation32# Note: `entropy` defaults to mathematical entropy33analysis_integrals = (entropy,),34analysis_filename = "entropy_ER.dat",35save_analysis = true)3637stepsize_callback = StepsizeCallback(cfl = 1.0)3839callbacks = CallbackSet(summary_callback, analysis_callback,40stepsize_callback)4142###############################################################################43# run the simulation4445relaxation_solver = Trixi.RelaxationSolverNewton(max_iterations = 3,46root_tol = eps(Float64),47gamma_tol = eps(Float64))48ode_alg = Trixi.RelaxationRalston3(relaxation_solver = relaxation_solver)4950sol = Trixi.solve(ode, ode_alg,51dt = 42.0, save_everystep = false, callback = callbacks);525354