From 7b94af2fc714d62c82969bdff5704bc5d9f917cb Mon Sep 17 00:00:00 2001
From: Marco Artiano <artianomarco97@gmail.com>
Date: Thu, 30 May 2024 17:08:00 +0200
Subject: [PATCH 01/13] first draft IMEX JinXin

---
 src/time_integration/methods_IMEXJinXin.jl | 575 +++++++++++++++++++++
 src/time_integration/time_integration.jl   |   1 +
 2 files changed, 576 insertions(+)
 create mode 100644 src/time_integration/methods_IMEXJinXin.jl

diff --git a/src/time_integration/methods_IMEXJinXin.jl b/src/time_integration/methods_IMEXJinXin.jl
new file mode 100644
index 00000000000..30c1b8252ef
--- /dev/null
+++ b/src/time_integration/methods_IMEXJinXin.jl
@@ -0,0 +1,575 @@
+# By default, Julia/LLVM does not use fused multiply-add operations (FMAs).
+# Since these FMAs can increase the performance of many numerical algorithms,
+# we need to opt-in explicitly.
+# See https://ranocha.de/blog/Optimizing_EC_Trixi for further details.
+@muladd begin
+#! format: noindent
+
+# Abstract base type for time integration schemes of explicit strong stability-preserving (SSP)
+# Runge-Kutta (RK) methods. They are high-order time discretizations that guarantee the TVD property.
+abstract type SimpleAlgorithmIMEX end
+
+"""
+    SimpleIMEX(; stage_callbacks=())
+
+    Pareschi - Russo IMEX Explicit Implicit IMEX-SSP2(3,3,2) Stiffly Accurate Scheme
+
+## References
+
+- missing
+
+!!! warning "Experimental implementation"
+    This is an experimental feature and may change in future releases.
+"""
+struct SimpleIMEX{StageCallbacks} <: SimpleAlgorithmIMEX
+    A1::Matrix{Float64}
+    A2::Matrix{Float64}
+    b::SVector{3, Float64}
+    c1::SVector{3, Float64}
+    c2::SVector{3, Float64}
+    stage_callbacks::StageCallbacks
+
+    function SimpleIMEX(; stage_callbacks = ())
+        # Mathematically speaking, it is not necessary for the algorithm to split the factors
+        # into numerator and denominator. Otherwise, however, rounding errors of the order of
+        # the machine accuracy will occur, which will add up over time and thus endanger the
+        # conservation of the simulation.
+        # See also https://github.com/trixi-framework/Trixi.jl/pull/1640.
+        A1 = zeros(3,3)
+        A2 = zeros(3,3)
+        A1[2,1] = 0.5
+        A1[3,1] = 0.5
+        A1[3,2] = 0.5
+
+        A2[1,1] = 1/4
+        A2[2,2] = 1/4
+        A2[3,1] = 1/3
+        A2[3,2] = 1/3
+        A2[3,3] = 1/3
+
+        b = SVector(1/3, 1/3, 1/3) 
+        c1 = SVector(0.0, 1/2, 1)
+        c2 = SVector(1/4, 1/4, 1)
+
+        # Butcher tableau
+        #   c |       a
+        #   0 |
+        #   1 |   1
+        # 1/2 | 1/4  1/4
+        # --------------------
+        #   b | 1/6  1/6  2/3
+
+        new{typeof(stage_callbacks)}(A1, A2, b, c1,c2,
+                                     stage_callbacks)
+    end
+end
+
+# This struct is needed to fake https://github.com/SciML/OrdinaryDiffEq.jl/blob/0c2048a502101647ac35faabd80da8a5645beac7/src/integrators/type.jl#L1
+mutable struct SimpleIntegratorIMEXOptions{Callback, TStops}
+    callback::Callback # callbacks; used in Trixi
+    adaptive::Bool # whether the algorithm is adaptive; ignored
+    dtmax::Float64 # ignored
+    maxiters::Int # maximal number of time steps
+    tstops::TStops # tstops from https://diffeq.sciml.ai/v6.8/basics/common_solver_opts/#Output-Control-1; ignored
+end
+
+function SimpleIntegratorIMEXOptions(callback, tspan; maxiters = typemax(Int), kwargs...)
+    tstops_internal = BinaryHeap{eltype(tspan)}(FasterForward())
+    # We add last(tspan) to make sure that the time integration stops at the end time
+    push!(tstops_internal, last(tspan))
+    # We add 2 * last(tspan) because add_tstop!(integrator, t) is only called by DiffEqCallbacks.jl if tstops contains a time that is larger than t
+    # (https://github.com/SciML/DiffEqCallbacks.jl/blob/025dfe99029bd0f30a2e027582744528eb92cd24/src/iterative_and_periodic.jl#L92)
+    push!(tstops_internal, 2 * last(tspan))
+    SimpleIntegratorIMEXOptions{typeof(callback), typeof(tstops_internal)}(callback,
+                                                                          false, Inf,
+                                                                          maxiters,
+                                                                          tstops_internal)
+end
+
+# This struct is needed to fake https://github.com/SciML/OrdinaryDiffEq.jl/blob/0c2048a502101647ac35faabd80da8a5645beac7/src/integrators/type.jl#L77
+# This implements the interface components described at
+# https://diffeq.sciml.ai/v6.8/basics/integrator/#Handing-Integrators-1
+# which are used in Trixi.
+mutable struct SimpleIntegratorIMEX{RealT <: Real, uType, Params, Sol, F, Alg,
+                                   SimpleIntegratorIMEXOptions}
+    u::uType
+    u1::uType
+    u2::uType
+    u3::uType
+    fu1::uType
+    fu2::uType
+    fu3::uType
+    du1::uType
+    du2::uType
+    du3::uType
+    du::uType
+    u_tmp1::uType
+    u_tmp2::uType
+    u_tmp3::uType
+    r0::uType
+    t::RealT
+    tdir::RealT
+    dt::RealT # current time step
+    dtcache::RealT # manually set time step
+    iter::Int # current number of time steps (iteration)
+    p::Params # will be the semidiscretization from Trixi
+    sol::Sol # faked
+    f::F
+    alg::Alg
+    opts::SimpleIntegratorIMEXOptions
+    finalstep::Bool # added for convenience
+    dtchangeable::Bool
+    force_stepfail::Bool
+end
+
+"""
+    add_tstop!(integrator::SimpleIntegratorSSP, t)
+Add a time stop during the time integration process.
+This function is called after the periodic SaveSolutionCallback to specify the next stop to save the solution.
+"""
+function add_tstop!(integrator::SimpleIntegratorIMEX, t)
+    integrator.tdir * (t - integrator.t) < zero(integrator.t) &&
+        error("Tried to add a tstop that is behind the current time. This is strictly forbidden")
+    # We need to remove the first entry of tstops when a new entry is added.
+    # Otherwise, the simulation gets stuck at the previous tstop and dt is adjusted to zero.
+    if length(integrator.opts.tstops) > 1
+        pop!(integrator.opts.tstops)
+    end
+    push!(integrator.opts.tstops, integrator.tdir * t)
+end
+
+has_tstop(integrator::SimpleIntegratorIMEX) = !isempty(integrator.opts.tstops)
+first_tstop(integrator::SimpleIntegratorIMEX) = first(integrator.opts.tstops)
+
+# Forward integrator.stats.naccept to integrator.iter (see GitHub PR#771)
+function Base.getproperty(integrator::SimpleIntegratorIMEX, field::Symbol)
+    if field === :stats
+        return (naccept = getfield(integrator, :iter),)
+    end
+    # general fallback
+    return getfield(integrator, field)
+end
+
+"""
+    solve(ode, alg; dt, callbacks, kwargs...)
+
+The following structures and methods provide the infrastructure for SSP Runge-Kutta methods
+of type `SimpleAlgorithmSSP`.
+
+!!! warning "Experimental implementation"
+    This is an experimental feature and may change in future releases.
+"""
+function solve(ode::ODEProblem, alg = SimpleAlgorithmIMEX()::SimpleAlgorithmIMEX;
+               dt, callback = nothing, kwargs...)
+    u = copy(ode.u0)
+    du1 = similar(u)
+    du2 = similar(u)
+    du3 = similar(u)
+    fu1 = similar(u)
+    fu2 = similar(u)
+    fu3 = similar(u)
+    du = similar(u)
+    u1 = similar(u)
+    u2 = similar(u)
+    u3 = similar(u)
+    u_tmp1 = similar(u)
+    u_tmp2 = similar(u)
+    u_tmp3 = similar(u)
+    r0 = similar(u)
+    t = first(ode.tspan)
+    tdir = sign(ode.tspan[end] - ode.tspan[1])
+    iter = 0
+    integrator = SimpleIntegratorIMEX(u,u1,u2,u3,fu1,fu2,fu3,du1,du2,du3,du,u_tmp1,u_tmp2,u_tmp3, r0, t, tdir, dt, dt, iter, ode.p,
+                                     (prob = ode,), ode.f, alg,
+                                     SimpleIntegratorIMEXOptions(callback, ode.tspan;
+                                                                kwargs...),
+                                     false, true, false)
+
+    # resize container
+    resize!(integrator.p, nelements(integrator.p.solver, integrator.p.cache))
+
+    # initialize callbacks
+    if callback isa CallbackSet
+        foreach(callback.continuous_callbacks) do cb
+            error("unsupported")
+        end
+        foreach(callback.discrete_callbacks) do cb
+            cb.initialize(cb, integrator.u, integrator.t, integrator)
+        end
+    elseif !isnothing(callback)
+        error("unsupported")
+    end
+
+    for stage_callback in alg.stage_callbacks
+        init_callback(stage_callback, integrator.p)
+    end
+
+    solve!(integrator)
+end
+
+function solve!(integrator::SimpleIntegratorIMEX)
+    @unpack prob = integrator.sol
+    @unpack alg = integrator
+    t_end = last(prob.tspan)
+    callbacks = integrator.opts.callback
+    semi = integrator.p
+    mesh, equations, solver, cache = Trixi.mesh_equations_solver_cache(semi)
+    relaxation_rate = equations.eps_relaxation
+    integrator.finalstep = false
+    @trixi_timeit timer() "main loop" while !integrator.finalstep
+            if isnan(integrator.dt)
+                error("time step size `dt` is NaN")
+            end
+
+            modify_dt_for_tstops!(integrator)
+            # if the next iteration would push the simulation beyond the end time, set dt accordingly
+                if integrator.t + integrator.dt > t_end ||
+                    isapprox(integrator.t + integrator.dt, t_end)
+                    integrator.dt = t_end - integrator.t
+                    terminate!(integrator)
+                end
+            integrator.u1 .= 0
+            integrator.u2 .= 0
+            integrator.u3 .= 0
+            integrator.du1 .= 0
+            integrator.du2 .= 0
+            integrator.du3 .= 0
+            integrator.fu1 .= 0
+            integrator.fu2 .= 0
+            integrator.fu3 .= 0
+            integrator.u_tmp1 .= 0
+            integrator.u_tmp2 .= 0
+            integrator.u_tmp3 .= 0
+                
+                #Ui = Un - dt sum A1_ij partial rhs(Uj) - dt/epsilon sum A2_ij (Vj - f(Uj))
+                #Un+1 = Un - dt sum bj partial rhs(Uj) - dt/epsilon sum bj (Vj - f(Uj))
+                
+                t_stage = integrator.t + integrator.dt * alg.c1[1]
+                
+                #   Stage 1
+                #Ui = (ui;vi)
+                #u1 = un
+                #v1 = vn - -dt/epsilon A2_{11} (v1 - f(u1)) 
+                
+              @.  integrator.u1 .= integrator.u  #u1 = v1 = un
+                
+              @. integrator.fu1 .= integrator.u1
+                 wrap_and_perform_projection!(integrator.fu1,integrator.dt,mesh,equations,solver,cache)  # compute f(u1)
+
+              @. integrator.u1 = integrator.u1 + integrator.dt/relaxation_rate*alg.A2[1,1]*integrator.fu1 # v1 = vn + dt/eps*A2_11 f(u1)
+                
+                divide_relaxed_var!(integrator.u1,integrator.dt,semi,solver,cache,alg.A2[1,1],equations)  # v1 = (vn + dt/eps*A2_11 f(u1))/(1 + dt/eps A2_11)
+               
+                integrator.f(integrator.du1, integrator.u1, integrator.p, t_stage) # compute RHS(u1,v1)
+
+                # Stage 2        
+                #u2 = un - dt A1_{21} rhs(u1,v1) 
+                #v2 = vn - dt A1_{21} rhs(u1,v1) - dt/epsilon A2_{21} (v1 - f(u1)) -dt/epsilon A2_{22} (v2 - f(u2)) 
+                
+                t_stage = integrator.t + integrator.dt * alg.c1[2]
+           
+                @. integrator.u2 = integrator.u - integrator.dt*alg.A1[2,1]*integrator.du1 # u2 = v2 = Un - dt*A1_22 RHS(U1)
+
+                @. integrator.fu2 = integrator.u2
+                wrap_and_perform_projection!(integrator.fu2,integrator.dt,mesh,equations,solver,cache) # compute f(u2) and setting the source term values to 0 for the cons variables
+                
+                @. integrator.u_tmp1 = integrator.u1
+                set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache) # computing v1 by setting cons variables to 0
+
+                # v2 = vn - dt/eps*A2_21*(v1-f(u1)) + dt/eps*A2_22*f(u2)
+                @. integrator.u2 = integrator.u2 - integrator.dt/relaxation_rate*alg.A2[2,1]*(integrator.u_tmp1 - integrator.fu1) + integrator.dt*alg.A2[2,2]/relaxation_rate*integrator.fu2
+               
+                divide_relaxed_var!(integrator.u2,integrator.dt,semi,solver,cache,alg.A2[2,2],equations) # v2 = (vn - dt/eps*A2_21*(v1-f(u1)) + dt/eps*A2_22*f(u2) ) ( 1+dt/eps A2_22)
+
+                integrator.f(integrator.du2, integrator.u2, integrator.p, t_stage)
+               
+                # Stage 3
+                #u3 = un - dt A1_{31} rhs(u1,v1) - dt A1_{32} rhs(u2,v2)
+                #v3 = vn - dt A1_{31} rhs(u1,v1) - dt A1_{32} rhs(u2,v2) - dt/epsilon A2_{31} (v1 - f(u1)) -dt/epsilon A2_{32} (v2 - f(u2)) -dt/epsilon A2_{33} (v3 - f(u3))
+                @. integrator.u3 = integrator.u - integrator.dt*alg.A1[3,1]*integrator.du1 - integrator.dt*alg.A1[3,2]*integrator.du2
+
+                @. integrator.fu3 = integrator.u3
+                wrap_and_perform_projection!(integrator.fu3,integrator.dt,mesh,equations,solver,cache)
+
+                #  @. integrator.u_tmp1 = integrator.u1
+                #  set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache)
+
+                @. integrator.u_tmp2 = integrator.u2
+                set_cons_var_to_zero!(integrator.u_tmp2,semi,solver,cache)
+
+                @. integrator.u3 = integrator.u3 - integrator.dt/relaxation_rate*alg.A2[3,1]*(integrator.u_tmp1 - integrator.fu1) - integrator.dt/relaxation_rate*alg.A2[3,2]*(integrator.u_tmp2 - integrator.fu2) + integrator.dt*alg.A2[3,3]/relaxation_rate*integrator.fu3
+                
+                divide_relaxed_var!(integrator.u3,integrator.dt,semi,solver,cache,alg.A2[3,3],equations) 
+                
+                integrator.f(integrator.du3, integrator.u3, integrator.p, t_stage)
+                
+                # Final Stage
+                @. integrator.u = integrator.u - integrator.dt*alg.b[1]*integrator.du1 - integrator.dt*alg.b[2]*integrator.du2 - integrator.dt*alg.b[3]*integrator.du3
+                
+                # Already done that for u_tmp1 and u_tmp2, such that they are v1 = u_tmp1 and v2 = u_tmp2
+                # integrator.u_tmp1 .= integrator.u1              
+                # integrator.u_tmp2 .= integrator.u2
+                @. integrator.u_tmp3 = integrator.u3
+                # set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache)
+                # set_cons_var_to_zero!(integrator.u_tmp2,semi,solver,cache)
+                set_cons_var_to_zero!(integrator.u_tmp3,semi,solver,cache)
+
+                @. integrator.u = integrator.u - integrator.dt/relaxation_rate*alg.b[1]*(integrator.u_tmp1 - integrator.fu1) - integrator.dt/relaxation_rate*alg.b[2]*(integrator.u_tmp2 - integrator.fu2) - integrator.dt*alg.b[3]/relaxation_rate*(integrator.u_tmp3 - integrator.fu3)
+             # End Stages   
+          #  for stage_callback in alg.stage_callbacks
+          #      stage_callback(integrator.u, integrator, 1)
+          #  end
+
+        integrator.iter += 1
+        integrator.t += integrator.dt
+
+        # handle callbacks
+        if callbacks isa CallbackSet
+            foreach(callbacks.discrete_callbacks) do cb
+                if cb.condition(integrator.u, integrator.t, integrator)
+                    cb.affect!(integrator)
+                end
+            end
+        end
+        
+        # respect maximum number of iterations
+        if integrator.iter >= integrator.opts.maxiters && !integrator.finalstep
+            @warn "Interrupted. Larger maxiters is needed."
+            terminate!(integrator)
+        end
+    end
+
+    # Empty the tstops array.
+    # This cannot be done in terminate!(integrator::SimpleIntegratorSSP) because DiffEqCallbacks.PeriodicCallbackAffect would return at error.
+    extract_all!(integrator.opts.tstops)
+
+    for stage_callback in alg.stage_callbacks
+        finalize_callback(stage_callback, integrator.p)
+    end
+
+    return TimeIntegratorSolution((first(prob.tspan), integrator.t),
+                                  (prob.u0, integrator.u), prob)
+end
+
+function divide_relaxed_var!(u,dt,semi,solver,cache,aii,equations)
+    u_wrap = Trixi.wrap_array(u,semi)
+    cycle_divide!(u_wrap,dt,semi,solver,cache,aii,equations)
+    return nothing
+end
+
+function cycle_divide!(u,dt,semi,solver,cache,aii,equations)
+
+         relaxation_rate = equations.eps_relaxation
+                for element in eachelement(solver,cache)
+                    for j in eachnode(solver),i in eachnode(solver)
+                        for var in 5:12
+                        u[var,i,j,element] = u[var,i,j,element]/(1.0+dt/relaxation_rate*aii)    
+                        end
+                    end
+                end
+
+    return nothing
+end
+
+function wrap_and_perform_projection!(u,dt,mesh,equations,solver,cache)
+
+                u_wrap = wrap_array(u, mesh, equations, solver, cache)
+                perform_projection_sourceterm!(u_wrap,dt,mesh,equations,solver,cache)
+    
+    return nothing
+end
+
+
+function set_cons_var_to_zero!(u,semi,solver,cache)
+                u_wrap = Trixi.wrap_array(u,semi)
+                for element in eachelement(solver, cache)    
+                    for j in eachnode(solver), i in eachnode(solver)
+                        for var in 1:4
+                u_wrap[var,i,j,element] = 0.0
+                        end        
+                    end
+                end
+    return nothing
+end
+
+function perform_projection_sourceterm!(u, dt, mesh::TreeMesh2D, equations::JinXinEquations, dg, cache)
+
+    # relaxation parameter
+    eps = equations.eps_relaxation
+    dt_ = dt
+    factor =1.0/ (eps + dt_)
+    eq_relax = equations.equations_base
+
+    # prepare local storage for projection
+    @unpack interpolate_N_to_M, project_M_to_N, filter_modal_to_N = dg.basis
+    nnodes_,nnodes_projection = size(project_M_to_N)
+    nVars = nvariables(eq_relax)
+    RealT = real(dg)
+    u_N = zeros(RealT, nVars, nnodes_, nnodes_)
+    w_N = zeros(RealT, nVars, nnodes_, nnodes_)
+    f_N = zeros(RealT, nVars, nnodes_, nnodes_)
+    g_N = zeros(RealT, nVars, nnodes_, nnodes_)
+    u_M = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
+    w_M_raw = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
+    w_M = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
+    f_M = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
+    g_M = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
+
+    tmp_MxM = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
+    tmp_MxN = zeros(RealT, nVars, nnodes_projection, nnodes_)
+    tmp_NxM = zeros(RealT, nVars, nnodes_, nnodes_projection)
+
+#@threaded for element in eachelement(dg, cache)
+for element in eachelement(dg, cache)
+
+# get element u_N
+for j in eachnode(dg), i in eachnode(dg)
+    u_node = get_node_vars(u, equations, dg, i, j, element)
+    for v in eachvariable(eq_relax)
+        u_N[v,i,j] = u_node[v]
+    end
+end
+# bring elemtn u_N to grid (M+1)x(M+1)
+multiply_dimensionwise!(u_M,interpolate_N_to_M,u_N,tmp_MxN)
+
+# compute nodal values of entropy variables w on the M grid
+for j in 1:nnodes_projection, i in 1:nnodes_projection
+    u_cons = get_node_vars(u_M, eq_relax, dg, i, j)
+    w_ij   = cons2entropy(u_cons,eq_relax) 
+    set_node_vars!(w_M_raw,w_ij,eq_relax,dg,i,j)
+end
+# compute projection of w with M values down to N
+multiply_dimensionwise!(w_M,filter_modal_to_N,w_M_raw,tmp_MxM)
+
+#multiply_dimensionwise!(w_N,project_M_to_N,w_M)
+#multiply_dimensionwise!(w_M,interpolate_N_to_M,w_N)
+
+
+# compute nodal values of conservative f,g on the M grid
+for j in 1:nnodes_projection, i in 1:nnodes_projection
+    w_ij = get_node_vars(w_M, eq_relax, dg, i, j)
+    u_cons = entropy2cons(w_ij, eq_relax)
+    f_cons = flux(u_cons,1,eq_relax)
+    set_node_vars!(f_M,f_cons,eq_relax,dg,i,j)
+    g_cons = flux(u_cons,2,eq_relax)
+    set_node_vars!(g_M,g_cons,eq_relax,dg,i,j)
+end
+# compute projection of f with M values down to N, same for g
+multiply_dimensionwise!(f_N,project_M_to_N,f_M,tmp_NxM)
+multiply_dimensionwise!(g_N,project_M_to_N,g_M,tmp_NxM)
+#@assert nnodes_projection == nnodes(dg) 
+#for j in 1:nnodes_projection, i in 1:nnodes_projection
+#    u_cons = get_node_vars(u_N, eq_relax, dg, i, j)
+#    f_cons = flux(u_cons,1,eq_relax)
+#    set_node_vars!(f_N,f_cons,eq_relax,dg,i,j)
+#    g_cons = flux(u_cons,2,eq_relax)
+#    set_node_vars!(g_N,g_cons,eq_relax,dg,i,j)
+#end
+
+    for j in eachnode(dg), i in eachnode(dg)
+        u_node = get_node_vars(u, equations, dg, i, j, element)
+        # compute compressible Euler fluxes
+        vu = get_node_vars(f_N,eq_relax,dg,i,j)
+        wu = get_node_vars(g_N,eq_relax,dg,i,j)
+        # compute relaxation terms
+        du1 = 0.0
+        du2 = 0.0
+        du3 = 0.0
+        du4 = 0.0
+        du5 = vu[1]
+        du6 = vu[2]
+        du7 = vu[3]
+        du8 = vu[4]
+        du9 = wu[1]
+        du10= wu[2]
+        du11= wu[3]
+        du12= wu[4]
+        new_u = SVector(du1, du2, du3, du4, du5, du6, du7, du8, du9, du10, du11, du12)
+        set_node_vars!(u, new_u, equations, dg, i, j, element)
+    end
+end
+return nothing
+end
+
+# get a cache where the RHS can be stored
+get_du(integrator::SimpleIntegratorIMEX) = integrator.du
+get_tmp_cache(integrator::SimpleIntegratorIMEX) = (integrator.r0,)
+get_tmp_cache(integrator::SimpleIntegratorIMEX) = (integrator.fu1,)
+get_tmp_cache(integrator::SimpleIntegratorIMEX) = (integrator.fu2,)
+get_tmp_cache(integrator::SimpleIntegratorIMEX) = (integrator.fu3,)
+get_tmp_cache(integrator::SimpleIntegratorIMEX) = (integrator.du1,)
+get_tmp_cache(integrator::SimpleIntegratorIMEX) = (integrator.du2,)
+get_tmp_cache(integrator::SimpleIntegratorIMEX) = (integrator.du3,)
+get_tmp_cache(integrator::SimpleIntegratorIMEX) = (integrator.u1,)
+get_tmp_cache(integrator::SimpleIntegratorIMEX) = (integrator.u2,)
+get_tmp_cache(integrator::SimpleIntegratorIMEX) = (integrator.u3,)
+
+# some algorithms from DiffEq like FSAL-ones need to be informed when a callback has modified u
+u_modified!(integrator::SimpleIntegratorIMEX, ::Bool) = false
+
+# used by adaptive timestepping algorithms in DiffEq
+function set_proposed_dt!(integrator::SimpleIntegratorIMEX, dt)
+    (integrator.dt = dt; integrator.dtcache = dt)
+end
+
+# used by adaptive timestepping algorithms in DiffEq
+function get_proposed_dt(integrator::SimpleIntegratorIMEX)
+    return ifelse(integrator.opts.adaptive, integrator.dt, integrator.dtcache)
+end
+
+# stop the time integration
+function terminate!(integrator::SimpleIntegratorIMEX)
+    integrator.finalstep = true
+end
+
+"""
+    modify_dt_for_tstops!(integrator::SimpleIntegratorSSP)
+Modify the time-step size to match the time stops specified in integrator.opts.tstops.
+To avoid adding OrdinaryDiffEq to Trixi's dependencies, this routine is a copy of
+https://github.com/SciML/OrdinaryDiffEq.jl/blob/d76335281c540ee5a6d1bd8bb634713e004f62ee/src/integrators/integrator_utils.jl#L38-L54
+"""
+function modify_dt_for_tstops!(integrator::SimpleIntegratorIMEX)
+    if has_tstop(integrator)
+        tdir_t = integrator.tdir * integrator.t
+        tdir_tstop = first_tstop(integrator)
+        if integrator.opts.adaptive
+            integrator.dt = integrator.tdir *
+                            min(abs(integrator.dt), abs(tdir_tstop - tdir_t)) # step! to the end
+        elseif iszero(integrator.dtcache) && integrator.dtchangeable
+            integrator.dt = integrator.tdir * abs(tdir_tstop - tdir_t)
+        elseif integrator.dtchangeable && !integrator.force_stepfail
+            # always try to step! with dtcache, but lower if a tstop
+            # however, if force_stepfail then don't set to dtcache, and no tstop worry
+            integrator.dt = integrator.tdir *
+                            min(abs(integrator.dtcache), abs(tdir_tstop - tdir_t)) # step! to the end
+        end
+    end
+end
+
+# used for AMR
+function Base.resize!(integrator::SimpleIntegratorIMEX, new_size)
+    resize!(integrator.u, new_size)
+    resize!(integrator.du, new_size)
+    resize!(integrator.r0, new_size)
+
+    # Resize container
+    # new_size = n_variables * n_nodes^n_dims * n_elements
+    n_elements = nelements(integrator.p.solver, integrator.p.cache)
+    resize!(integrator.p, n_elements)
+end
+
+function Base.resize!(semi::AbstractSemidiscretization, new_size)
+    resize!(semi, semi.solver.volume_integral, new_size)
+end
+
+Base.resize!(semi, volume_integral::AbstractVolumeIntegral, new_size) = nothing
+
+function Base.resize!(semi, volume_integral::VolumeIntegralSubcellLimiting, new_size)
+    # Resize container antidiffusive_fluxes
+    resize!(semi.cache.antidiffusive_fluxes, new_size)
+
+    # Resize container subcell_limiter_coefficients
+    @unpack limiter = volume_integral
+    resize!(limiter.cache.subcell_limiter_coefficients, new_size)
+end
+end # @muladd
diff --git a/src/time_integration/time_integration.jl b/src/time_integration/time_integration.jl
index d19a1fcc37c..e8ecb7b5cee 100644
--- a/src/time_integration/time_integration.jl
+++ b/src/time_integration/time_integration.jl
@@ -17,4 +17,5 @@ include("methods_2N.jl")
 include("methods_3Sstar.jl")
 include("methods_SSP.jl")
 include("paired_explicit_runge_kutta/paired_explicit_runge_kutta.jl")
+include("methods_IMEXJinXin")
 end # @muladd

From c53d286e358eac8fb3f0ec6a2f705a1250777d90 Mon Sep 17 00:00:00 2001
From: Marco <artianomarco97@gmail.com>
Date: Fri, 31 May 2024 12:36:07 +0200
Subject: [PATCH 02/13] Jacobian added

---
 .../tree_2d_dgsem/elixir_jin_xin_euler.jl     |  9 +++++----
 src/time_integration/methods_IMEXJinXin.jl    | 19 +++++++++++++------
 src/time_integration/time_integration.jl      |  2 +-
 3 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl b/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
index 37922319149..fb0f9c508b5 100644
--- a/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
+++ b/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
@@ -5,7 +5,7 @@ using Trixi
 ###############################################################################
 # semidiscretization of the compressible Euler equations
 
-epsilon_relaxation = 1.0e-6
+epsilon_relaxation = 1.0e-8
 a1 = a2 = a3 = a4 = 30.0
 b1 = b2 = b3 = b4 = 30.0
 
@@ -61,7 +61,7 @@ semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver)#
 ###############################################################################
 # ODE solvers, callbacks etc.
 
-tspan = (0.0, 3.7)
+tspan = (0.0, 0.0)
 #tspan = (0.0, 1.0)
 ode = semidiscretize(semi, tspan)
 
@@ -77,7 +77,7 @@ save_solution = SaveSolutionCallback(interval=1000,
                                      save_final_solution=true,
                                      solution_variables=cons2prim)
 
-stepsize_callback = StepsizeCallback(cfl=0.5)
+stepsize_callback = StepsizeCallback(cfl=0.01)
 
 callbacks = CallbackSet(summary_callback,
                         analysis_callback, alive_callback,
@@ -89,7 +89,8 @@ stage_limiter! = PositivityPreservingLimiterZhangShu(thresholds=(5.0e-6, 5.0e-6)
                                                      variables=(Trixi.density, pressure))
 
 #sol = solve(ode, CarpenterKennedy2N54(stage_limiter!,williamson_condition=false),
-sol = solve(ode, SSPRK43(stage_limiter!),
+#sol = solve(ode, SSPRK43(stage_limiter!),
+sol = Trixi.solve(ode, Trixi.SimpleIMEX(),
 #sol = solve(ode, SSPRK33(stage_limiter!),
 #sol = solve(ode, RDPK3SpFSAL49(),
 #sol = solve(ode, AutoTsit5(Rosenbrock23()),
diff --git a/src/time_integration/methods_IMEXJinXin.jl b/src/time_integration/methods_IMEXJinXin.jl
index 30c1b8252ef..71dc557626d 100644
--- a/src/time_integration/methods_IMEXJinXin.jl
+++ b/src/time_integration/methods_IMEXJinXin.jl
@@ -358,12 +358,13 @@ function divide_relaxed_var!(u,dt,semi,solver,cache,aii,equations)
 end
 
 function cycle_divide!(u,dt,semi,solver,cache,aii,equations)
-
+    @unpack inverse_jacobian = cache.elements
          relaxation_rate = equations.eps_relaxation
                 for element in eachelement(solver,cache)
+                    factor = inverse_jacobian[element]
                     for j in eachnode(solver),i in eachnode(solver)
                         for var in 5:12
-                        u[var,i,j,element] = u[var,i,j,element]/(1.0+dt/relaxation_rate*aii)    
+                        u[var,i,j,element] = u[var,i,j,element]/(1.0+factor*dt/relaxation_rate*aii)    
                         end
                     end
                 end
@@ -382,11 +383,16 @@ end
 
 function set_cons_var_to_zero!(u,semi,solver,cache)
                 u_wrap = Trixi.wrap_array(u,semi)
+    @unpack inverse_jacobian = cache.elements
                 for element in eachelement(solver, cache)    
+                    factor = inverse_jacobian[element]
                     for j in eachnode(solver), i in eachnode(solver)
                         for var in 1:4
-                u_wrap[var,i,j,element] = 0.0
-                        end        
+                           u_wrap[var,i,j,element] = 0.0
+                        end
+                        for var in 5:12
+                           u_wrap[var,i,j,element] *= factor 
+                        end
                     end
                 end
     return nothing
@@ -397,9 +403,9 @@ function perform_projection_sourceterm!(u, dt, mesh::TreeMesh2D, equations::JinX
     # relaxation parameter
     eps = equations.eps_relaxation
     dt_ = dt
-    factor =1.0/ (eps + dt_)
     eq_relax = equations.equations_base
 
+    @unpack inverse_jacobian = cache.elements
     # prepare local storage for projection
     @unpack interpolate_N_to_M, project_M_to_N, filter_modal_to_N = dg.basis
     nnodes_,nnodes_projection = size(project_M_to_N)
@@ -422,6 +428,7 @@ function perform_projection_sourceterm!(u, dt, mesh::TreeMesh2D, equations::JinX
 #@threaded for element in eachelement(dg, cache)
 for element in eachelement(dg, cache)
 
+                    factor = inverse_jacobian[element]
 # get element u_N
 for j in eachnode(dg), i in eachnode(dg)
     u_node = get_node_vars(u, equations, dg, i, j, element)
@@ -484,7 +491,7 @@ multiply_dimensionwise!(g_N,project_M_to_N,g_M,tmp_NxM)
         du10= wu[2]
         du11= wu[3]
         du12= wu[4]
-        new_u = SVector(du1, du2, du3, du4, du5, du6, du7, du8, du9, du10, du11, du12)
+        new_u = factor*SVector(du1, du2, du3, du4, du5, du6, du7, du8, du9, du10, du11, du12)
         set_node_vars!(u, new_u, equations, dg, i, j, element)
     end
 end
diff --git a/src/time_integration/time_integration.jl b/src/time_integration/time_integration.jl
index e8ecb7b5cee..a47f1f89a74 100644
--- a/src/time_integration/time_integration.jl
+++ b/src/time_integration/time_integration.jl
@@ -17,5 +17,5 @@ include("methods_2N.jl")
 include("methods_3Sstar.jl")
 include("methods_SSP.jl")
 include("paired_explicit_runge_kutta/paired_explicit_runge_kutta.jl")
-include("methods_IMEXJinXin")
+include("methods_IMEXJinXin.jl")
 end # @muladd

From ec7688ce5ca7266a316354978b572a8ee0372020 Mon Sep 17 00:00:00 2001
From: Marco <artianomarco97@gmail.com>
Date: Fri, 31 May 2024 13:33:04 +0200
Subject: [PATCH 03/13] Generalized IMEX Tree Mesh 2D

---
 .../tree_2d_dgsem/elixir_jin_xin_euler.jl     |  7 ++-
 src/time_integration/methods_IMEXJinXin.jl    | 43 ++++++++-----------
 2 files changed, 22 insertions(+), 28 deletions(-)

diff --git a/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl b/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
index fb0f9c508b5..f3d994ecea5 100644
--- a/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
+++ b/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
@@ -1,11 +1,10 @@
-
 using OrdinaryDiffEq
 using Trixi
 
 ###############################################################################
 # semidiscretization of the compressible Euler equations
 
-epsilon_relaxation = 1.0e-8
+epsilon_relaxation = 1.0e-6
 a1 = a2 = a3 = a4 = 30.0
 b1 = b2 = b3 = b4 = 30.0
 
@@ -61,7 +60,7 @@ semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver)#
 ###############################################################################
 # ODE solvers, callbacks etc.
 
-tspan = (0.0, 0.0)
+tspan = (0.0, 3.6)
 #tspan = (0.0, 1.0)
 ode = semidiscretize(semi, tspan)
 
@@ -77,7 +76,7 @@ save_solution = SaveSolutionCallback(interval=1000,
                                      save_final_solution=true,
                                      solution_variables=cons2prim)
 
-stepsize_callback = StepsizeCallback(cfl=0.01)
+stepsize_callback = StepsizeCallback(cfl=0.5)
 
 callbacks = CallbackSet(summary_callback,
                         analysis_callback, alive_callback,
diff --git a/src/time_integration/methods_IMEXJinXin.jl b/src/time_integration/methods_IMEXJinXin.jl
index 71dc557626d..b7448420ae5 100644
--- a/src/time_integration/methods_IMEXJinXin.jl
+++ b/src/time_integration/methods_IMEXJinXin.jl
@@ -250,8 +250,7 @@ function solve!(integrator::SimpleIntegratorIMEX)
                 #Ui = (ui;vi)
                 #u1 = un
                 #v1 = vn - -dt/epsilon A2_{11} (v1 - f(u1)) 
-                
-              @.  integrator.u1 .= integrator.u  #u1 = v1 = un
+              @. integrator.u1 .= integrator.u  #u1 = v1 = un
                 
               @. integrator.fu1 .= integrator.u1
                  wrap_and_perform_projection!(integrator.fu1,integrator.dt,mesh,equations,solver,cache)  # compute f(u1)
@@ -274,7 +273,7 @@ function solve!(integrator::SimpleIntegratorIMEX)
                 wrap_and_perform_projection!(integrator.fu2,integrator.dt,mesh,equations,solver,cache) # compute f(u2) and setting the source term values to 0 for the cons variables
                 
                 @. integrator.u_tmp1 = integrator.u1
-                set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache) # computing v1 by setting cons variables to 0
+                set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache,equations) # computing v1 by setting cons variables to 0
 
                 # v2 = vn - dt/eps*A2_21*(v1-f(u1)) + dt/eps*A2_22*f(u2)
                 @. integrator.u2 = integrator.u2 - integrator.dt/relaxation_rate*alg.A2[2,1]*(integrator.u_tmp1 - integrator.fu1) + integrator.dt*alg.A2[2,2]/relaxation_rate*integrator.fu2
@@ -295,7 +294,7 @@ function solve!(integrator::SimpleIntegratorIMEX)
                 #  set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache)
 
                 @. integrator.u_tmp2 = integrator.u2
-                set_cons_var_to_zero!(integrator.u_tmp2,semi,solver,cache)
+                set_cons_var_to_zero!(integrator.u_tmp2,semi,solver,cache,equations)
 
                 @. integrator.u3 = integrator.u3 - integrator.dt/relaxation_rate*alg.A2[3,1]*(integrator.u_tmp1 - integrator.fu1) - integrator.dt/relaxation_rate*alg.A2[3,2]*(integrator.u_tmp2 - integrator.fu2) + integrator.dt*alg.A2[3,3]/relaxation_rate*integrator.fu3
                 
@@ -312,10 +311,10 @@ function solve!(integrator::SimpleIntegratorIMEX)
                 @. integrator.u_tmp3 = integrator.u3
                 # set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache)
                 # set_cons_var_to_zero!(integrator.u_tmp2,semi,solver,cache)
-                set_cons_var_to_zero!(integrator.u_tmp3,semi,solver,cache)
+                set_cons_var_to_zero!(integrator.u_tmp3,semi,solver,cache,equations)
 
                 @. integrator.u = integrator.u - integrator.dt/relaxation_rate*alg.b[1]*(integrator.u_tmp1 - integrator.fu1) - integrator.dt/relaxation_rate*alg.b[2]*(integrator.u_tmp2 - integrator.fu2) - integrator.dt*alg.b[3]/relaxation_rate*(integrator.u_tmp3 - integrator.fu3)
-             # End Stages   
+                # End Stages   
           #  for stage_callback in alg.stage_callbacks
           #      stage_callback(integrator.u, integrator, 1)
           #  end
@@ -359,11 +358,12 @@ end
 
 function cycle_divide!(u,dt,semi,solver,cache,aii,equations)
     @unpack inverse_jacobian = cache.elements
+                nvars_base = nvariables(equations.equations_base)
          relaxation_rate = equations.eps_relaxation
                 for element in eachelement(solver,cache)
                     factor = inverse_jacobian[element]
                     for j in eachnode(solver),i in eachnode(solver)
-                        for var in 5:12
+                        for var in (nvars_base+1):(nvars_base*3)
                         u[var,i,j,element] = u[var,i,j,element]/(1.0+factor*dt/relaxation_rate*aii)    
                         end
                     end
@@ -381,16 +381,17 @@ function wrap_and_perform_projection!(u,dt,mesh,equations,solver,cache)
 end
 
 
-function set_cons_var_to_zero!(u,semi,solver,cache)
+function set_cons_var_to_zero!(u,semi,solver,cache,equations)
                 u_wrap = Trixi.wrap_array(u,semi)
+                nvars_base = nvariables(equations.equations_base)
     @unpack inverse_jacobian = cache.elements
                 for element in eachelement(solver, cache)    
                     factor = inverse_jacobian[element]
                     for j in eachnode(solver), i in eachnode(solver)
-                        for var in 1:4
+                        for var in 1:nvars_base
                            u_wrap[var,i,j,element] = 0.0
                         end
-                        for var in 5:12
+                        for var in (nvars_base+1):(nvars_base*3)
                            u_wrap[var,i,j,element] *= factor 
                         end
                     end
@@ -478,26 +479,20 @@ multiply_dimensionwise!(g_N,project_M_to_N,g_M,tmp_NxM)
         # compute compressible Euler fluxes
         vu = get_node_vars(f_N,eq_relax,dg,i,j)
         wu = get_node_vars(g_N,eq_relax,dg,i,j)
-        # compute relaxation terms
-        du1 = 0.0
-        du2 = 0.0
-        du3 = 0.0
-        du4 = 0.0
-        du5 = vu[1]
-        du6 = vu[2]
-        du7 = vu[3]
-        du8 = vu[4]
-        du9 = wu[1]
-        du10= wu[2]
-        du11= wu[3]
-        du12= wu[4]
-        new_u = factor*SVector(du1, du2, du3, du4, du5, du6, du7, du8, du9, du10, du11, du12)
+        u_base = get_block_components2(u_node, 1, equations)
+        new_u = factor*SVector(zero(u_node)..., vu..., wu...)
         set_node_vars!(u, new_u, equations, dg, i, j, element)
     end
 end
 return nothing
 end
 
+function get_block_components2(u, n, equations::JinXinEquations)
+    nvars_base = nvariables(equations.equations_base)
+    return SVector(ntuple(i -> u[i + (n - 1) * nvars_base], Val(nvars_base)))
+end
+
+
 # get a cache where the RHS can be stored
 get_du(integrator::SimpleIntegratorIMEX) = integrator.du
 get_tmp_cache(integrator::SimpleIntegratorIMEX) = (integrator.r0,)

From bbd994bc346e810826271b4e4b0a12d39237b31a Mon Sep 17 00:00:00 2001
From: Marco <artianomarco97@gmail.com>
Date: Fri, 31 May 2024 14:32:00 +0200
Subject: [PATCH 04/13] fixed sign in the time integrator; working on 1D
 implementation

---
 .../elixir_burgers_linear_stability.jl        |   3 +-
 .../tree_1d_dgsem/elixir_jin_xin_burgers.jl   |  57 +++++++
 .../tree_2d_dgsem/elixir_jin_xin_euler.jl     |   7 +-
 .../jin_xin_compressible_euler_2d.jl          |  36 ++++-
 src/time_integration/methods_IMEXJinXin.jl    | 147 ++++++++++++++++--
 5 files changed, 231 insertions(+), 19 deletions(-)
 create mode 100644 examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl

diff --git a/examples/tree_1d_dgsem/elixir_burgers_linear_stability.jl b/examples/tree_1d_dgsem/elixir_burgers_linear_stability.jl
index ae2039edde6..e8ee9311a29 100644
--- a/examples/tree_1d_dgsem/elixir_burgers_linear_stability.jl
+++ b/examples/tree_1d_dgsem/elixir_burgers_linear_stability.jl
@@ -1,4 +1,3 @@
-
 using OrdinaryDiffEq
 using Trixi
 
@@ -52,4 +51,4 @@ callbacks = CallbackSet(summary_callback,
 sol = solve(ode, CarpenterKennedy2N54(williamson_condition = false),
             dt = 1.0, # solve needs some value here but it will be overwritten by the stepsize_callback
             save_everystep = false, callback = callbacks);
-summary_callback() # print the timer summary
+summary_callback() # print the timer summary
\ No newline at end of file
diff --git a/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl b/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl
new file mode 100644
index 00000000000..134980a6331
--- /dev/null
+++ b/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl
@@ -0,0 +1,57 @@
+
+using OrdinaryDiffEq
+using Trixi
+
+###############################################################################
+# semidiscretization of the (inviscid) Burgers' equation
+epsilon_relaxation = 1.0e-6
+a1 = 10.0
+
+equations_base = InviscidBurgersEquation1D()
+velocities = (SVector(a1),)
+equations = JinXinEquations(equations_base,epsilon_relaxation, velocities)
+function initial_condition_linear_stability(x, t, equation::InviscidBurgersEquation1D)
+    k = 1
+    u = 2 + sinpi(k * (x[1] - 0.7))
+    return prim2cons(SVector(u),equations)
+end
+
+basis = LobattoLegendreBasis(3)
+solver = DGSEM(basis,Trixi.flux_upwind)
+
+
+coordinates_min = -1.0
+coordinates_max = 1.0
+mesh = TreeMesh(coordinates_min, coordinates_max,
+                initial_refinement_level = 4,
+                n_cells_max = 10_000)
+initial_condition = Trixi.InitialConditionJinXin(initial_condition_linear_stability)
+
+semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver)
+
+###############################################################################
+# ODE solvers, callbacks etc.
+
+tspan = (0.0, 2.0)
+ode = semidiscretize(semi, tspan)
+
+summary_callback = SummaryCallback()
+
+analysis_interval = 100
+analysis_callback = AnalysisCallback(semi, interval = analysis_interval)
+
+alive_callback = AliveCallback(analysis_interval = analysis_interval)
+
+stepsize_callback = StepsizeCallback(cfl = 0.5)
+
+callbacks = CallbackSet(summary_callback,
+                        analysis_callback, alive_callback,
+                        stepsize_callback)
+
+###############################################################################
+# run the simulation
+
+sol = Trixi.solve(ode, Trixi.SimpleIMEX(),
+            dt = 1.0e-3, # solve needs some value here but it will be overwritten by the stepsize_callback
+            save_everystep = false, callback = callbacks,maxiters=1e7);
+summary_callback() # print the timer summary
diff --git a/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl b/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
index f3d994ecea5..969e718d2d4 100644
--- a/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
+++ b/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
@@ -31,10 +31,11 @@ initial_condition = Trixi.InitialConditionJinXin(initial_condition_kelvin_helmho
 #initial_condition = Trixi.InitialConditionJinXin(initial_condition_density_wave)
 polydeg = 3
 polydeg_cutoff = 3
-basis = GaussLegendreBasis(polydeg; polydeg_projection = polydeg, polydeg_cutoff = polydeg_cutoff)
-# solver = DGSEM(basis, Trixi.flux_upwind)
+#basis = GaussLegendreBasis(polydeg; polydeg_projection = polydeg, polydeg_cutoff = polydeg_cutoff)
+basis = LobattoLegendreBasis(polydeg; polydeg_projection = 3)
+solver = DGSEM(basis, Trixi.flux_upwind)
 #solver = DGSEM(basis, Trixi.flux_upwind, VolumeIntegralWeakFormProjection())
-solver = DGSEM(basis, Trixi.flux_upwind, VolumeIntegralWeakForm())
+#solver = DGSEM(basis, Trixi.flux_upwind, VolumeIntegralWeakForm())
 #solver = DGSEM(polydeg = 3, surface_flux = Trixi.flux_upwind)
 
 #surface_flux = Trixi.flux_upwind
diff --git a/src/equations/jin_xin_compressible_euler_2d.jl b/src/equations/jin_xin_compressible_euler_2d.jl
index 7636ccc7314..7c1e8aaa791 100644
--- a/src/equations/jin_xin_compressible_euler_2d.jl
+++ b/src/equations/jin_xin_compressible_euler_2d.jl
@@ -13,7 +13,6 @@ TODO: Write a proper docstring
 struct JinXinEquations{NDIMS, NVARS, NVARS_BASE, EquationsBase <: AbstractEquations{NDIMS, NVARS_BASE}, RealT <: Real} <:
        AbstractJinXinEquations{NDIMS, NVARS}
     equations_base::EquationsBase
-
     # relaxation parameter of the Jin Xin relaxation model
     # The relaxed equations should converge to the original equations
     # as the relaxation parameter epsilon -> 0
@@ -155,6 +154,15 @@ end
     end
 end
 
+
+@inline function flux(u, orientation::Integer, equations::JinXinEquations{1})
+        u_base = get_block_components(u, 1, equations)
+        fluxes = get_block_components(u, 2, equations)
+        velocities = equations.velocities[1]
+        return SVector(fluxes..., (velocities .* u_base)...)
+end
+
+
 # TODO: Implement 1D and 3D
 @inline function flux_upwind(u_ll, u_rr, orientation::Integer,
                              equations::JinXinEquations{2})
@@ -184,6 +192,22 @@ end
 end
 
 
+@inline function flux_upwind(u_ll, u_rr, orientation::Integer,
+                             equations::JinXinEquations{1})
+    u_ll_base = get_block_components(u_ll, 1, equations)
+    u_rr_base = get_block_components(u_rr, 1, equations)
+
+        sqrt_velocities = equations.sqrt_velocities[1]
+        f_ll_base = get_block_components(u_ll, 2, equations)
+        f_rr_base = get_block_components(u_rr, 2, equations)
+        dissipation = SVector((sqrt_velocities .* (u_rr_base - u_ll_base))...,
+                              #   (sqrt_velocities .* (f_rr_base + f_ll_base))..., @ranocha: is this correct?
+                              (sqrt_velocities .* (f_rr_base - f_ll_base))...)
+    return 0.5f0 * (flux(u_ll, orientation, equations) +
+                    flux(u_rr, orientation, equations) - dissipation)
+end
+
+
 @inline function max_abs_speeds(u, equations::JinXinEquations{2})
     return ntuple(Val(ndims(equations))) do n
         # maximum(equations.sqrt_velocities_inv[n]) @ranocha: is this correct?
@@ -191,10 +215,20 @@ end
     end
 end
 
+
+@inline function max_abs_speeds(u, equations::JinXinEquations{1})
+    return ntuple(Val(ndims(equations))) do n
+        # maximum(equations.sqrt_velocities_inv[n]) @ranocha: is this correct?
+        maximum(equations.sqrt_velocities[n])
+    end
+end
+
 # TODO: not correct yet!!
 # Convert conservative variables to primitive
 @inline cons2prim(u, equations::JinXinEquations) = u
 
 # Convert conservative variables to entropy variables
 @inline cons2entropy(u, equations::JinXinEquations) = u
+
+@inline prim2cons(u, equations::JinXinEquations) = u
 end # @muladd
diff --git a/src/time_integration/methods_IMEXJinXin.jl b/src/time_integration/methods_IMEXJinXin.jl
index b7448420ae5..2e8942e1cb3 100644
--- a/src/time_integration/methods_IMEXJinXin.jl
+++ b/src/time_integration/methods_IMEXJinXin.jl
@@ -257,7 +257,7 @@ function solve!(integrator::SimpleIntegratorIMEX)
 
               @. integrator.u1 = integrator.u1 + integrator.dt/relaxation_rate*alg.A2[1,1]*integrator.fu1 # v1 = vn + dt/eps*A2_11 f(u1)
                 
-                divide_relaxed_var!(integrator.u1,integrator.dt,semi,solver,cache,alg.A2[1,1],equations)  # v1 = (vn + dt/eps*A2_11 f(u1))/(1 + dt/eps A2_11)
+                divide_relaxed_var!(integrator.u1,integrator.dt,semi,solver,cache,alg.A2[1,1],equations,mesh)  # v1 = (vn + dt/eps*A2_11 f(u1))/(1 + dt/eps A2_11)
                
                 integrator.f(integrator.du1, integrator.u1, integrator.p, t_stage) # compute RHS(u1,v1)
 
@@ -267,25 +267,25 @@ function solve!(integrator::SimpleIntegratorIMEX)
                 
                 t_stage = integrator.t + integrator.dt * alg.c1[2]
            
-                @. integrator.u2 = integrator.u - integrator.dt*alg.A1[2,1]*integrator.du1 # u2 = v2 = Un - dt*A1_22 RHS(U1)
+                @. integrator.u2 = integrator.u + integrator.dt*alg.A1[2,1]*integrator.du1 # u2 = v2 = Un - dt*A1_22 RHS(U1)
 
                 @. integrator.fu2 = integrator.u2
                 wrap_and_perform_projection!(integrator.fu2,integrator.dt,mesh,equations,solver,cache) # compute f(u2) and setting the source term values to 0 for the cons variables
                 
                 @. integrator.u_tmp1 = integrator.u1
-                set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache,equations) # computing v1 by setting cons variables to 0
+                set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache,equations,mesh) # computing v1 by setting cons variables to 0
 
                 # v2 = vn - dt/eps*A2_21*(v1-f(u1)) + dt/eps*A2_22*f(u2)
                 @. integrator.u2 = integrator.u2 - integrator.dt/relaxation_rate*alg.A2[2,1]*(integrator.u_tmp1 - integrator.fu1) + integrator.dt*alg.A2[2,2]/relaxation_rate*integrator.fu2
                
-                divide_relaxed_var!(integrator.u2,integrator.dt,semi,solver,cache,alg.A2[2,2],equations) # v2 = (vn - dt/eps*A2_21*(v1-f(u1)) + dt/eps*A2_22*f(u2) ) ( 1+dt/eps A2_22)
+                divide_relaxed_var!(integrator.u2,integrator.dt,semi,solver,cache,alg.A2[2,2],equations,mesh) # v2 = (vn - dt/eps*A2_21*(v1-f(u1)) + dt/eps*A2_22*f(u2) ) ( 1+dt/eps A2_22)
 
                 integrator.f(integrator.du2, integrator.u2, integrator.p, t_stage)
                
                 # Stage 3
                 #u3 = un - dt A1_{31} rhs(u1,v1) - dt A1_{32} rhs(u2,v2)
                 #v3 = vn - dt A1_{31} rhs(u1,v1) - dt A1_{32} rhs(u2,v2) - dt/epsilon A2_{31} (v1 - f(u1)) -dt/epsilon A2_{32} (v2 - f(u2)) -dt/epsilon A2_{33} (v3 - f(u3))
-                @. integrator.u3 = integrator.u - integrator.dt*alg.A1[3,1]*integrator.du1 - integrator.dt*alg.A1[3,2]*integrator.du2
+                @. integrator.u3 = integrator.u + integrator.dt*alg.A1[3,1]*integrator.du1 + integrator.dt*alg.A1[3,2]*integrator.du2
 
                 @. integrator.fu3 = integrator.u3
                 wrap_and_perform_projection!(integrator.fu3,integrator.dt,mesh,equations,solver,cache)
@@ -294,16 +294,16 @@ function solve!(integrator::SimpleIntegratorIMEX)
                 #  set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache)
 
                 @. integrator.u_tmp2 = integrator.u2
-                set_cons_var_to_zero!(integrator.u_tmp2,semi,solver,cache,equations)
+                set_cons_var_to_zero!(integrator.u_tmp2,semi,solver,cache,equations,mesh)
 
                 @. integrator.u3 = integrator.u3 - integrator.dt/relaxation_rate*alg.A2[3,1]*(integrator.u_tmp1 - integrator.fu1) - integrator.dt/relaxation_rate*alg.A2[3,2]*(integrator.u_tmp2 - integrator.fu2) + integrator.dt*alg.A2[3,3]/relaxation_rate*integrator.fu3
                 
-                divide_relaxed_var!(integrator.u3,integrator.dt,semi,solver,cache,alg.A2[3,3],equations) 
+                divide_relaxed_var!(integrator.u3,integrator.dt,semi,solver,cache,alg.A2[3,3],equations,mesh) 
                 
                 integrator.f(integrator.du3, integrator.u3, integrator.p, t_stage)
                 
                 # Final Stage
-                @. integrator.u = integrator.u - integrator.dt*alg.b[1]*integrator.du1 - integrator.dt*alg.b[2]*integrator.du2 - integrator.dt*alg.b[3]*integrator.du3
+                @. integrator.u = integrator.u + integrator.dt*alg.b[1]*integrator.du1 + integrator.dt*alg.b[2]*integrator.du2 + integrator.dt*alg.b[3]*integrator.du3
                 
                 # Already done that for u_tmp1 and u_tmp2, such that they are v1 = u_tmp1 and v2 = u_tmp2
                 # integrator.u_tmp1 .= integrator.u1              
@@ -311,7 +311,7 @@ function solve!(integrator::SimpleIntegratorIMEX)
                 @. integrator.u_tmp3 = integrator.u3
                 # set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache)
                 # set_cons_var_to_zero!(integrator.u_tmp2,semi,solver,cache)
-                set_cons_var_to_zero!(integrator.u_tmp3,semi,solver,cache,equations)
+                set_cons_var_to_zero!(integrator.u_tmp3,semi,solver,cache,equations,mesh)
 
                 @. integrator.u = integrator.u - integrator.dt/relaxation_rate*alg.b[1]*(integrator.u_tmp1 - integrator.fu1) - integrator.dt/relaxation_rate*alg.b[2]*(integrator.u_tmp2 - integrator.fu2) - integrator.dt*alg.b[3]/relaxation_rate*(integrator.u_tmp3 - integrator.fu3)
                 # End Stages   
@@ -350,13 +350,13 @@ function solve!(integrator::SimpleIntegratorIMEX)
                                   (prob.u0, integrator.u), prob)
 end
 
-function divide_relaxed_var!(u,dt,semi,solver,cache,aii,equations)
+function divide_relaxed_var!(u,dt,semi,solver,cache,aii,equations,mesh)
     u_wrap = Trixi.wrap_array(u,semi)
-    cycle_divide!(u_wrap,dt,semi,solver,cache,aii,equations)
+    cycle_divide!(u_wrap,dt,semi,solver,cache,aii,equations,mesh)
     return nothing
 end
 
-function cycle_divide!(u,dt,semi,solver,cache,aii,equations)
+function cycle_divide!(u,dt,semi,solver,cache,aii,equations,mesh::TreeMesh2D)
     @unpack inverse_jacobian = cache.elements
                 nvars_base = nvariables(equations.equations_base)
          relaxation_rate = equations.eps_relaxation
@@ -372,6 +372,23 @@ function cycle_divide!(u,dt,semi,solver,cache,aii,equations)
     return nothing
 end
 
+
+function cycle_divide!(u,dt,semi,solver,cache,aii,equations,mesh::TreeMesh1D)
+    @unpack inverse_jacobian = cache.elements
+                nvars_base = nvariables(equations.equations_base)
+         relaxation_rate = equations.eps_relaxation
+                for element in eachelement(solver,cache)
+                    factor = inverse_jacobian[element]
+                    for i in eachnode(solver)
+                        for var in (nvars_base+1):(nvars_base*2)
+                        u[var,i,element] = u[var,i,element]/(1.0+factor*dt/relaxation_rate*aii)    
+                        end
+                    end
+                end
+
+    return nothing
+end
+
 function wrap_and_perform_projection!(u,dt,mesh,equations,solver,cache)
 
                 u_wrap = wrap_array(u, mesh, equations, solver, cache)
@@ -381,7 +398,7 @@ function wrap_and_perform_projection!(u,dt,mesh,equations,solver,cache)
 end
 
 
-function set_cons_var_to_zero!(u,semi,solver,cache,equations)
+function set_cons_var_to_zero!(u,semi,solver,cache,equations, mesh::TreeMesh2D)
                 u_wrap = Trixi.wrap_array(u,semi)
                 nvars_base = nvariables(equations.equations_base)
     @unpack inverse_jacobian = cache.elements
@@ -399,6 +416,110 @@ function set_cons_var_to_zero!(u,semi,solver,cache,equations)
     return nothing
 end
 
+
+function set_cons_var_to_zero!(u,semi,solver,cache,equations, mesh::TreeMesh1D)
+                u_wrap = Trixi.wrap_array(u,semi)
+                nvars_base = nvariables(equations.equations_base)
+    @unpack inverse_jacobian = cache.elements
+                for element in eachelement(solver, cache)    
+                    factor = inverse_jacobian[element]
+                    for i in eachnode(solver)
+                        for var in 1:nvars_base
+                           u_wrap[var,i,element] = 0.0
+                        end
+                        for var in (nvars_base+1):(nvars_base*2)
+                           u_wrap[var,i,element] *= factor 
+                        end
+                    end
+                end
+    return nothing
+end
+
+function perform_projection_sourceterm!(u, dt, mesh::TreeMesh1D, equations::JinXinEquations, dg, cache)
+
+    # relaxation parameter
+    eps = equations.eps_relaxation
+    dt_ = dt
+    eq_relax = equations.equations_base
+
+    @unpack inverse_jacobian = cache.elements
+    # prepare local storage for projection
+    @unpack interpolate_N_to_M, project_M_to_N, filter_modal_to_N = dg.basis
+    nnodes_,nnodes_projection = size(project_M_to_N)
+    nVars = nvariables(eq_relax)
+    RealT = real(dg)
+    u_N = zeros(RealT, nVars, nnodes_)
+    w_N = zeros(RealT, nVars, nnodes_)
+    f_N = zeros(RealT, nVars, nnodes_)
+    g_N = zeros(RealT, nVars, nnodes_)
+    u_M = zeros(RealT, nVars, nnodes_projection)
+    w_M_raw = zeros(RealT, nVars, nnodes_projection)
+    w_M = zeros(RealT, nVars, nnodes_projection)
+    f_M = zeros(RealT, nVars, nnodes_projection)
+    g_M = zeros(RealT, nVars, nnodes_projection)
+
+    tmp_MxM = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
+    tmp_MxN = zeros(RealT, nVars, nnodes_projection, nnodes_)
+    tmp_NxM = zeros(RealT, nVars, nnodes_, nnodes_projection)
+
+#@threaded for element in eachelement(dg, cache)
+for element in eachelement(dg, cache)
+
+                    factor = inverse_jacobian[element]
+# get element u_N
+for i in eachnode(dg)
+    u_node = get_node_vars(u, equations, dg, i, element)
+    for v in eachvariable(eq_relax)
+        u_N[v,i] = u_node[v]
+    end
+end
+# bring elemtn u_N to grid (M+1)x(M+1)
+
+multiply_dimensionwise!(u_M,interpolate_N_to_M,u_N)
+
+# compute nodal values of entropy variables w on the M grid
+for i in 1:nnodes_projection
+    u_cons = get_node_vars(u_M, eq_relax, dg, i)
+    w_ij   = cons2entropy(u_cons,eq_relax) 
+    set_node_vars!(w_M_raw,w_ij,eq_relax,dg,i)
+end
+# compute projection of w with M values down to N
+multiply_dimensionwise!(w_M,filter_modal_to_N,w_M_raw)
+
+#multiply_dimensionwise!(w_N,project_M_to_N,w_M)
+#multiply_dimensionwise!(w_M,interpolate_N_to_M,w_N)
+
+
+# compute nodal values of conservative f,g on the M grid
+for i in 1:nnodes_projection
+    w_i = get_node_vars(w_M, eq_relax, dg, i)
+    u_cons = entropy2cons(w_i, eq_relax)
+    f_cons = flux(u_cons,1,eq_relax)
+    set_node_vars!(f_M,f_cons,eq_relax,dg,i)
+end
+# compute projection of f with M values down to N, same for g
+multiply_dimensionwise!(f_N,project_M_to_N,f_M)
+#@assert nnodes_projection == nnodes(dg) 
+#for j in 1:nnodes_projection, i in 1:nnodes_projection
+#    u_cons = get_node_vars(u_N, eq_relax, dg, i, j)
+#    f_cons = flux(u_cons,1,eq_relax)
+#    set_node_vars!(f_N,f_cons,eq_relax,dg,i,j)
+#    g_cons = flux(u_cons,2,eq_relax)
+#    set_node_vars!(g_N,g_cons,eq_relax,dg,i,j)
+#end
+
+    for i in eachnode(dg)
+        u_node = get_node_vars(u, equations, dg, i, element)
+        # compute compressible Euler fluxes
+        vu = get_node_vars(f_N,eq_relax,dg,i)
+        u_base = get_block_components2(u_node, 1, equations)
+        new_u = factor*SVector(zero(u_node)..., vu...)
+        set_node_vars!(u, new_u, equations, dg, i, element)
+    end
+end
+return nothing
+end
+
 function perform_projection_sourceterm!(u, dt, mesh::TreeMesh2D, equations::JinXinEquations, dg, cache)
 
     # relaxation parameter

From 2f402d72e57d2b5cda13ad2aa5de98fe4e602f05 Mon Sep 17 00:00:00 2001
From: Marco <artianomarco97@gmail.com>
Date: Fri, 31 May 2024 14:52:28 +0200
Subject: [PATCH 05/13] minor changes, debugging

---
 examples/tree_2d_dgsem/elixir_jin_xin_euler.jl | 2 +-
 src/time_integration/methods_IMEXJinXin.jl     | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl b/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
index 969e718d2d4..6d4894d81ec 100644
--- a/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
+++ b/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
@@ -61,7 +61,7 @@ semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver)#
 ###############################################################################
 # ODE solvers, callbacks etc.
 
-tspan = (0.0, 3.6)
+tspan = (0.0, 1.0)
 #tspan = (0.0, 1.0)
 ode = semidiscretize(semi, tspan)
 
diff --git a/src/time_integration/methods_IMEXJinXin.jl b/src/time_integration/methods_IMEXJinXin.jl
index 2e8942e1cb3..5ccb4286375 100644
--- a/src/time_integration/methods_IMEXJinXin.jl
+++ b/src/time_integration/methods_IMEXJinXin.jl
@@ -362,6 +362,7 @@ function cycle_divide!(u,dt,semi,solver,cache,aii,equations,mesh::TreeMesh2D)
          relaxation_rate = equations.eps_relaxation
                 for element in eachelement(solver,cache)
                     factor = inverse_jacobian[element]
+                    factor = 1.0
                     for j in eachnode(solver),i in eachnode(solver)
                         for var in (nvars_base+1):(nvars_base*3)
                         u[var,i,j,element] = u[var,i,j,element]/(1.0+factor*dt/relaxation_rate*aii)    
@@ -379,6 +380,7 @@ function cycle_divide!(u,dt,semi,solver,cache,aii,equations,mesh::TreeMesh1D)
          relaxation_rate = equations.eps_relaxation
                 for element in eachelement(solver,cache)
                     factor = inverse_jacobian[element]
+                    factor = 1.0
                     for i in eachnode(solver)
                         for var in (nvars_base+1):(nvars_base*2)
                         u[var,i,element] = u[var,i,element]/(1.0+factor*dt/relaxation_rate*aii)    
@@ -404,6 +406,7 @@ function set_cons_var_to_zero!(u,semi,solver,cache,equations, mesh::TreeMesh2D)
     @unpack inverse_jacobian = cache.elements
                 for element in eachelement(solver, cache)    
                     factor = inverse_jacobian[element]
+                    factor = 1.0
                     for j in eachnode(solver), i in eachnode(solver)
                         for var in 1:nvars_base
                            u_wrap[var,i,j,element] = 0.0
@@ -423,6 +426,7 @@ function set_cons_var_to_zero!(u,semi,solver,cache,equations, mesh::TreeMesh1D)
     @unpack inverse_jacobian = cache.elements
                 for element in eachelement(solver, cache)    
                     factor = inverse_jacobian[element]
+                    factor = 1.0
                     for i in eachnode(solver)
                         for var in 1:nvars_base
                            u_wrap[var,i,element] = 0.0
@@ -466,6 +470,7 @@ function perform_projection_sourceterm!(u, dt, mesh::TreeMesh1D, equations::JinX
 for element in eachelement(dg, cache)
 
                     factor = inverse_jacobian[element]
+                    factor = 1.0
 # get element u_N
 for i in eachnode(dg)
     u_node = get_node_vars(u, equations, dg, i, element)
@@ -551,6 +556,7 @@ function perform_projection_sourceterm!(u, dt, mesh::TreeMesh2D, equations::JinX
 for element in eachelement(dg, cache)
 
                     factor = inverse_jacobian[element]
+                    factor = 1.0
 # get element u_N
 for j in eachnode(dg), i in eachnode(dg)
     u_node = get_node_vars(u, equations, dg, i, j, element)

From fa7e44ba9f8bfc58ebcc8d406e393516d3c4579b Mon Sep 17 00:00:00 2001
From: Marco Artiano <artianomarco97@gmail.com>
Date: Sun, 2 Jun 2024 12:23:14 +0200
Subject: [PATCH 06/13] Time Integrator debugged

---
 examples/tree_2d_dgsem/elixir_jin_xin_euler.jl |  2 +-
 src/time_integration/methods_IMEXJinXin.jl     | 14 ++++++--------
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl b/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
index 6d4894d81ec..969e718d2d4 100644
--- a/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
+++ b/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
@@ -61,7 +61,7 @@ semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver)#
 ###############################################################################
 # ODE solvers, callbacks etc.
 
-tspan = (0.0, 1.0)
+tspan = (0.0, 3.6)
 #tspan = (0.0, 1.0)
 ode = semidiscretize(semi, tspan)
 
diff --git a/src/time_integration/methods_IMEXJinXin.jl b/src/time_integration/methods_IMEXJinXin.jl
index 5ccb4286375..c21a98fa588 100644
--- a/src/time_integration/methods_IMEXJinXin.jl
+++ b/src/time_integration/methods_IMEXJinXin.jl
@@ -250,11 +250,9 @@ function solve!(integrator::SimpleIntegratorIMEX)
                 #Ui = (ui;vi)
                 #u1 = un
                 #v1 = vn - -dt/epsilon A2_{11} (v1 - f(u1)) 
-              @. integrator.u1 .= integrator.u  #u1 = v1 = un
-                
-              @. integrator.fu1 .= integrator.u1
+              @. integrator.u1 = integrator.u  #u1 = v1 = un
+              @. integrator.fu1 = integrator.u1
                  wrap_and_perform_projection!(integrator.fu1,integrator.dt,mesh,equations,solver,cache)  # compute f(u1)
-
               @. integrator.u1 = integrator.u1 + integrator.dt/relaxation_rate*alg.A2[1,1]*integrator.fu1 # v1 = vn + dt/eps*A2_11 f(u1)
                 
                 divide_relaxed_var!(integrator.u1,integrator.dt,semi,solver,cache,alg.A2[1,1],equations,mesh)  # v1 = (vn + dt/eps*A2_11 f(u1))/(1 + dt/eps A2_11)
@@ -362,7 +360,7 @@ function cycle_divide!(u,dt,semi,solver,cache,aii,equations,mesh::TreeMesh2D)
          relaxation_rate = equations.eps_relaxation
                 for element in eachelement(solver,cache)
                     factor = inverse_jacobian[element]
-                    factor = 1.0
+                    #factor = 1.0
                     for j in eachnode(solver),i in eachnode(solver)
                         for var in (nvars_base+1):(nvars_base*3)
                         u[var,i,j,element] = u[var,i,j,element]/(1.0+factor*dt/relaxation_rate*aii)    
@@ -406,7 +404,7 @@ function set_cons_var_to_zero!(u,semi,solver,cache,equations, mesh::TreeMesh2D)
     @unpack inverse_jacobian = cache.elements
                 for element in eachelement(solver, cache)    
                     factor = inverse_jacobian[element]
-                    factor = 1.0
+                 #   factor = 1.0
                     for j in eachnode(solver), i in eachnode(solver)
                         for var in 1:nvars_base
                            u_wrap[var,i,j,element] = 0.0
@@ -556,7 +554,7 @@ function perform_projection_sourceterm!(u, dt, mesh::TreeMesh2D, equations::JinX
 for element in eachelement(dg, cache)
 
                     factor = inverse_jacobian[element]
-                    factor = 1.0
+                  #  factor = 1.0
 # get element u_N
 for j in eachnode(dg), i in eachnode(dg)
     u_node = get_node_vars(u, equations, dg, i, j, element)
@@ -607,7 +605,7 @@ multiply_dimensionwise!(g_N,project_M_to_N,g_M,tmp_NxM)
         vu = get_node_vars(f_N,eq_relax,dg,i,j)
         wu = get_node_vars(g_N,eq_relax,dg,i,j)
         u_base = get_block_components2(u_node, 1, equations)
-        new_u = factor*SVector(zero(u_node)..., vu..., wu...)
+        new_u = factor*SVector(zero(u_base)..., vu..., wu...)
         set_node_vars!(u, new_u, equations, dg, i, j, element)
     end
 end

From 39d7cce4e1e611108a79783f469ffc25aef5bb15 Mon Sep 17 00:00:00 2001
From: Marco Artiano <artianomarco97@gmail.com>
Date: Sun, 2 Jun 2024 13:01:39 +0200
Subject: [PATCH 07/13] experimenting aand 1D

---
 .../tree_1d_dgsem/elixir_jin_xin_burgers.jl   |  2 +-
 .../tree_2d_dgsem/elixir_jin_xin_euler.jl     |  2 +-
 .../elixir_jin_xin_euler_density_wave.jl      | 93 +++++++++++++++++++
 .../jin_xin_compressible_euler_2d.jl          |  1 +
 4 files changed, 96 insertions(+), 2 deletions(-)
 create mode 100644 examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl

diff --git a/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl b/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl
index 134980a6331..b2f9d7d5551 100644
--- a/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl
+++ b/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl
@@ -5,7 +5,7 @@ using Trixi
 ###############################################################################
 # semidiscretization of the (inviscid) Burgers' equation
 epsilon_relaxation = 1.0e-6
-a1 = 10.0
+a1 = 3.0
 
 equations_base = InviscidBurgersEquation1D()
 velocities = (SVector(a1),)
diff --git a/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl b/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
index 969e718d2d4..3b686d20d05 100644
--- a/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
+++ b/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
@@ -32,7 +32,7 @@ initial_condition = Trixi.InitialConditionJinXin(initial_condition_kelvin_helmho
 polydeg = 3
 polydeg_cutoff = 3
 #basis = GaussLegendreBasis(polydeg; polydeg_projection = polydeg, polydeg_cutoff = polydeg_cutoff)
-basis = LobattoLegendreBasis(polydeg; polydeg_projection = 3)
+basis = LobattoLegendreBasis(polydeg; polydeg_projection = 6)
 solver = DGSEM(basis, Trixi.flux_upwind)
 #solver = DGSEM(basis, Trixi.flux_upwind, VolumeIntegralWeakFormProjection())
 #solver = DGSEM(basis, Trixi.flux_upwind, VolumeIntegralWeakForm())
diff --git a/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl b/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl
new file mode 100644
index 00000000000..7dbc33a670f
--- /dev/null
+++ b/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl
@@ -0,0 +1,93 @@
+
+using OrdinaryDiffEq
+using Trixi
+using LinearAlgebra
+
+###############################################################################
+# semidiscretization of the compressible Euler equations
+
+epsilon_relaxation = 1.0e-6
+a1 = a2 = a3 = a4 = 30.0
+b1 = b2 = b3 = b4 = 30.0
+
+equations_base = CompressibleEulerEquations2D(1.4)
+velocities = (SVector(a1, a2, a3, a4), SVector(b1, b2, b3, b4))
+equations = JinXinEquations(equations_base, epsilon_relaxation, velocities)
+
+function initial_condition_density_wave(x, t, equations::CompressibleEulerEquations2D)
+    v1 = 0.1
+    v2 = 0.2
+    rho = 1 + 0.98 * sinpi(2 * (x[1] + x[2] - t * (v1 + v2)))
+    p = 20
+    return prim2cons(SVector(rho, v1, v2, p),equations)
+end
+
+initial_condition = Trixi.InitialConditionJinXin(initial_condition_density_wave)
+polydeg = 1
+#basis = LobattoLegendreBasis(polydeg; polydeg_projection = 0)
+basis = LobattoLegendreBasis(polydeg)
+
+volume_integral = VolumeIntegralWeakForm()
+solver = DGSEM(basis, Trixi.flux_upwind,VolumeIntegralWeakForm())
+#solver = DGSEM(basis, Trixi.flux_upwind)
+
+# solver = DGSEM(polydeg = 5, surface_flux = flux_central)
+
+coordinates_min = (-1.0, -1.0)
+coordinates_max = (1.0, 1.0)
+mesh = TreeMesh(coordinates_min, coordinates_max,
+                initial_refinement_level = 6,
+                n_cells_max = 30_000)
+
+                semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver)#,source_terms=source_terms_JinXin_Relaxation)
+
+
+# @info "Create semi..."
+# semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver)
+
+# @info "Compute Jacobian..."
+# J = jacobian_ad_forward(semi)
+
+# @info "Compute eigenvalues..."
+# λ = eigvals(J)
+
+# @info "max real part" maximum(real.(λ))
+# # @info "Plot spectrum..."
+# # scatter(real.(λ), imag.(λ), label="central flux")
+# wololo
+
+###############################################################################
+# ODE solvers, callbacks etc.
+
+tspan = (0.0, 2.0)
+ode = semidiscretize(semi, tspan)
+
+summary_callback = SummaryCallback()
+
+analysis_interval = 100 * 20
+analysis_callback = AnalysisCallback(semi, interval = analysis_interval)
+
+alive_callback = AliveCallback(analysis_interval = analysis_interval)
+
+save_solution = SaveSolutionCallback(interval = 100,
+                                     save_initial_solution = true,
+                                     save_final_solution = true,
+                                     solution_variables = cons2prim)
+
+stepsize_callback = StepsizeCallback(cfl = 0.25)
+
+callbacks = CallbackSet(summary_callback,
+                        analysis_callback, alive_callback,
+                        # save_solution,
+                        stepsize_callback)
+
+###############################################################################
+# run the simulation
+stage_limiter! = PositivityPreservingLimiterZhangShu(thresholds=(5.0e-6, 5.0e-6),
+                                                     variables=(Trixi.density, pressure))
+#sol = solve(ode, CarpenterKennedy2N54(williamson_condition = false),
+#sol = Trixi.solve(ode, Trixi.SimpleIMEX(), 
+sol = solve(ode, SSPRK33(stage_limiter!),
+dt = 1.0, # solve needs some value here but it will be overwritten by the stepsize_callback
+            save_everystep = false, callback = callbacks);
+summary_callback() # print the timer summary
diff --git a/src/equations/jin_xin_compressible_euler_2d.jl b/src/equations/jin_xin_compressible_euler_2d.jl
index 7c1e8aaa791..660c08d4ae3 100644
--- a/src/equations/jin_xin_compressible_euler_2d.jl
+++ b/src/equations/jin_xin_compressible_euler_2d.jl
@@ -229,6 +229,7 @@ end
 
 # Convert conservative variables to entropy variables
 @inline cons2entropy(u, equations::JinXinEquations) = u
+@inline entropy2cons(u, equations::JinXinEquations) = u
 
 @inline prim2cons(u, equations::JinXinEquations) = u
 end # @muladd

From 2a65d0ddb2dfae486552b794b423853eb19af58a Mon Sep 17 00:00:00 2001
From: Marco Artiano <artianomarco97@gmail.com>
Date: Sun, 2 Jun 2024 19:41:29 +0200
Subject: [PATCH 08/13] fixed 1D

---
 examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl       |  8 ++++----
 .../tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl | 10 +++++-----
 src/time_integration/methods_IMEXJinXin.jl             |  2 +-
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl b/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl
index b2f9d7d5551..769862314f2 100644
--- a/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl
+++ b/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl
@@ -4,8 +4,8 @@ using Trixi
 
 ###############################################################################
 # semidiscretization of the (inviscid) Burgers' equation
-epsilon_relaxation = 1.0e-6
-a1 = 3.0
+epsilon_relaxation = 1.0e-4
+a1 = 9.0
 
 equations_base = InviscidBurgersEquation1D()
 velocities = (SVector(a1),)
@@ -16,8 +16,8 @@ function initial_condition_linear_stability(x, t, equation::InviscidBurgersEquat
     return prim2cons(SVector(u),equations)
 end
 
-basis = LobattoLegendreBasis(3)
-solver = DGSEM(basis,Trixi.flux_upwind)
+basis = LobattoLegendreBasis(3; polydeg_projection = 12, polydeg_cutoff = 3)
+solver = DGSEM(basis,Trixi.flux_upwind,VolumeIntegralWeakForm())
 
 
 coordinates_min = -1.0
diff --git a/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl b/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl
index 7dbc33a670f..bfe67d864c3 100644
--- a/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl
+++ b/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl
@@ -18,14 +18,14 @@ function initial_condition_density_wave(x, t, equations::CompressibleEulerEquati
     v1 = 0.1
     v2 = 0.2
     rho = 1 + 0.98 * sinpi(2 * (x[1] + x[2] - t * (v1 + v2)))
-    p = 20
+    p = 1
     return prim2cons(SVector(rho, v1, v2, p),equations)
 end
 
 initial_condition = Trixi.InitialConditionJinXin(initial_condition_density_wave)
-polydeg = 1
+polydeg = 3
 #basis = LobattoLegendreBasis(polydeg; polydeg_projection = 0)
-basis = LobattoLegendreBasis(polydeg)
+basis = LobattoLegendreBasis(polydeg; polydeg_projection = 3)
 
 volume_integral = VolumeIntegralWeakForm()
 solver = DGSEM(basis, Trixi.flux_upwind,VolumeIntegralWeakForm())
@@ -86,8 +86,8 @@ callbacks = CallbackSet(summary_callback,
 stage_limiter! = PositivityPreservingLimiterZhangShu(thresholds=(5.0e-6, 5.0e-6),
                                                      variables=(Trixi.density, pressure))
 #sol = solve(ode, CarpenterKennedy2N54(williamson_condition = false),
-#sol = Trixi.solve(ode, Trixi.SimpleIMEX(), 
-sol = solve(ode, SSPRK33(stage_limiter!),
+sol = Trixi.solve(ode, Trixi.SimpleIMEX(), 
+#sol = solve(ode, SSPRK33(stage_limiter!),
 dt = 1.0, # solve needs some value here but it will be overwritten by the stepsize_callback
             save_everystep = false, callback = callbacks);
 summary_callback() # print the timer summary
diff --git a/src/time_integration/methods_IMEXJinXin.jl b/src/time_integration/methods_IMEXJinXin.jl
index c21a98fa588..fbba733c36d 100644
--- a/src/time_integration/methods_IMEXJinXin.jl
+++ b/src/time_integration/methods_IMEXJinXin.jl
@@ -516,7 +516,7 @@ multiply_dimensionwise!(f_N,project_M_to_N,f_M)
         # compute compressible Euler fluxes
         vu = get_node_vars(f_N,eq_relax,dg,i)
         u_base = get_block_components2(u_node, 1, equations)
-        new_u = factor*SVector(zero(u_node)..., vu...)
+        new_u = factor*SVector(zero(u_base)..., vu...)
         set_node_vars!(u, new_u, equations, dg, i, element)
     end
 end

From 821cf85448b808a81bbdb818332dbfe9e64baef0 Mon Sep 17 00:00:00 2001
From: Marco <artianomarco97@gmail.com>
Date: Mon, 3 Jun 2024 13:44:39 +0200
Subject: [PATCH 09/13] minor changes

---
 .../elixir_jin_xin_euler_density_wave.jl      | 71 +++++++++++++++++++
 .../elixir_jin_xin_euler_density_wave.jl      |  9 ++-
 src/time_integration/methods_IMEXJinXin.jl    |  2 +-
 3 files changed, 76 insertions(+), 6 deletions(-)
 create mode 100644 examples/tree_1d_dgsem/elixir_jin_xin_euler_density_wave.jl

diff --git a/examples/tree_1d_dgsem/elixir_jin_xin_euler_density_wave.jl b/examples/tree_1d_dgsem/elixir_jin_xin_euler_density_wave.jl
new file mode 100644
index 00000000000..b4366cbacc7
--- /dev/null
+++ b/examples/tree_1d_dgsem/elixir_jin_xin_euler_density_wave.jl
@@ -0,0 +1,71 @@
+
+using OrdinaryDiffEq
+using Trixi
+
+###############################################################################
+# semidiscretization of the compressible Euler equations
+
+
+epsilon_relaxation = 1.0e-6
+
+equations_base = CompressibleEulerEquations1D(1.4)
+velocities = (SVector(a1, a2, a3),)
+equations = JinXinEquations(equations_base, epsilon_relaxation, velocities)
+
+function initial_condition_density_wave(x, t, equations::CompressibleEulerEquations1D)
+    v1 = 0.1
+    rho = 1 + 0.98 * sinpi(2 * (x[1] - t * v1))
+    p = 20
+    return prim2cons(SVector(rho, v1, p),equations)
+end
+
+
+initial_condition = Trixi.InitialConditionJinXin(initial_condition_density_wave)
+polydeg = 3
+#basis = LobattoLegendreBasis(polydeg; polydeg_projection = 0)
+basis = LobattoLegendreBasis(polydeg; polydeg_projection = 6)
+
+volume_integral = VolumeIntegralWeakForm()
+#solver = DGSEM(basis, Trixi.flux_upwind,VolumeIntegralWeakForm())
+solver = DGSEM(basis, Trixi.flux_upwind)
+
+coordinates_min = -1.0
+coordinates_max = 1.0
+mesh = TreeMesh(coordinates_min, coordinates_max,
+                initial_refinement_level = 2,
+                n_cells_max = 30_000)
+
+semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver)
+
+###############################################################################
+# ODE solvers, callbacks etc.
+
+tspan = (0.0, 2.0)
+ode = semidiscretize(semi, tspan)
+
+summary_callback = SummaryCallback()
+
+analysis_interval = 2000
+analysis_callback = AnalysisCallback(semi, interval = analysis_interval)
+
+
+alive_callback = AliveCallback(analysis_interval = analysis_interval)
+save_solution = SaveSolutionCallback(interval = 100,
+                                     save_initial_solution = true,
+                                     save_final_solution = true,
+                                     solution_variables = cons2prim)
+
+stepsize_callback = StepsizeCallback(cfl = 0.8)
+
+callbacks = CallbackSet(summary_callback,
+                        analysis_callback, alive_callback,
+                        save_solution,
+                        stepsize_callback)
+
+###############################################################################
+# run the simulation
+
+sol = Trixi.solve(ode, Trixi.SimpleIMEX(),
+            dt = 1e-3, # solve needs some value here but it will be overwritten by the stepsize_callback
+            save_everystep = false, callback = callbacks);
+summary_callback() # print the timer summary
\ No newline at end of file
diff --git a/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl b/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl
index bfe67d864c3..4c2ea3800df 100644
--- a/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl
+++ b/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl
@@ -1,4 +1,3 @@
-
 using OrdinaryDiffEq
 using Trixi
 using LinearAlgebra
@@ -25,11 +24,11 @@ end
 initial_condition = Trixi.InitialConditionJinXin(initial_condition_density_wave)
 polydeg = 3
 #basis = LobattoLegendreBasis(polydeg; polydeg_projection = 0)
-basis = LobattoLegendreBasis(polydeg; polydeg_projection = 3)
+basis = LobattoLegendreBasis(polydeg; polydeg_projection = polydeg)
 
 volume_integral = VolumeIntegralWeakForm()
-solver = DGSEM(basis, Trixi.flux_upwind,VolumeIntegralWeakForm())
-#solver = DGSEM(basis, Trixi.flux_upwind)
+#solver = DGSEM(basis, Trixi.flux_upwind,VolumeIntegralWeakForm())
+solver = DGSEM(basis, Trixi.flux_upwind)
 
 # solver = DGSEM(polydeg = 5, surface_flux = flux_central)
 
@@ -74,7 +73,7 @@ save_solution = SaveSolutionCallback(interval = 100,
                                      save_final_solution = true,
                                      solution_variables = cons2prim)
 
-stepsize_callback = StepsizeCallback(cfl = 0.25)
+stepsize_callback = StepsizeCallback(cfl = 0.85)
 
 callbacks = CallbackSet(summary_callback,
                         analysis_callback, alive_callback,
diff --git a/src/time_integration/methods_IMEXJinXin.jl b/src/time_integration/methods_IMEXJinXin.jl
index fbba733c36d..82d54962b13 100644
--- a/src/time_integration/methods_IMEXJinXin.jl
+++ b/src/time_integration/methods_IMEXJinXin.jl
@@ -159,7 +159,7 @@ of type `SimpleAlgorithmSSP`.
 !!! warning "Experimental implementation"
     This is an experimental feature and may change in future releases.
 """
-function solve(ode::ODEProblem, alg = SimpleAlgorithmIMEX()::SimpleAlgorithmIMEX;
+function solve(ode::ODEProblem, alg::SimpleAlgorithmIMEX;
                dt, callback = nothing, kwargs...)
     u = copy(ode.u0)
     du1 = similar(u)

From 4faf1f3a2af02da9ca8fe74b40808dcfbd8d6e13 Mon Sep 17 00:00:00 2001
From: Marco <artianomarco97@gmail.com>
Date: Mon, 3 Jun 2024 14:32:24 +0200
Subject: [PATCH 10/13] Julia Formatting

---
 .../elixir_burgers_linear_stability.jl        |   2 +-
 .../tree_1d_dgsem/elixir_jin_xin_burgers.jl   |  11 +-
 .../elixir_jin_xin_euler_density_wave.jl      |  11 +-
 examples/tree_2d_dgsem/elixir_euler_ec.jl     |  18 +-
 ...ixir_euler_kelvin_helmholtz_instability.jl |   4 +-
 ...kelvin_helmholtz_instability_projection.jl |   2 +-
 .../tree_2d_dgsem/elixir_jin_xin_euler.jl     |  61 +-
 .../elixir_jin_xin_euler_density_wave.jl      |  17 +-
 src/auxiliary/precompile.jl                   |   8 +-
 src/callbacks_stage/modal_filter.jl           |  10 +-
 src/callbacks_stage/modal_filter_dg2d.jl      |   9 +-
 src/callbacks_stage/positivity_zhang_shu.jl   |   2 +-
 .../positivity_zhang_shu_dg2d.jl              |  97 +--
 src/callbacks_step/alive.jl                   |   2 +-
 src/callbacks_step/analysis_dg2d.jl           |   2 +-
 src/callbacks_step/averaging.jl               |   2 +-
 src/callbacks_step/glm_speed.jl               |   2 +-
 src/callbacks_step/save_restart.jl            |   2 +-
 src/callbacks_step/save_solution.jl           |   4 +-
 src/callbacks_step/steady_state.jl            |   2 +-
 src/callbacks_step/stepsize.jl                |   2 +-
 src/callbacks_step/time_series.jl             |   2 +-
 src/callbacks_step/visualization.jl           |   2 +-
 src/equations/equations.jl                    |   1 -
 .../jin_xin_compressible_euler_2d.jl          |  47 +-
 src/meshes/p4est_mesh.jl                      |   2 +-
 src/meshes/t8code_mesh.jl                     |  10 +-
 src/meshes/tree_mesh.jl                       |   2 +-
 .../semidiscretization_euler_gravity.jl       |   2 +-
 src/solvers/dg.jl                             |  12 +-
 src/solvers/dgsem/basis_gauss_legendre.jl     |  63 +-
 src/solvers/dgsem/basis_lobatto_legendre.jl   |  78 ++-
 src/solvers/dgsem_tree/dg_2d.jl               |  71 +-
 src/solvers/dgsem_tree/indicators.jl          |   6 +-
 src/solvers/dgsem_tree/subcell_limiters.jl    |   6 +-
 src/time_integration/methods_IMEXJinXin.jl    | 640 +++++++++---------
 test/test_dgmulti_1d.jl                       |  28 +-
 test/test_dgmulti_2d.jl                       | 122 ++--
 test/test_dgmulti_3d.jl                       |  52 +-
 test/test_mpi_p4est_2d.jl                     |   4 +-
 test/test_mpi_p4est_3d.jl                     |  16 +-
 test/test_mpi_t8code_2d.jl                    |   4 +-
 test/test_mpi_t8code_3d.jl                    |  12 +-
 test/test_mpi_tree.jl                         |  52 +-
 test/test_p4est_2d.jl                         |  70 +-
 test/test_p4est_3d.jl                         |  60 +-
 ...est_paper_self_gravitating_gas_dynamics.jl |  48 +-
 test/test_parabolic_1d.jl                     |  24 +-
 test/test_parabolic_2d.jl                     |  60 +-
 test/test_parabolic_3d.jl                     |  60 +-
 test/test_structured_1d.jl                    |  10 +-
 test/test_structured_2d.jl                    | 120 ++--
 test/test_structured_3d.jl                    |  24 +-
 test/test_t8code_2d.jl                        |  18 +-
 test/test_t8code_3d.jl                        |  24 +-
 test/test_threaded.jl                         |  44 +-
 test/test_tree_1d_euler.jl                    |  64 +-
 test/test_tree_1d_eulergravity.jl             |   4 +-
 test/test_tree_1d_eulermulti.jl               |   8 +-
 test/test_tree_1d_fdsbp.jl                    |  16 +-
 test/test_tree_1d_linearizedeuler.jl          |   6 +-
 test/test_tree_1d_mhd.jl                      |  44 +-
 test/test_tree_1d_shallowwater.jl             |  56 +-
 test/test_tree_2d_acoustics.jl                |  12 +-
 test/test_tree_2d_euler.jl                    | 148 ++--
 test/test_tree_2d_euleracoustics.jl           |   4 +-
 test/test_tree_2d_eulermulti.jl               |  32 +-
 test/test_tree_2d_eulerpolytropic.jl          |   4 +-
 test/test_tree_2d_fdsbp.jl                    |  20 +-
 test/test_tree_2d_hypdiff.jl                  |  16 +-
 test/test_tree_2d_linearizedeuler.jl          |   8 +-
 test/test_tree_2d_mhd.jl                      |  40 +-
 test/test_tree_2d_shallowwater.jl             |  44 +-
 test/test_tree_3d_euler.jl                    |  78 +--
 test/test_tree_3d_eulergravity.jl             |   4 +-
 test/test_tree_3d_fdsbp.jl                    |  12 +-
 test/test_tree_3d_hypdiff.jl                  |  12 +-
 test/test_tree_3d_linearizedeuler.jl          |   4 +-
 test/test_tree_3d_mhd.jl                      |  28 +-
 test/test_unit.jl                             |  10 +-
 test/test_unstructured_2d.jl                  |  76 +--
 81 files changed, 1429 insertions(+), 1387 deletions(-)

diff --git a/examples/tree_1d_dgsem/elixir_burgers_linear_stability.jl b/examples/tree_1d_dgsem/elixir_burgers_linear_stability.jl
index e8ee9311a29..5e547e3502a 100644
--- a/examples/tree_1d_dgsem/elixir_burgers_linear_stability.jl
+++ b/examples/tree_1d_dgsem/elixir_burgers_linear_stability.jl
@@ -51,4 +51,4 @@ callbacks = CallbackSet(summary_callback,
 sol = solve(ode, CarpenterKennedy2N54(williamson_condition = false),
             dt = 1.0, # solve needs some value here but it will be overwritten by the stepsize_callback
             save_everystep = false, callback = callbacks);
-summary_callback() # print the timer summary
\ No newline at end of file
+summary_callback() # print the timer summary
diff --git a/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl b/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl
index 769862314f2..b6875fd81b6 100644
--- a/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl
+++ b/examples/tree_1d_dgsem/elixir_jin_xin_burgers.jl
@@ -9,16 +9,15 @@ a1 = 9.0
 
 equations_base = InviscidBurgersEquation1D()
 velocities = (SVector(a1),)
-equations = JinXinEquations(equations_base,epsilon_relaxation, velocities)
+equations = JinXinEquations(equations_base, epsilon_relaxation, velocities)
 function initial_condition_linear_stability(x, t, equation::InviscidBurgersEquation1D)
     k = 1
     u = 2 + sinpi(k * (x[1] - 0.7))
-    return prim2cons(SVector(u),equations)
+    return prim2cons(SVector(u), equations)
 end
 
 basis = LobattoLegendreBasis(3; polydeg_projection = 12, polydeg_cutoff = 3)
-solver = DGSEM(basis,Trixi.flux_upwind,VolumeIntegralWeakForm())
-
+solver = DGSEM(basis, Trixi.flux_upwind, VolumeIntegralWeakForm())
 
 coordinates_min = -1.0
 coordinates_max = 1.0
@@ -52,6 +51,6 @@ callbacks = CallbackSet(summary_callback,
 # run the simulation
 
 sol = Trixi.solve(ode, Trixi.SimpleIMEX(),
-            dt = 1.0e-3, # solve needs some value here but it will be overwritten by the stepsize_callback
-            save_everystep = false, callback = callbacks,maxiters=1e7);
+                  dt = 1.0e-3, # solve needs some value here but it will be overwritten by the stepsize_callback
+                  save_everystep = false, callback = callbacks, maxiters = 1e7);
 summary_callback() # print the timer summary
diff --git a/examples/tree_1d_dgsem/elixir_jin_xin_euler_density_wave.jl b/examples/tree_1d_dgsem/elixir_jin_xin_euler_density_wave.jl
index b4366cbacc7..10ba2386c54 100644
--- a/examples/tree_1d_dgsem/elixir_jin_xin_euler_density_wave.jl
+++ b/examples/tree_1d_dgsem/elixir_jin_xin_euler_density_wave.jl
@@ -5,7 +5,6 @@ using Trixi
 ###############################################################################
 # semidiscretization of the compressible Euler equations
 
-
 epsilon_relaxation = 1.0e-6
 
 equations_base = CompressibleEulerEquations1D(1.4)
@@ -16,10 +15,9 @@ function initial_condition_density_wave(x, t, equations::CompressibleEulerEquati
     v1 = 0.1
     rho = 1 + 0.98 * sinpi(2 * (x[1] - t * v1))
     p = 20
-    return prim2cons(SVector(rho, v1, p),equations)
+    return prim2cons(SVector(rho, v1, p), equations)
 end
 
-
 initial_condition = Trixi.InitialConditionJinXin(initial_condition_density_wave)
 polydeg = 3
 #basis = LobattoLegendreBasis(polydeg; polydeg_projection = 0)
@@ -48,7 +46,6 @@ summary_callback = SummaryCallback()
 analysis_interval = 2000
 analysis_callback = AnalysisCallback(semi, interval = analysis_interval)
 
-
 alive_callback = AliveCallback(analysis_interval = analysis_interval)
 save_solution = SaveSolutionCallback(interval = 100,
                                      save_initial_solution = true,
@@ -66,6 +63,6 @@ callbacks = CallbackSet(summary_callback,
 # run the simulation
 
 sol = Trixi.solve(ode, Trixi.SimpleIMEX(),
-            dt = 1e-3, # solve needs some value here but it will be overwritten by the stepsize_callback
-            save_everystep = false, callback = callbacks);
-summary_callback() # print the timer summary
\ No newline at end of file
+                  dt = 1e-3, # solve needs some value here but it will be overwritten by the stepsize_callback
+                  save_everystep = false, callback = callbacks);
+summary_callback() # print the timer summary
diff --git a/examples/tree_2d_dgsem/elixir_euler_ec.jl b/examples/tree_2d_dgsem/elixir_euler_ec.jl
index 7a9c5269a9f..55e03a0bf49 100644
--- a/examples/tree_2d_dgsem/elixir_euler_ec.jl
+++ b/examples/tree_2d_dgsem/elixir_euler_ec.jl
@@ -8,12 +8,12 @@ equations = CompressibleEulerEquations2D(1.4)
 
 seed!(1)
 function initial_condition_random_field(x, t, equations::CompressibleEulerEquations2D)
-amplitude = 1.5
-rho = 2 + amplitude * rand() 
-v1 = -3.1 + amplitude * rand()
-v2 = 1.3 + amplitude * rand() 
-p = 7.54 + amplitude * rand()
-return prim2cons(SVector(rho, v1, v2, p), equations)
+    amplitude = 1.5
+    rho = 2 + amplitude * rand()
+    v1 = -3.1 + amplitude * rand()
+    v2 = 1.3 + amplitude * rand()
+    p = 7.54 + amplitude * rand()
+    return prim2cons(SVector(rho, v1, v2, p), equations)
 end
 # initial_condition = initial_condition_weak_blast_wave
 initial_condition = initial_condition_random_field
@@ -69,11 +69,13 @@ callbacks = CallbackSet(summary_callback,
 
 # Create modal filter and filter initial condition
 modal_filter = ModalFilter(solver; polydeg_cutoff = 3,
-                                   cons2filter = cons2prim, filter2cons = prim2cons)
+                           cons2filter = cons2prim, filter2cons = prim2cons)
 modal_filter(ode.u0, semi)
 
 # sol = solve(ode, CarpenterKennedy2N54(; williamson_condition = false),
-sol = solve(ode, CarpenterKennedy2N54(; stage_limiter! = modal_filter, williamson_condition = false),
+sol = solve(ode,
+            CarpenterKennedy2N54(; stage_limiter! = modal_filter,
+                                 williamson_condition = false),
             dt = 1.0, # solve needs some value here but it will be overwritten by the stepsize_callback
             save_everystep = false, callback = callbacks);
 summary_callback() # print the timer summary
diff --git a/examples/tree_2d_dgsem/elixir_euler_kelvin_helmholtz_instability.jl b/examples/tree_2d_dgsem/elixir_euler_kelvin_helmholtz_instability.jl
index 8835f5cccf3..39370e28eb4 100644
--- a/examples/tree_2d_dgsem/elixir_euler_kelvin_helmholtz_instability.jl
+++ b/examples/tree_2d_dgsem/elixir_euler_kelvin_helmholtz_instability.jl
@@ -33,7 +33,7 @@ end
 initial_condition = initial_condition_kelvin_helmholtz_instability
 
 surface_flux = flux_hllc
-volume_flux  = flux_ranocha
+volume_flux = flux_ranocha
 polydeg = 3
 basis = LobattoLegendreBasis(polydeg)
 indicator_sc = IndicatorHennemannGassner(equations, basis,
@@ -67,7 +67,7 @@ analysis_callback = AnalysisCallback(semi, interval = analysis_interval)
 
 alive_callback = AliveCallback(analysis_interval = analysis_interval)
 
-save_solution = SaveSolutionCallback(interval=1000,
+save_solution = SaveSolutionCallback(interval = 1000,
                                      save_initial_solution = true,
                                      save_final_solution = true,
                                      solution_variables = cons2prim)
diff --git a/examples/tree_2d_dgsem/elixir_euler_kelvin_helmholtz_instability_projection.jl b/examples/tree_2d_dgsem/elixir_euler_kelvin_helmholtz_instability_projection.jl
index 5906f094e9b..7bcd830d707 100644
--- a/examples/tree_2d_dgsem/elixir_euler_kelvin_helmholtz_instability_projection.jl
+++ b/examples/tree_2d_dgsem/elixir_euler_kelvin_helmholtz_instability_projection.jl
@@ -69,7 +69,7 @@ analysis_callback = AnalysisCallback(semi, interval = analysis_interval)
 
 alive_callback = AliveCallback(analysis_interval = analysis_interval)
 
-save_solution = SaveSolutionCallback(interval=1000,
+save_solution = SaveSolutionCallback(interval = 1000,
                                      save_initial_solution = true,
                                      save_final_solution = true,
                                      solution_variables = cons2prim)
diff --git a/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl b/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
index 3b686d20d05..b8dbeeb53e1 100644
--- a/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
+++ b/examples/tree_2d_dgsem/elixir_jin_xin_euler.jl
@@ -12,18 +12,19 @@ equations_base = CompressibleEulerEquations2D(1.4)
 velocities = (SVector(a1, a2, a3, a4), SVector(b1, b2, b3, b4))
 equations = JinXinEquations(equations_base, epsilon_relaxation, velocities)
 
-function initial_condition_kelvin_helmholtz_instability(x, t, equations::CompressibleEulerEquations2D)
-  # change discontinuity to tanh
-  # typical resolution 128^2, 256^2
-  # domain size is [-1,+1]^2
-  slope = 15
-  amplitude = 0.02
-  B = tanh(slope * x[2] + 7.5) - tanh(slope * x[2] - 7.5)
-  rho = 0.5 + 0.75 * B
-  v1 = 0.5 * (B - 1)
-  v2 = 0.1 * sin(2 * pi * x[1])
-  p = 1.0
-  return prim2cons(SVector(rho, v1, v2, p), equations)
+function initial_condition_kelvin_helmholtz_instability(x, t,
+                                                        equations::CompressibleEulerEquations2D)
+    # change discontinuity to tanh
+    # typical resolution 128^2, 256^2
+    # domain size is [-1,+1]^2
+    slope = 15
+    amplitude = 0.02
+    B = tanh(slope * x[2] + 7.5) - tanh(slope * x[2] - 7.5)
+    rho = 0.5 + 0.75 * B
+    v1 = 0.5 * (B - 1)
+    v2 = 0.1 * sin(2 * pi * x[1])
+    p = 1.0
+    return prim2cons(SVector(rho, v1, v2, p), equations)
 end
 
 #initial_condition = initial_condition_constant
@@ -50,11 +51,11 @@ solver = DGSEM(basis, Trixi.flux_upwind)
 #solver = DGSEM(basis, surface_flux, volume_integral)
 
 coordinates_min = (-1.0, -1.0)
-coordinates_max = ( 1.0,  1.0)
+coordinates_max = (1.0, 1.0)
 
 mesh = TreeMesh(coordinates_min, coordinates_max,
-                initial_refinement_level=6,
-                n_cells_max=1_000_000)
+                initial_refinement_level = 6,
+                n_cells_max = 1_000_000)
 
 semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver)#,source_terms=source_terms_JinXin_Relaxation)
 
@@ -68,32 +69,32 @@ ode = semidiscretize(semi, tspan)
 summary_callback = SummaryCallback()
 
 analysis_interval = 1000
-analysis_callback = AnalysisCallback(semi, interval=analysis_interval)
+analysis_callback = AnalysisCallback(semi, interval = analysis_interval)
 
-alive_callback = AliveCallback(analysis_interval=analysis_interval)
+alive_callback = AliveCallback(analysis_interval = analysis_interval)
 
-save_solution = SaveSolutionCallback(interval=1000,
-                                     save_initial_solution=true,
-                                     save_final_solution=true,
-                                     solution_variables=cons2prim)
+save_solution = SaveSolutionCallback(interval = 1000,
+                                     save_initial_solution = true,
+                                     save_final_solution = true,
+                                     solution_variables = cons2prim)
 
-stepsize_callback = StepsizeCallback(cfl=0.5)
+stepsize_callback = StepsizeCallback(cfl = 0.5)
 
 callbacks = CallbackSet(summary_callback,
                         analysis_callback, alive_callback,
-                        save_solution,stepsize_callback)
+                        save_solution, stepsize_callback)
 
 ###############################################################################
 # run the simulation
-stage_limiter! = PositivityPreservingLimiterZhangShu(thresholds=(5.0e-6, 5.0e-6),
-                                                     variables=(Trixi.density, pressure))
+stage_limiter! = PositivityPreservingLimiterZhangShu(thresholds = (5.0e-6, 5.0e-6),
+                                                     variables = (Trixi.density, pressure))
 
 #sol = solve(ode, CarpenterKennedy2N54(stage_limiter!,williamson_condition=false),
 #sol = solve(ode, SSPRK43(stage_limiter!),
 sol = Trixi.solve(ode, Trixi.SimpleIMEX(),
-#sol = solve(ode, SSPRK33(stage_limiter!),
-#sol = solve(ode, RDPK3SpFSAL49(),
-#sol = solve(ode, AutoTsit5(Rosenbrock23()),
-            dt=1.0e-3, # solve needs some value here but it will be overwritten by the stepsize_callback
-            save_everystep=false, callback=callbacks,maxiters=1e7);
+                  #sol = solve(ode, SSPRK33(stage_limiter!),
+                  #sol = solve(ode, RDPK3SpFSAL49(),
+                  #sol = solve(ode, AutoTsit5(Rosenbrock23()),
+                  dt = 1.0e-3, # solve needs some value here but it will be overwritten by the stepsize_callback
+                  save_everystep = false, callback = callbacks, maxiters = 1e7);
 summary_callback() # print the timer summary
diff --git a/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl b/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl
index 4c2ea3800df..cb73066bdc6 100644
--- a/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl
+++ b/examples/tree_2d_dgsem/elixir_jin_xin_euler_density_wave.jl
@@ -18,7 +18,7 @@ function initial_condition_density_wave(x, t, equations::CompressibleEulerEquati
     v2 = 0.2
     rho = 1 + 0.98 * sinpi(2 * (x[1] + x[2] - t * (v1 + v2)))
     p = 1
-    return prim2cons(SVector(rho, v1, v2, p),equations)
+    return prim2cons(SVector(rho, v1, v2, p), equations)
 end
 
 initial_condition = Trixi.InitialConditionJinXin(initial_condition_density_wave)
@@ -38,8 +38,7 @@ mesh = TreeMesh(coordinates_min, coordinates_max,
                 initial_refinement_level = 6,
                 n_cells_max = 30_000)
 
-                semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver)#,source_terms=source_terms_JinXin_Relaxation)
-
+semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver)#,source_terms=source_terms_JinXin_Relaxation)
 
 # @info "Create semi..."
 # semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver)
@@ -82,11 +81,11 @@ callbacks = CallbackSet(summary_callback,
 
 ###############################################################################
 # run the simulation
-stage_limiter! = PositivityPreservingLimiterZhangShu(thresholds=(5.0e-6, 5.0e-6),
-                                                     variables=(Trixi.density, pressure))
+stage_limiter! = PositivityPreservingLimiterZhangShu(thresholds = (5.0e-6, 5.0e-6),
+                                                     variables = (Trixi.density, pressure))
 #sol = solve(ode, CarpenterKennedy2N54(williamson_condition = false),
-sol = Trixi.solve(ode, Trixi.SimpleIMEX(), 
-#sol = solve(ode, SSPRK33(stage_limiter!),
-dt = 1.0, # solve needs some value here but it will be overwritten by the stepsize_callback
-            save_everystep = false, callback = callbacks);
+sol = Trixi.solve(ode, Trixi.SimpleIMEX(),
+                  #sol = solve(ode, SSPRK33(stage_limiter!),
+                  dt = 1.0, # solve needs some value here but it will be overwritten by the stepsize_callback
+                  save_everystep = false, callback = callbacks);
 summary_callback() # print the timer summary
diff --git a/src/auxiliary/precompile.jl b/src/auxiliary/precompile.jl
index 860dc95a9d9..cf006fcb9fa 100644
--- a/src/auxiliary/precompile.jl
+++ b/src/auxiliary/precompile.jl
@@ -306,7 +306,7 @@ function _precompile_manual_()
     # Nevertheless, we can still precompile methods used to construct the bases.
     #Base.precompile(Tuple{Type{LobattoLegendreBasis}, Int})
     for RealT in (Float64,)
-    #    Base.precompile(Tuple{Type{LobattoLegendreBasis}, RealT, Int})
+        #    Base.precompile(Tuple{Type{LobattoLegendreBasis}, RealT, Int})
         @assert Base.precompile(Tuple{typeof(Trixi.calc_dhat), Vector{RealT},
                                       Vector{RealT}})
         @assert Base.precompile(Tuple{typeof(Trixi.calc_dsplit), Vector{RealT},
@@ -340,9 +340,9 @@ function _precompile_manual_()
     for RealT in (Float64,), polydeg in 1:7
         nnodes_ = polydeg + 1
         basis_type = basis_type_dgsem(RealT, nnodes_)
-#        @assert Base.precompile(Tuple{typeof(Trixi.MortarL2), basis_type})
-#        @assert Base.precompile(Tuple{Type{Trixi.SolutionAnalyzer}, basis_type})
-#        @assert Base.precompile(Tuple{Type{Trixi.AdaptorL2}, basis_type})
+        #        @assert Base.precompile(Tuple{typeof(Trixi.MortarL2), basis_type})
+        #        @assert Base.precompile(Tuple{Type{Trixi.SolutionAnalyzer}, basis_type})
+        #        @assert Base.precompile(Tuple{Type{Trixi.AdaptorL2}, basis_type})
     end
 
     # Constructors: callbacks
diff --git a/src/callbacks_stage/modal_filter.jl b/src/callbacks_stage/modal_filter.jl
index 86094e8cdb2..13fb87e2e18 100644
--- a/src/callbacks_stage/modal_filter.jl
+++ b/src/callbacks_stage/modal_filter.jl
@@ -22,7 +22,7 @@ struct ModalFilter{RealT, Cons2Filter, Filter2Cons}
 end
 
 function ModalFilter(dg; polydeg_cutoff::Integer, cons2filter = cons2cons,
-                         filter2cons = cons2cons)
+                     filter2cons = cons2cons)
     RealT = real(dg)
     if dg.basis isa LobattoLegendreBasis
         nodes_cutoff, _ = gauss_lobatto_nodes_weights(polydeg_cutoff)
@@ -36,7 +36,8 @@ function ModalFilter(dg; polydeg_cutoff::Integer, cons2filter = cons2cons,
 
     modal_filter = ModalFilter{RealT,
                                typeof(cons2filter),
-                               typeof(filter2cons)}(cons2filter, filter2cons, filter_matrix)
+                               typeof(filter2cons)}(cons2filter, filter2cons,
+                                                    filter_matrix)
 end
 
 # Main function that applies the actual, mesh- and solver-specific filter
@@ -47,14 +48,15 @@ function (modal_filter::ModalFilter)(u_ode, semi::AbstractSemidiscretization)
     @trixi_timeit timer() "modal filter" begin
         # println("Applying modal filter")
         apply_modal_filter!(u, u, cons2filter, filter2cons, filter_matrix,
-                            mesh_equations_solver_cache(semi)...)  
+                            mesh_equations_solver_cache(semi)...)
     end
 
     return nothing
 end
 
 # This version is called as the stage limiter version of the filter
-function (modal_filter::ModalFilter)(u_ode, integrator, semi::AbstractSemidiscretization, t)
+function (modal_filter::ModalFilter)(u_ode, integrator,
+                                     semi::AbstractSemidiscretization, t)
     modal_filter(u_ode, semi)
 end
 
diff --git a/src/callbacks_stage/modal_filter_dg2d.jl b/src/callbacks_stage/modal_filter_dg2d.jl
index 1eb05bfec92..adc05d81588 100644
--- a/src/callbacks_stage/modal_filter_dg2d.jl
+++ b/src/callbacks_stage/modal_filter_dg2d.jl
@@ -19,15 +19,15 @@ function apply_modal_filter!(u_filtered, u, cons2filter, filter2cons, filter_mat
         # convert u to filter variables
         for j in eachnode(dg), i in eachnode(dg)
             u_node_cons = get_node_vars(u, equations, dg, i, j, element)
-            u_node_filter   = cons2filter(u_node_cons, equations)
+            u_node_filter = cons2filter(u_node_cons, equations)
             for v in eachvariable(equations)
-              u_element[v,i,j] = u_node_filter[v]
+                u_element[v, i, j] = u_node_filter[v]
             end
         end
 
         # Apply modal filter
         multiply_dimensionwise!(u_element_filtered, filter_matrix, u_element, tmp_NxN)
-    
+
         # compute nodal values of conservative variables from the projected entropy variables
         for j in eachnode(dg), i in eachnode(dg)
             u_node_filter = get_node_vars(u_element_filtered, equations, dg, i, j)
@@ -36,5 +36,4 @@ function apply_modal_filter!(u_filtered, u, cons2filter, filter2cons, filter_mat
         end
     end
 end
-
-end # @muladd
\ No newline at end of file
+end # @muladd
diff --git a/src/callbacks_stage/positivity_zhang_shu.jl b/src/callbacks_stage/positivity_zhang_shu.jl
index 5cd2bf4ea34..8ed3c3005e2 100644
--- a/src/callbacks_stage/positivity_zhang_shu.jl
+++ b/src/callbacks_stage/positivity_zhang_shu.jl
@@ -35,7 +35,7 @@ function (limiter!::PositivityPreservingLimiterZhangShu)(u_ode, integrator,
     @trixi_timeit timer() "positivity-preserving limiter" begin
         #limiter_zhang_shu!(u, limiter!.thresholds, limiter!.variables,
         #                   mesh_equations_solver_cache(semi)...)
-        perform_idp_correction!(u, integrator.dt, mesh_equations_solver_cache(semi)...)  
+        perform_idp_correction!(u, integrator.dt, mesh_equations_solver_cache(semi)...)
     end
 end
 
diff --git a/src/callbacks_stage/positivity_zhang_shu_dg2d.jl b/src/callbacks_stage/positivity_zhang_shu_dg2d.jl
index 567217292a3..ef924cc4042 100644
--- a/src/callbacks_stage/positivity_zhang_shu_dg2d.jl
+++ b/src/callbacks_stage/positivity_zhang_shu_dg2d.jl
@@ -47,71 +47,71 @@ function limiter_zhang_shu!(u, threshold::Real, variable,
 
     return nothing
 end
-function perform_idp_correction!(u, dt, mesh::TreeMesh2D, equations::JinXinEquations, dg, cache)
-
-            # relaxation parameter
-            eps = equations.eps_relaxation
-            dt_ = dt
-            factor =1.0/ (eps + dt_)
-            eq_relax = equations.equations_base
-
-            # prepare local storage for projection
-            @unpack interpolate_N_to_M, project_M_to_N, filter_modal_to_N = dg.basis
-            nnodes_,nnodes_projection = size(project_M_to_N)
-            nVars = nvariables(eq_relax)
-            RealT = real(dg)
-            u_N = zeros(RealT, nVars, nnodes_, nnodes_)
-            w_N = zeros(RealT, nVars, nnodes_, nnodes_)
-            f_N = zeros(RealT, nVars, nnodes_, nnodes_)
-            g_N = zeros(RealT, nVars, nnodes_, nnodes_)
-            u_M = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
-            w_M_raw = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
-            w_M = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
-            f_M = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
-            g_M = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
-
-            tmp_MxM = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
-            tmp_MxN = zeros(RealT, nVars, nnodes_projection, nnodes_)
-            tmp_NxM = zeros(RealT, nVars, nnodes_, nnodes_projection)
-
- #@threaded for element in eachelement(dg, cache)
-  for element in eachelement(dg, cache)
+function perform_idp_correction!(u, dt, mesh::TreeMesh2D, equations::JinXinEquations,
+                                 dg, cache)
+
+    # relaxation parameter
+    eps = equations.eps_relaxation
+    dt_ = dt
+    factor = 1.0 / (eps + dt_)
+    eq_relax = equations.equations_base
+
+    # prepare local storage for projection
+    @unpack interpolate_N_to_M, project_M_to_N, filter_modal_to_N = dg.basis
+    nnodes_, nnodes_projection = size(project_M_to_N)
+    nVars = nvariables(eq_relax)
+    RealT = real(dg)
+    u_N = zeros(RealT, nVars, nnodes_, nnodes_)
+    w_N = zeros(RealT, nVars, nnodes_, nnodes_)
+    f_N = zeros(RealT, nVars, nnodes_, nnodes_)
+    g_N = zeros(RealT, nVars, nnodes_, nnodes_)
+    u_M = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
+    w_M_raw = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
+    w_M = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
+    f_M = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
+    g_M = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
+
+    tmp_MxM = zeros(RealT, nVars, nnodes_projection, nnodes_projection)
+    tmp_MxN = zeros(RealT, nVars, nnodes_projection, nnodes_)
+    tmp_NxM = zeros(RealT, nVars, nnodes_, nnodes_projection)
+
+    #@threaded for element in eachelement(dg, cache)
+    for element in eachelement(dg, cache)
 
         # get element u_N
         for j in eachnode(dg), i in eachnode(dg)
             u_node = get_node_vars(u, equations, dg, i, j, element)
             for v in eachvariable(eq_relax)
-                u_N[v,i,j] = u_node[v]
+                u_N[v, i, j] = u_node[v]
             end
         end
         # bring elemtn u_N to grid (M+1)x(M+1)
-        multiply_dimensionwise!(u_M,interpolate_N_to_M,u_N,tmp_MxN)
-        
+        multiply_dimensionwise!(u_M, interpolate_N_to_M, u_N, tmp_MxN)
+
         # compute nodal values of entropy variables w on the M grid
         for j in 1:nnodes_projection, i in 1:nnodes_projection
             u_cons = get_node_vars(u_M, eq_relax, dg, i, j)
-            w_ij   = cons2entropy(u_cons,eq_relax) 
-            set_node_vars!(w_M_raw,w_ij,eq_relax,dg,i,j)
+            w_ij = cons2entropy(u_cons, eq_relax)
+            set_node_vars!(w_M_raw, w_ij, eq_relax, dg, i, j)
         end
         # compute projection of w with M values down to N
-        multiply_dimensionwise!(w_M,filter_modal_to_N,w_M_raw,tmp_MxM)
+        multiply_dimensionwise!(w_M, filter_modal_to_N, w_M_raw, tmp_MxM)
 
         #multiply_dimensionwise!(w_N,project_M_to_N,w_M)
         #multiply_dimensionwise!(w_M,interpolate_N_to_M,w_N)
 
-
         # compute nodal values of conservative f,g on the M grid
         for j in 1:nnodes_projection, i in 1:nnodes_projection
             w_ij = get_node_vars(w_M, eq_relax, dg, i, j)
             u_cons = entropy2cons(w_ij, eq_relax)
-            f_cons = flux(u_cons,1,eq_relax)
-            set_node_vars!(f_M,f_cons,eq_relax,dg,i,j)
-            g_cons = flux(u_cons,2,eq_relax)
-            set_node_vars!(g_M,g_cons,eq_relax,dg,i,j)
+            f_cons = flux(u_cons, 1, eq_relax)
+            set_node_vars!(f_M, f_cons, eq_relax, dg, i, j)
+            g_cons = flux(u_cons, 2, eq_relax)
+            set_node_vars!(g_M, g_cons, eq_relax, dg, i, j)
         end
         # compute projection of f with M values down to N, same for g
-        multiply_dimensionwise!(f_N,project_M_to_N,f_M,tmp_NxM)
-        multiply_dimensionwise!(g_N,project_M_to_N,g_M,tmp_NxM)
+        multiply_dimensionwise!(f_N, project_M_to_N, f_M, tmp_NxM)
+        multiply_dimensionwise!(g_N, project_M_to_N, g_M, tmp_NxM)
         #@assert nnodes_projection == nnodes(dg) 
         #for j in 1:nnodes_projection, i in 1:nnodes_projection
         #    u_cons = get_node_vars(u_N, eq_relax, dg, i, j)
@@ -124,8 +124,8 @@ function perform_idp_correction!(u, dt, mesh::TreeMesh2D, equations::JinXinEquat
         for j in eachnode(dg), i in eachnode(dg)
             u_node = get_node_vars(u, equations, dg, i, j, element)
             # compute compressible Euler fluxes
-            vu = get_node_vars(f_N,eq_relax,dg,i,j)
-            wu = get_node_vars(g_N,eq_relax,dg,i,j)
+            vu = get_node_vars(f_N, eq_relax, dg, i, j)
+            wu = get_node_vars(g_N, eq_relax, dg, i, j)
             # compute relaxation terms
             du1 = u_node[1]
             du2 = u_node[2]
@@ -136,10 +136,11 @@ function perform_idp_correction!(u, dt, mesh::TreeMesh2D, equations::JinXinEquat
             du7 = factor * (eps * u_node[7] + dt_ * vu[3])
             du8 = factor * (eps * u_node[8] + dt_ * vu[4])
             du9 = factor * (eps * u_node[9] + dt_ * wu[1])
-            du10= factor * (eps * u_node[10]+ dt_ * wu[2])
-            du11= factor * (eps * u_node[11]+ dt_ * wu[3])
-            du12= factor * (eps * u_node[12]+ dt_ * wu[4])
-            new_u = SVector(du1, du2, du3, du4, du5, du6, du7, du8, du9, du10, du11, du12)
+            du10 = factor * (eps * u_node[10] + dt_ * wu[2])
+            du11 = factor * (eps * u_node[11] + dt_ * wu[3])
+            du12 = factor * (eps * u_node[12] + dt_ * wu[4])
+            new_u = SVector(du1, du2, du3, du4, du5, du6, du7, du8, du9, du10, du11,
+                            du12)
             set_node_vars!(u, new_u, equations, dg, i, j, element)
         end
     end
diff --git a/src/callbacks_step/alive.jl b/src/callbacks_step/alive.jl
index 9df7181521e..0d26d9bd01b 100644
--- a/src/callbacks_step/alive.jl
+++ b/src/callbacks_step/alive.jl
@@ -45,7 +45,7 @@ function Base.show(io::IO, ::MIME"text/plain",
         alive_callback = cb.affect!
 
         setup = [
-            "interval" => alive_callback.alive_interval,
+            "interval" => alive_callback.alive_interval
         ]
         summary_box(io, "AliveCallback", setup)
     end
diff --git a/src/callbacks_step/analysis_dg2d.jl b/src/callbacks_step/analysis_dg2d.jl
index 53f586938b1..41136f91e7b 100644
--- a/src/callbacks_step/analysis_dg2d.jl
+++ b/src/callbacks_step/analysis_dg2d.jl
@@ -245,7 +245,7 @@ function analyze(::typeof(entropy_timederivative), du, u, t,
 
     # Calculate ∫(∂S/∂u ⋅ ∂u/∂t)dΩ
     result = integrate_via_indices(u, mesh, equations, dg, cache,
-                          du) do u, i, j, element, equations, dg, du
+                                   du) do u, i, j, element, equations, dg, du
         u_node = get_node_vars(u, equations, dg, i, j, element)
         du_node = get_node_vars(du, equations, dg, i, j, element)
         dot(cons2entropy(u_node, equations), du_node)
diff --git a/src/callbacks_step/averaging.jl b/src/callbacks_step/averaging.jl
index efa71af9b91..d23abe28692 100644
--- a/src/callbacks_step/averaging.jl
+++ b/src/callbacks_step/averaging.jl
@@ -45,7 +45,7 @@ function Base.show(io::IO, ::MIME"text/plain",
 
         setup = [
             "Start time" => first(averaging_callback.tspan),
-            "Final time" => last(averaging_callback.tspan),
+            "Final time" => last(averaging_callback.tspan)
         ]
         summary_box(io, "AveragingCallback", setup)
     end
diff --git a/src/callbacks_step/glm_speed.jl b/src/callbacks_step/glm_speed.jl
index 8ee406af5f9..5736af91d4f 100644
--- a/src/callbacks_step/glm_speed.jl
+++ b/src/callbacks_step/glm_speed.jl
@@ -48,7 +48,7 @@ function Base.show(io::IO, ::MIME"text/plain",
         setup = [
             "GLM wave speed scaling" => glm_speed_callback.glm_scale,
             "Expected CFL number" => glm_speed_callback.cfl,
-            "Selected semidiscretizations" => glm_speed_callback.semi_indices,
+            "Selected semidiscretizations" => glm_speed_callback.semi_indices
         ]
         summary_box(io, "GlmSpeedCallback", setup)
     end
diff --git a/src/callbacks_step/save_restart.jl b/src/callbacks_step/save_restart.jl
index 0d174d85805..98a681d1b38 100644
--- a/src/callbacks_step/save_restart.jl
+++ b/src/callbacks_step/save_restart.jl
@@ -38,7 +38,7 @@ function Base.show(io::IO, ::MIME"text/plain",
             "interval" => save_restart_callback.interval,
             "save final solution" => save_restart_callback.save_final_restart ? "yes" :
                                      "no",
-            "output directory" => abspath(normpath(save_restart_callback.output_directory)),
+            "output directory" => abspath(normpath(save_restart_callback.output_directory))
         ]
         summary_box(io, "SaveRestartCallback", setup)
     end
diff --git a/src/callbacks_step/save_solution.jl b/src/callbacks_step/save_solution.jl
index c106fe69bcd..c6ac303c1c2 100644
--- a/src/callbacks_step/save_solution.jl
+++ b/src/callbacks_step/save_solution.jl
@@ -62,7 +62,7 @@ function Base.show(io::IO, ::MIME"text/plain",
                                        "yes" : "no",
             "save final solution" => save_solution_callback.save_final_solution ?
                                      "yes" : "no",
-            "output directory" => abspath(normpath(save_solution_callback.output_directory)),
+            "output directory" => abspath(normpath(save_solution_callback.output_directory))
         ]
         summary_box(io, "SaveSolutionCallback", setup)
     end
@@ -85,7 +85,7 @@ function Base.show(io::IO, ::MIME"text/plain",
                                        "yes" : "no",
             "save final solution" => save_solution_callback.save_final_solution ?
                                      "yes" : "no",
-            "output directory" => abspath(normpath(save_solution_callback.output_directory)),
+            "output directory" => abspath(normpath(save_solution_callback.output_directory))
         ]
         summary_box(io, "SaveSolutionCallback", setup)
     end
diff --git a/src/callbacks_step/steady_state.jl b/src/callbacks_step/steady_state.jl
index 15c2e834285..7085d05394f 100644
--- a/src/callbacks_step/steady_state.jl
+++ b/src/callbacks_step/steady_state.jl
@@ -43,7 +43,7 @@ function Base.show(io::IO, ::MIME"text/plain",
 
         setup = [
             "absolute tolerance" => steady_state_callback.abstol,
-            "relative tolerance" => steady_state_callback.reltol,
+            "relative tolerance" => steady_state_callback.reltol
         ]
         summary_box(io, "SteadyStateCallback", setup)
     end
diff --git a/src/callbacks_step/stepsize.jl b/src/callbacks_step/stepsize.jl
index 8b5cb958318..0a95cb35ad3 100644
--- a/src/callbacks_step/stepsize.jl
+++ b/src/callbacks_step/stepsize.jl
@@ -33,7 +33,7 @@ function Base.show(io::IO, ::MIME"text/plain",
         stepsize_callback = cb.affect!
 
         setup = [
-            "CFL number" => stepsize_callback.cfl_number,
+            "CFL number" => stepsize_callback.cfl_number
         ]
         summary_box(io, "StepsizeCallback", setup)
     end
diff --git a/src/callbacks_step/time_series.jl b/src/callbacks_step/time_series.jl
index ae18c85700d..d3c9861d33d 100644
--- a/src/callbacks_step/time_series.jl
+++ b/src/callbacks_step/time_series.jl
@@ -72,7 +72,7 @@ function Base.show(io::IO, ::MIME"text/plain",
             "interval" => time_series_callback.interval,
             "solution_variables" => time_series_callback.solution_variables,
             "output_directory" => time_series_callback.output_directory,
-            "filename" => time_series_callback.filename,
+            "filename" => time_series_callback.filename
         ]
         summary_box(io, "TimeSeriesCallback", setup)
     end
diff --git a/src/callbacks_step/visualization.jl b/src/callbacks_step/visualization.jl
index 98c0126a302..513bde4e0c3 100644
--- a/src/callbacks_step/visualization.jl
+++ b/src/callbacks_step/visualization.jl
@@ -50,7 +50,7 @@ function Base.show(io::IO, ::MIME"text/plain",
             "variable names" => visualization_callback.variable_names,
             "show mesh" => visualization_callback.show_mesh,
             "plot creator" => visualization_callback.plot_creator,
-            "plot data creator" => visualization_callback.plot_data_creator,
+            "plot data creator" => visualization_callback.plot_data_creator
         ]
         summary_box(io, "VisualizationCallback", setup)
     end
diff --git a/src/equations/equations.jl b/src/equations/equations.jl
index 5f69528be14..6ffa378fc53 100644
--- a/src/equations/equations.jl
+++ b/src/equations/equations.jl
@@ -517,5 +517,4 @@ include("traffic_flow_lwr_1d.jl")
 abstract type AbstractJinXinEquations{NDIMS, NVARS} <:
               AbstractEquations{NDIMS, NVARS} end
 include("jin_xin_compressible_euler_2d.jl")
-
 end # @muladd
diff --git a/src/equations/jin_xin_compressible_euler_2d.jl b/src/equations/jin_xin_compressible_euler_2d.jl
index 660c08d4ae3..ed6379ef746 100644
--- a/src/equations/jin_xin_compressible_euler_2d.jl
+++ b/src/equations/jin_xin_compressible_euler_2d.jl
@@ -10,14 +10,16 @@
 
 TODO: Write a proper docstring
 """
-struct JinXinEquations{NDIMS, NVARS, NVARS_BASE, EquationsBase <: AbstractEquations{NDIMS, NVARS_BASE}, RealT <: Real} <:
+struct JinXinEquations{NDIMS, NVARS, NVARS_BASE,
+                       EquationsBase <: AbstractEquations{NDIMS, NVARS_BASE},
+                       RealT <: Real} <:
        AbstractJinXinEquations{NDIMS, NVARS}
     equations_base::EquationsBase
     # relaxation parameter of the Jin Xin relaxation model
     # The relaxed equations should converge to the original equations
     # as the relaxation parameter epsilon -> 0
-    eps_relaxation    ::RealT
-    eps_relaxation_inv::RealT
+    eps_relaxation     :: RealT
+    eps_relaxation_inv :: RealT
 
     # velocity parameters of the Jin Xin relaxation model
     # They need to satisfy the subcharacteristic condition, i.e., they
@@ -29,7 +31,6 @@ struct JinXinEquations{NDIMS, NVARS, NVARS_BASE, EquationsBase <: AbstractEquati
 end
 
 function JinXinEquations(equations_base, eps_relaxation, velocities)
-
     sqrt_velocities = map(velocities) do v
         sqrt_v = sqrt.(v)
         return sqrt_v
@@ -42,8 +43,9 @@ function JinXinEquations(equations_base, eps_relaxation, velocities)
     NDIMS = ndims(equations_base)
     NVARS_BASE = nvariables(equations_base)
     RealT = promote_type(typeof(eps_relaxation), eltype(eltype(velocities)))
-    JinXinEquations{NDIMS, (NDIMS + 1) * NVARS_BASE, NVARS_BASE, typeof(equations_base), RealT}(equations_base, eps_relaxation, inv(eps_relaxation),
-                    velocities, sqrt_velocities, sqrt_velocities_inv)
+    JinXinEquations{NDIMS, (NDIMS + 1) * NVARS_BASE, NVARS_BASE, typeof(equations_base),
+                    RealT}(equations_base, eps_relaxation, inv(eps_relaxation),
+                           velocities, sqrt_velocities, sqrt_velocities_inv)
 end
 
 function varnames(func::typeof(cons2cons), equations::JinXinEquations)
@@ -79,7 +81,7 @@ end
 
 # Set initial conditions at physical location `x` for time `t`
 struct InitialConditionJinXin{IC}
-  initial_condition::IC
+    initial_condition::IC
 end
 
 @inline function (ic::InitialConditionJinXin)(x, t, equations::JinXinEquations)
@@ -131,13 +133,11 @@ end
 #     return SVector(du1, du2, du3, du4, du5, du6, du7, du8, du9, du10, du11, du12)
 # end
 
-
 function get_block_components(u, n, equations::JinXinEquations)
     nvars_base = nvariables(equations.equations_base)
     return SVector(ntuple(i -> u[i + (n - 1) * nvars_base], Val(nvars_base)))
 end
 
-
 # Calculate 1D flux in for a single point
 # TODO: Implement 1D and 3D
 @inline function flux(u, orientation::Integer, equations::JinXinEquations{2})
@@ -154,15 +154,13 @@ end
     end
 end
 
-
 @inline function flux(u, orientation::Integer, equations::JinXinEquations{1})
-        u_base = get_block_components(u, 1, equations)
-        fluxes = get_block_components(u, 2, equations)
-        velocities = equations.velocities[1]
-        return SVector(fluxes..., (velocities .* u_base)...)
+    u_base = get_block_components(u, 1, equations)
+    fluxes = get_block_components(u, 2, equations)
+    velocities = equations.velocities[1]
+    return SVector(fluxes..., (velocities .* u_base)...)
 end
 
-
 # TODO: Implement 1D and 3D
 @inline function flux_upwind(u_ll, u_rr, orientation::Integer,
                              equations::JinXinEquations{2})
@@ -188,26 +186,24 @@ end
     end
 
     return 0.5f0 * (flux(u_ll, orientation, equations) +
-                    flux(u_rr, orientation, equations) - dissipation)
+            flux(u_rr, orientation, equations) - dissipation)
 end
 
-
 @inline function flux_upwind(u_ll, u_rr, orientation::Integer,
                              equations::JinXinEquations{1})
     u_ll_base = get_block_components(u_ll, 1, equations)
     u_rr_base = get_block_components(u_rr, 1, equations)
 
-        sqrt_velocities = equations.sqrt_velocities[1]
-        f_ll_base = get_block_components(u_ll, 2, equations)
-        f_rr_base = get_block_components(u_rr, 2, equations)
-        dissipation = SVector((sqrt_velocities .* (u_rr_base - u_ll_base))...,
-                              #   (sqrt_velocities .* (f_rr_base + f_ll_base))..., @ranocha: is this correct?
-                              (sqrt_velocities .* (f_rr_base - f_ll_base))...)
+    sqrt_velocities = equations.sqrt_velocities[1]
+    f_ll_base = get_block_components(u_ll, 2, equations)
+    f_rr_base = get_block_components(u_rr, 2, equations)
+    dissipation = SVector((sqrt_velocities .* (u_rr_base - u_ll_base))...,
+                          #   (sqrt_velocities .* (f_rr_base + f_ll_base))..., @ranocha: is this correct?
+                          (sqrt_velocities .* (f_rr_base - f_ll_base))...)
     return 0.5f0 * (flux(u_ll, orientation, equations) +
-                    flux(u_rr, orientation, equations) - dissipation)
+            flux(u_rr, orientation, equations) - dissipation)
 end
 
-
 @inline function max_abs_speeds(u, equations::JinXinEquations{2})
     return ntuple(Val(ndims(equations))) do n
         # maximum(equations.sqrt_velocities_inv[n]) @ranocha: is this correct?
@@ -215,7 +211,6 @@ end
     end
 end
 
-
 @inline function max_abs_speeds(u, equations::JinXinEquations{1})
     return ntuple(Val(ndims(equations))) do n
         # maximum(equations.sqrt_velocities_inv[n]) @ranocha: is this correct?
diff --git a/src/meshes/p4est_mesh.jl b/src/meshes/p4est_mesh.jl
index 6bb98196231..49dfd2419d5 100644
--- a/src/meshes/p4est_mesh.jl
+++ b/src/meshes/p4est_mesh.jl
@@ -106,7 +106,7 @@ function Base.show(io::IO, ::MIME"text/plain", mesh::P4estMesh)
         setup = [
             "#trees" => ntrees(mesh),
             "current #cells" => ncells(mesh),
-            "polydeg" => length(mesh.nodes) - 1,
+            "polydeg" => length(mesh.nodes) - 1
         ]
         summary_box(io,
                     "P4estMesh{" * string(ndims(mesh)) * ", " * string(real(mesh)) *
diff --git a/src/meshes/t8code_mesh.jl b/src/meshes/t8code_mesh.jl
index 0af4c6ae023..05642b8d724 100644
--- a/src/meshes/t8code_mesh.jl
+++ b/src/meshes/t8code_mesh.jl
@@ -92,7 +92,7 @@ function Base.show(io::IO, ::MIME"text/plain", mesh::T8codeMesh)
         setup = [
             "#trees" => ntrees(mesh),
             "current #cells" => ncells(mesh),
-            "polydeg" => length(mesh.nodes) - 1,
+            "polydeg" => length(mesh.nodes) - 1
         ]
         summary_box(io,
                     "T8codeMesh{" * string(ndims(mesh)) * ", " * string(real(mesh)) * "}",
@@ -976,7 +976,7 @@ function fill_mesh_info!(mesh::T8codeMesh, interfaces, mortars, boundaries,
         [1, 2, 0, 0, 3, 4, 0, 0], # 2
         [0, 0, 1, 2, 0, 0, 3, 4], # 3
         [1, 2, 3, 4, 0, 0, 0, 0], # 4
-        [0, 0, 0, 0, 1, 2, 3, 4], # 5
+        [0, 0, 0, 0, 1, 2, 3, 4] # 5
     ]
 
     # Helper variables to compute unique global MPI interface/mortar ids.
@@ -1229,10 +1229,10 @@ function fill_mesh_info!(mesh::T8codeMesh, interfaces, mortars, boundaries,
                                 global_mortar_id_to_local[global_mortar_id] = local_mpi_mortar_id
 
                                 mpi_mesh_info.mpi_mortars.local_neighbor_ids[local_mpi_mortar_id] = [
-                                    current_index + 1,
+                                    current_index + 1
                                 ]
                                 mpi_mesh_info.mpi_mortars.local_neighbor_positions[local_mpi_mortar_id] = [
-                                    map_iface_to_ichild_to_position[iface + 1][t8_element_child_id(eclass_scheme, element) + 1],
+                                    map_iface_to_ichild_to_position[iface + 1][t8_element_child_id(eclass_scheme, element) + 1]
                                 ]
                                 init_mortar_node_indices!(mpi_mesh_info.mpi_mortars,
                                                           (iface, dual_faces[1]),
@@ -1240,7 +1240,7 @@ function fill_mesh_info!(mesh::T8codeMesh, interfaces, mortars, boundaries,
 
                                 neighbor_ranks = [
                                     remotes[findlast(ghost_remote_first_elem .<=
-                                                     neighbor_ielements[1])],
+                                                     neighbor_ielements[1])]
                                 ]
                                 mpi_mesh_info.neighbor_ranks_mortar[local_mpi_mortar_id] = neighbor_ranks
 
diff --git a/src/meshes/tree_mesh.jl b/src/meshes/tree_mesh.jl
index 1092fc54cc1..933bfa62722 100644
--- a/src/meshes/tree_mesh.jl
+++ b/src/meshes/tree_mesh.jl
@@ -200,7 +200,7 @@ function Base.show(io::IO, ::MIME"text/plain",
             "periodicity" => mesh.tree.periodicity,
             "current #cells" => mesh.tree.length,
             "#leaf-cells" => count_leaf_cells(mesh.tree),
-            "maximum #cells" => mesh.tree.capacity,
+            "maximum #cells" => mesh.tree.capacity
         ]
         summary_box(io, "TreeMesh{" * string(NDIMS) * ", " * string(TreeType) * "}",
                     setup)
diff --git a/src/semidiscretization/semidiscretization_euler_gravity.jl b/src/semidiscretization/semidiscretization_euler_gravity.jl
index 4201344df80..97524fb5052 100644
--- a/src/semidiscretization/semidiscretization_euler_gravity.jl
+++ b/src/semidiscretization/semidiscretization_euler_gravity.jl
@@ -59,7 +59,7 @@ function Base.show(io::IO, ::MIME"text/plain", parameters::ParametersEulerGravit
             "gravitational constant (G)" => parameters.gravitational_constant,
             "CFL (gravity)" => parameters.cfl,
             "max. #iterations" => parameters.n_iterations_max,
-            "time integrator" => parameters.timestep_gravity,
+            "time integrator" => parameters.timestep_gravity
         ]
         summary_box(io, "ParametersEulerGravity", setup)
     end
diff --git a/src/solvers/dg.jl b/src/solvers/dg.jl
index 768ae5f6973..64679815571 100644
--- a/src/solvers/dg.jl
+++ b/src/solvers/dg.jl
@@ -95,7 +95,7 @@ function Base.show(io::IO, ::MIME"text/plain", integral::VolumeIntegralFluxDiffe
         show(io, integral)
     else
         setup = [
-            "volume flux" => integral.volume_flux,
+            "volume flux" => integral.volume_flux
         ]
         summary_box(io, "VolumeIntegralFluxDifferencing", setup)
     end
@@ -187,7 +187,7 @@ function Base.show(io::IO, ::MIME"text/plain",
         show(io, integral)
     else
         setup = [
-            "FV flux" => integral.volume_flux_fv,
+            "FV flux" => integral.volume_flux_fv
         ]
         summary_box(io, "VolumeIntegralPureLGLFiniteVolume", setup)
     end
@@ -284,7 +284,7 @@ function Base.show(io::IO, ::MIME"text/plain", integral::VolumeIntegralUpwind)
         show(io, integral)
     else
         setup = [
-            "flux splitting" => integral.splitting,
+            "flux splitting" => integral.splitting
         ]
         summary_box(io, "VolumeIntegralUpwind", setup)
     end
@@ -324,7 +324,7 @@ function Base.show(io::IO, ::MIME"text/plain", integral::SurfaceIntegralWeakForm
         show(io, integral)
     else
         setup = [
-            "surface flux" => integral.surface_flux,
+            "surface flux" => integral.surface_flux
         ]
         summary_box(io, "SurfaceIntegralWeakForm", setup)
     end
@@ -350,7 +350,7 @@ function Base.show(io::IO, ::MIME"text/plain", integral::SurfaceIntegralStrongFo
         show(io, integral)
     else
         setup = [
-            "surface flux" => integral.surface_flux,
+            "surface flux" => integral.surface_flux
         ]
         summary_box(io, "SurfaceIntegralStrongForm", setup)
     end
@@ -381,7 +381,7 @@ function Base.show(io::IO, ::MIME"text/plain", integral::SurfaceIntegralUpwind)
         show(io, integral)
     else
         setup = [
-            "flux splitting" => integral.splitting,
+            "flux splitting" => integral.splitting
         ]
         summary_box(io, "SurfaceIntegralUpwind", setup)
     end
diff --git a/src/solvers/dgsem/basis_gauss_legendre.jl b/src/solvers/dgsem/basis_gauss_legendre.jl
index b9aafeb9da5..1548ea8e7fb 100644
--- a/src/solvers/dgsem/basis_gauss_legendre.jl
+++ b/src/solvers/dgsem/basis_gauss_legendre.jl
@@ -38,7 +38,9 @@ struct GaussLegendreBasis{RealT <: Real, NNODES,
     filter_modal_to_cutoff::DerivativeMatrix # compute modal cutoff filter via Legendre modes, cut off modes at polydeg_cutoff
 end
 
-function GaussLegendreBasis(RealT, polydeg::Integer; polydeg_projection::Integer = 2 * polydeg, polydeg_cutoff::Integer = div(polydeg + 1, 2) - 1)
+function GaussLegendreBasis(RealT, polydeg::Integer;
+                            polydeg_projection::Integer = 2 * polydeg,
+                            polydeg_cutoff::Integer = div(polydeg + 1, 2) - 1)
     nnodes_ = polydeg + 1
 
     # compute everything using `Float64` by default
@@ -74,39 +76,43 @@ function GaussLegendreBasis(RealT, polydeg::Integer; polydeg_projection::Integer
     # L2 projection operators
     nnodes_projection = polydeg_projection + 1
     nodes_projection, weights_projection = gauss_nodes_weights(nnodes_projection)
-    interpolate_N_to_M_ = polynomial_interpolation_matrix(nodes_, nodes_projection) 
+    interpolate_N_to_M_ = polynomial_interpolation_matrix(nodes_, nodes_projection)
     interpolate_N_to_M = Matrix{RealT}(interpolate_N_to_M_)
 
-    project_M_to_N_,filter_modal_to_N_ = calc_projection_matrix(nodes_projection, nodes_)
-    project_M_to_N  = Matrix{RealT}(project_M_to_N_)
-    filter_modal_to_N  = Matrix{RealT}(filter_modal_to_N_)
+    project_M_to_N_, filter_modal_to_N_ = calc_projection_matrix(nodes_projection,
+                                                                 nodes_)
+    project_M_to_N = Matrix{RealT}(project_M_to_N_)
+    filter_modal_to_N = Matrix{RealT}(filter_modal_to_N_)
 
     nnodes_cutoff = polydeg_cutoff + 1
     nodes_cutoff, weights_cutoff = gauss_nodes_weights(nnodes_cutoff)
     _, filter_modal_to_cutoff_ = calc_projection_matrix(nodes_, nodes_cutoff)
-    filter_modal_to_cutoff  = Matrix{RealT}(filter_modal_to_cutoff_)
+    filter_modal_to_cutoff = Matrix{RealT}(filter_modal_to_cutoff_)
 
     return GaussLegendreBasis{RealT, nnodes_, typeof(nodes),
-                                typeof(inverse_vandermonde_legendre),
-                                typeof(boundary_interpolation),
-                                typeof(derivative_matrix),
-                                typeof(interpolate_N_to_M),
-                                typeof(project_M_to_N),
-                                typeof(filter_modal_to_N)}(nodes, weights,
-                                                        inverse_weights,
-                                                        inverse_vandermonde_legendre,
-                                                        boundary_interpolation,
-                                                        derivative_matrix,
-                                                        derivative_split,
-                                                        derivative_split_transpose,
-                                                        derivative_dhat,
-                                                        interpolate_N_to_M,
-                                                        project_M_to_N,
-                                                        filter_modal_to_N,
-                                                        filter_modal_to_cutoff)
+                              typeof(inverse_vandermonde_legendre),
+                              typeof(boundary_interpolation),
+                              typeof(derivative_matrix),
+                              typeof(interpolate_N_to_M),
+                              typeof(project_M_to_N),
+                              typeof(filter_modal_to_N)}(nodes, weights,
+                                                         inverse_weights,
+                                                         inverse_vandermonde_legendre,
+                                                         boundary_interpolation,
+                                                         derivative_matrix,
+                                                         derivative_split,
+                                                         derivative_split_transpose,
+                                                         derivative_dhat,
+                                                         interpolate_N_to_M,
+                                                         project_M_to_N,
+                                                         filter_modal_to_N,
+                                                         filter_modal_to_cutoff)
 end
 
-GaussLegendreBasis(polydeg::Integer; polydeg_projection::Integer = 2 * polydeg, polydeg_cutoff::Integer = div(polydeg + 1, 2) - 1) = GaussLegendreBasis(Float64, polydeg; polydeg_projection, polydeg_cutoff)
+GaussLegendreBasis(polydeg::Integer; polydeg_projection::Integer = 2 * polydeg, polydeg_cutoff::Integer = div(polydeg + 1, 2) - 1) = GaussLegendreBasis(Float64,
+                                                                                                                                                        polydeg;
+                                                                                                                                                        polydeg_projection,
+                                                                                                                                                        polydeg_cutoff)
 
 function Base.show(io::IO, basis::GaussLegendreBasis)
     @nospecialize basis # reduce precompilation time
@@ -137,7 +143,7 @@ end
 @inline Base.real(basis::GaussLegendreBasis{RealT}) where {RealT} = RealT
 
 @inline function nnodes(basis::GaussLegendreBasis{RealT, NNODES}) where {RealT, NNODES
-                                                                           }
+                                                                         }
     NNODES
 end
 
@@ -178,8 +184,8 @@ left_boundary_weight(basis::GaussLegendreBasis) = first(basis.weights)
 right_boundary_weight(basis::GaussLegendreBasis) = last(basis.weights)
 
 struct GaussLegendreAnalyzer{RealT <: Real, NNODES,
-                               VectorT <: AbstractVector{RealT},
-                               Vandermonde <: AbstractMatrix{RealT}} <:
+                             VectorT <: AbstractVector{RealT},
+                             Vandermonde <: AbstractMatrix{RealT}} <:
        SolutionAnalyzer{RealT}
     nodes::VectorT
     weights::VectorT
@@ -223,7 +229,7 @@ end
 @inline Base.real(analyzer::GaussLegendreAnalyzer{RealT}) where {RealT} = RealT
 
 @inline function nnodes(analyzer::GaussLegendreAnalyzer{RealT, NNODES}) where {RealT,
-                                                                                 NNODES}
+                                                                               NNODES}
     NNODES
 end
 """
@@ -236,5 +242,4 @@ In particular, not the nodes themselves are returned.
 @inline eachnode(analyzer::GaussLegendreAnalyzer) = Base.OneTo(nnodes(analyzer))
 
 @inline polydeg(analyzer::GaussLegendreAnalyzer) = nnodes(analyzer) - 1
-
 end # @muladd
diff --git a/src/solvers/dgsem/basis_lobatto_legendre.jl b/src/solvers/dgsem/basis_lobatto_legendre.jl
index 1bd3d9efa18..ce04a8eaf51 100644
--- a/src/solvers/dgsem/basis_lobatto_legendre.jl
+++ b/src/solvers/dgsem/basis_lobatto_legendre.jl
@@ -42,7 +42,9 @@ struct LobattoLegendreBasis{RealT <: Real, NNODES,
     filter_modal_to_cutoff::DerivativeMatrix # compute modal cutoff filter via Legendre modes, cut off modes at polydeg_cutoff
 end
 
-function LobattoLegendreBasis(RealT, polydeg::Integer; polydeg_projection::Integer = 2 * polydeg, polydeg_cutoff::Integer = div(polydeg + 1, 2) - 1)
+function LobattoLegendreBasis(RealT, polydeg::Integer;
+                              polydeg_projection::Integer = 2 * polydeg,
+                              polydeg_cutoff::Integer = div(polydeg + 1, 2) - 1)
     nnodes_ = polydeg + 1
 
     # compute everything using `Float64` by default
@@ -78,17 +80,18 @@ function LobattoLegendreBasis(RealT, polydeg::Integer; polydeg_projection::Integ
     # L2 projection operators
     nnodes_projection = polydeg_projection + 1
     nodes_projection, weights_projection = gauss_lobatto_nodes_weights(nnodes_projection)
-    interpolate_N_to_M_ = polynomial_interpolation_matrix(nodes_, nodes_projection) 
+    interpolate_N_to_M_ = polynomial_interpolation_matrix(nodes_, nodes_projection)
     interpolate_N_to_M = Matrix{RealT}(interpolate_N_to_M_)
 
-    project_M_to_N_,filter_modal_to_N_ = calc_projection_matrix(nodes_projection, nodes_)
-    project_M_to_N  = Matrix{RealT}(project_M_to_N_)
-    filter_modal_to_N  = Matrix{RealT}(filter_modal_to_N_)
+    project_M_to_N_, filter_modal_to_N_ = calc_projection_matrix(nodes_projection,
+                                                                 nodes_)
+    project_M_to_N = Matrix{RealT}(project_M_to_N_)
+    filter_modal_to_N = Matrix{RealT}(filter_modal_to_N_)
 
     nnodes_cutoff = polydeg_cutoff + 1
     nodes_cutoff, weights_cutoff = gauss_lobatto_nodes_weights(nnodes_cutoff)
     _, filter_modal_to_cutoff_ = calc_projection_matrix(nodes_, nodes_cutoff)
-    filter_modal_to_cutoff  = Matrix{RealT}(filter_modal_to_cutoff_)
+    filter_modal_to_cutoff = Matrix{RealT}(filter_modal_to_cutoff_)
 
     return LobattoLegendreBasis{RealT, nnodes_, typeof(nodes),
                                 typeof(inverse_vandermonde_legendre),
@@ -97,20 +100,23 @@ function LobattoLegendreBasis(RealT, polydeg::Integer; polydeg_projection::Integ
                                 typeof(interpolate_N_to_M),
                                 typeof(project_M_to_N),
                                 typeof(filter_modal_to_N)}(nodes, weights,
-                                                        inverse_weights,
-                                                        inverse_vandermonde_legendre,
-                                                        boundary_interpolation,
-                                                        derivative_matrix,
-                                                        derivative_split,
-                                                        derivative_split_transpose,
-                                                        derivative_dhat,
-                                                        interpolate_N_to_M,
-                                                        project_M_to_N,
-                                                        filter_modal_to_N,
-                                                        filter_modal_to_cutoff)
-end
-
-LobattoLegendreBasis(polydeg::Integer; polydeg_projection::Integer = 2 * polydeg, polydeg_cutoff::Integer = div(polydeg + 1, 2) - 1) = LobattoLegendreBasis(Float64, polydeg; polydeg_projection, polydeg_cutoff)
+                                                           inverse_weights,
+                                                           inverse_vandermonde_legendre,
+                                                           boundary_interpolation,
+                                                           derivative_matrix,
+                                                           derivative_split,
+                                                           derivative_split_transpose,
+                                                           derivative_dhat,
+                                                           interpolate_N_to_M,
+                                                           project_M_to_N,
+                                                           filter_modal_to_N,
+                                                           filter_modal_to_cutoff)
+end
+
+LobattoLegendreBasis(polydeg::Integer; polydeg_projection::Integer = 2 * polydeg, polydeg_cutoff::Integer = div(polydeg + 1, 2) - 1) = LobattoLegendreBasis(Float64,
+                                                                                                                                                            polydeg;
+                                                                                                                                                            polydeg_projection,
+                                                                                                                                                            polydeg_cutoff)
 
 function Base.show(io::IO, basis::LobattoLegendreBasis)
     @nospecialize basis # reduce precompilation time
@@ -811,21 +817,21 @@ function vandermonde_legendre(nodes, N)
 end
 vandermonde_legendre(nodes) = vandermonde_legendre(nodes, length(nodes) - 1)
 
-function calc_projection_matrix(nodes_in,nodes_out)
-  # nodes_in are size M>N
-  nnodes_in=length(nodes_in)
-  polydeg_in = nnodes_in - 1
-  # nodes_out are size N
-  nnodes_out = length(nodes_out)
-  vandermonde_in,inverse_vandermonde_in = vandermonde_legendre(nodes_in,polydeg_in)
-  filter_matrix = zeros(nnodes_in,nnodes_in)
-  for j in 1:nnodes_out
-    filter_matrix[j,j] = 1
-  end
-  interpolate_M_to_N = polynomial_interpolation_matrix(nodes_in, nodes_out)
-  filter_modal = vandermonde_in * filter_matrix * inverse_vandermonde_in
-  projection_matrix = interpolate_M_to_N * vandermonde_in * filter_matrix * inverse_vandermonde_in
-  return projection_matrix, filter_modal
+function calc_projection_matrix(nodes_in, nodes_out)
+    # nodes_in are size M>N
+    nnodes_in = length(nodes_in)
+    polydeg_in = nnodes_in - 1
+    # nodes_out are size N
+    nnodes_out = length(nodes_out)
+    vandermonde_in, inverse_vandermonde_in = vandermonde_legendre(nodes_in, polydeg_in)
+    filter_matrix = zeros(nnodes_in, nnodes_in)
+    for j in 1:nnodes_out
+        filter_matrix[j, j] = 1
+    end
+    interpolate_M_to_N = polynomial_interpolation_matrix(nodes_in, nodes_out)
+    filter_modal = vandermonde_in * filter_matrix * inverse_vandermonde_in
+    projection_matrix = interpolate_M_to_N * vandermonde_in * filter_matrix *
+                        inverse_vandermonde_in
+    return projection_matrix, filter_modal
 end
-
 end # @muladd
diff --git a/src/solvers/dgsem_tree/dg_2d.jl b/src/solvers/dgsem_tree/dg_2d.jl
index 9d2917b9667..f910327f7fd 100644
--- a/src/solvers/dgsem_tree/dg_2d.jl
+++ b/src/solvers/dgsem_tree/dg_2d.jl
@@ -202,7 +202,7 @@ end
 function calc_entropy_projection!(u_projected, u, mesh, equations, dg, cache)
     # prepare local storage for projection
     @unpack interpolate_N_to_M, project_M_to_N = dg.basis
-    nnodes_,nnodes_projection = size(project_M_to_N)
+    nnodes_, nnodes_projection = size(project_M_to_N)
     nVars = nvariables(equations)
     RealT = real(dg)
     u_N = zeros(RealT, nVars, nnodes_, nnodes_)
@@ -218,22 +218,22 @@ function calc_entropy_projection!(u_projected, u, mesh, equations, dg, cache)
         for j in eachnode(dg), i in eachnode(dg)
             u_node = get_node_vars(u, equations, dg, i, j, element)
             for v in eachvariable(equations)
-                u_N[v,i,j] = u_node[v]
+                u_N[v, i, j] = u_node[v]
             end
         end
         # bring elemtn u_N to grid (M+1)x(M+1)
-        multiply_dimensionwise!(u_M,interpolate_N_to_M,u_N,tmp_MxN)
-     
+        multiply_dimensionwise!(u_M, interpolate_N_to_M, u_N, tmp_MxN)
+
         # compute nodal values of entropy variables w on the M grid
         for j in 1:nnodes_projection, i in 1:nnodes_projection
             u_cons = get_node_vars(u_M, equations, dg, i, j)
-            w_ij   = cons2entropy(u_cons,equations)
-            set_node_vars!(w_M,w_ij,equations,dg,i,j)
+            w_ij = cons2entropy(u_cons, equations)
+            set_node_vars!(w_M, w_ij, equations, dg, i, j)
         end
 
         # compute projection of w with M values down to N
-        multiply_dimensionwise!(w_N, project_M_to_N ,w_M, tmp_NxM)
-     
+        multiply_dimensionwise!(w_N, project_M_to_N, w_M, tmp_NxM)
+
         # compute nodal values of conservative variables from the projected entropy variables
         for j in eachnode(dg), i in eachnode(dg)
             w_ij = get_node_vars(w_N, equations, dg, i, j)
@@ -243,7 +243,8 @@ function calc_entropy_projection!(u_projected, u, mesh, equations, dg, cache)
     end
 end
 
-function calc_filter!(u_filtered, u, cons2filter, filter2cons, mesh, equations, dg, cache)
+function calc_filter!(u_filtered, u, cons2filter, filter2cons, mesh, equations, dg,
+                      cache)
     # prepare local storage for projection
     @unpack filter_modal_to_cutoff = dg.basis
     nnodes_ = nnodes(dg)
@@ -258,15 +259,15 @@ function calc_filter!(u_filtered, u, cons2filter, filter2cons, mesh, equations,
         # convert u to entropy variables
         for j in eachnode(dg), i in eachnode(dg)
             u_cons = get_node_vars(u, equations, dg, i, j, element)
-            w_ij   = cons2filter(u_cons, equations)
+            w_ij = cons2filter(u_cons, equations)
             for v in eachvariable(equations)
-                w_N[v,i,j] = w_ij[v]
+                w_N[v, i, j] = w_ij[v]
             end
         end
 
         # filter entropy variables
         multiply_dimensionwise!(w_N_filtered, filter_modal_to_cutoff, w_N, tmp_NxN)
-     
+
         # compute nodal values of conservative variables from the projected entropy variables
         for j in eachnode(dg), i in eachnode(dg)
             w_ij = get_node_vars(w_N_filtered, equations, dg, i, j)
@@ -334,7 +335,7 @@ function calc_volume_integral!(du, u,
                                dg::DGSEM, cache)
     # prepare local storage for projection
     @unpack interpolate_N_to_M, project_M_to_N, filter_modal_to_N = dg.basis
-    nnodes_,nnodes_projection = size(project_M_to_N)
+    nnodes_, nnodes_projection = size(project_M_to_N)
     nVars = nvariables(equations)
     RealT = real(dg)
     u_N = zeros(RealT, nVars, nnodes_, nnodes_)
@@ -355,9 +356,9 @@ function calc_volume_integral!(du, u,
         # get element u_N
         for j in eachnode(dg), i in eachnode(dg)
             u_node = get_node_vars(u, equations, dg, i, j, element)
-            w_ij   = cons2entropy(u_node, equations)
+            w_ij = cons2entropy(u_node, equations)
             for v in eachvariable(equations)
-                w_N[v,i,j] = w_ij[v]
+                w_N[v, i, j] = w_ij[v]
             end
         end
         # bring elemtn u_N to grid (M+1)x(M+1)
@@ -367,16 +368,16 @@ function calc_volume_integral!(du, u,
         for j in 1:nnodes_projection, i in 1:nnodes_projection
             w_ij = get_node_vars(w_M, equations, dg, i, j)
             u_cons = entropy2cons(w_ij, equations)
-            f_cons = flux(u_cons,1,equations)
-            set_node_vars!(f_M,f_cons,equations,dg,i,j)
-            g_cons = flux(u_cons,2,equations)
-            set_node_vars!(g_M,g_cons,equations,dg,i,j)
+            f_cons = flux(u_cons, 1, equations)
+            set_node_vars!(f_M, f_cons, equations, dg, i, j)
+            g_cons = flux(u_cons, 2, equations)
+            set_node_vars!(g_M, g_cons, equations, dg, i, j)
         end
         # compute projection of f with M values down to N, same for g
-        multiply_dimensionwise!(f_N,project_M_to_N,f_M,tmp_NxM)
-        multiply_dimensionwise!(g_N,project_M_to_N,g_M,tmp_NxM)
+        multiply_dimensionwise!(f_N, project_M_to_N, f_M, tmp_NxM)
+        multiply_dimensionwise!(g_N, project_M_to_N, g_M, tmp_NxM)
 
-        weak_form_kernel_projection!(du, u,f_N, g_N, element, mesh,
+        weak_form_kernel_projection!(du, u, f_N, g_N, element, mesh,
                                      nonconservative_terms, equations,
                                      dg, cache)
     end
@@ -396,13 +397,13 @@ end
     for j in eachnode(dg), i in eachnode(dg)
         u_node = get_node_vars(u, equations, dg, i, j, element)
 
-        flux1 = get_node_vars(f_N, equations, dg, i,j)
+        flux1 = get_node_vars(f_N, equations, dg, i, j)
         for ii in eachnode(dg)
             multiply_add_to_node_vars!(du, derivative_dhat[ii, i], flux1,
                                        equations, dg, ii, j, element)
         end
 
-        flux2 = get_node_vars(g_N, equations, dg, i,j)
+        flux2 = get_node_vars(g_N, equations, dg, i, j)
         for jj in eachnode(dg)
             multiply_add_to_node_vars!(du, derivative_dhat[jj, j], flux2,
                                        equations, dg, i, jj, element)
@@ -721,7 +722,8 @@ end
 end
 
 function prolong2interfaces!(cache, u,
-                             mesh::TreeMesh{2}, equations, surface_integral, dg::DG{<:LobattoLegendreBasis})
+                             mesh::TreeMesh{2}, equations, surface_integral,
+                             dg::DG{<:LobattoLegendreBasis})
     @unpack interfaces = cache
     @unpack orientations, neighbor_ids = interfaces
     interfaces_u = interfaces.u
@@ -749,7 +751,8 @@ function prolong2interfaces!(cache, u,
 end
 
 function prolong2interfaces!(cache, u,
-                             mesh::TreeMesh{2}, equations, surface_integral, dg::DG{<:GaussLegendreBasis})
+                             mesh::TreeMesh{2}, equations, surface_integral,
+                             dg::DG{<:GaussLegendreBasis})
     @unpack interfaces = cache
     @unpack orientations, neighbor_ids = interfaces
     @unpack boundary_interpolation, weights = dg.basis
@@ -765,8 +768,12 @@ function prolong2interfaces!(cache, u,
                 interfaces_u[1, v, j, interface] = 0
                 interfaces_u[2, v, j, interface] = 0
                 for ii in eachnode(dg)
-                    interfaces_u[1, v, j, interface] += u[v, ii, j, left_element] * weights[ii] * boundary_interpolation[ii, 2]
-                    interfaces_u[2, v, j, interface] += u[v, ii, j, right_element] * weights[ii] * boundary_interpolation[ii, 1]
+                    interfaces_u[1, v, j, interface] += u[v, ii, j, left_element] *
+                                                        weights[ii] *
+                                                        boundary_interpolation[ii, 2]
+                    interfaces_u[2, v, j, interface] += u[v, ii, j, right_element] *
+                                                        weights[ii] *
+                                                        boundary_interpolation[ii, 1]
                 end
             end
         else # if orientations[interface] == 2
@@ -775,8 +782,12 @@ function prolong2interfaces!(cache, u,
                 interfaces_u[1, v, i, interface] = 0
                 interfaces_u[2, v, i, interface] = 0
                 for jj in eachnode(dg)
-                    interfaces_u[1, v, i, interface] += u[v, i, jj, left_element] * weights[jj] * boundary_interpolation[jj, 2]
-                    interfaces_u[2, v, i, interface] += u[v, i, jj, right_element] * weights[jj] * boundary_interpolation[jj, 1]
+                    interfaces_u[1, v, i, interface] += u[v, i, jj, left_element] *
+                                                        weights[jj] *
+                                                        boundary_interpolation[jj, 2]
+                    interfaces_u[2, v, i, interface] += u[v, i, jj, right_element] *
+                                                        weights[jj] *
+                                                        boundary_interpolation[jj, 1]
                 end
             end
         end
diff --git a/src/solvers/dgsem_tree/indicators.jl b/src/solvers/dgsem_tree/indicators.jl
index 9f25a6d2dbb..eccc85cf204 100644
--- a/src/solvers/dgsem_tree/indicators.jl
+++ b/src/solvers/dgsem_tree/indicators.jl
@@ -96,7 +96,7 @@ function Base.show(io::IO, ::MIME"text/plain", indicator::IndicatorHennemannGass
         "indicator variable" => indicator.variable,
         "max. α" => indicator.alpha_max,
         "min. α" => indicator.alpha_min,
-        "smooth α" => (indicator.alpha_smooth ? "yes" : "no"),
+        "smooth α" => (indicator.alpha_smooth ? "yes" : "no")
     ]
     summary_box(io, "IndicatorHennemannGassner", setup)
 end
@@ -193,7 +193,7 @@ function Base.show(io::IO, ::MIME"text/plain", indicator::IndicatorLöhner)
     else
         setup = [
             "indicator variable" => indicator.variable,
-            "f_wave" => indicator.f_wave,
+            "f_wave" => indicator.f_wave
         ]
         summary_box(io, "IndicatorLöhner", setup)
     end
@@ -251,7 +251,7 @@ function Base.show(io::IO, ::MIME"text/plain", indicator::IndicatorMax)
         show(io, indicator)
     else
         setup = [
-            "indicator variable" => indicator.variable,
+            "indicator variable" => indicator.variable
         ]
         summary_box(io, "IndicatorMax", setup)
     end
diff --git a/src/solvers/dgsem_tree/subcell_limiters.jl b/src/solvers/dgsem_tree/subcell_limiters.jl
index 17c9488316d..f3fc392e32f 100644
--- a/src/solvers/dgsem_tree/subcell_limiters.jl
+++ b/src/solvers/dgsem_tree/subcell_limiters.jl
@@ -195,7 +195,7 @@ function Base.show(io::IO, ::MIME"text/plain", limiter::SubcellLimiterIDP)
             if local_twosided
                 setup = [
                     setup...,
-                    "" => "Local two-sided limiting for conservative variables $(limiter.local_twosided_variables_cons)",
+                    "" => "Local two-sided limiting for conservative variables $(limiter.local_twosided_variables_cons)"
                 ]
             end
             if positivity
@@ -203,7 +203,7 @@ function Base.show(io::IO, ::MIME"text/plain", limiter::SubcellLimiterIDP)
                 setup = [setup..., "" => string]
                 setup = [
                     setup...,
-                    "" => "- with positivity correction factor = $(limiter.positivity_correction_factor)",
+                    "" => "- with positivity correction factor = $(limiter.positivity_correction_factor)"
                 ]
             end
             if local_onesided
@@ -213,7 +213,7 @@ function Base.show(io::IO, ::MIME"text/plain", limiter::SubcellLimiterIDP)
             end
             setup = [
                 setup...,
-                "Local bounds" => "FV solution",
+                "Local bounds" => "FV solution"
             ]
         end
         summary_box(io, "SubcellLimiterIDP", setup)
diff --git a/src/time_integration/methods_IMEXJinXin.jl b/src/time_integration/methods_IMEXJinXin.jl
index 82d54962b13..d8234d0ce59 100644
--- a/src/time_integration/methods_IMEXJinXin.jl
+++ b/src/time_integration/methods_IMEXJinXin.jl
@@ -35,21 +35,21 @@ struct SimpleIMEX{StageCallbacks} <: SimpleAlgorithmIMEX
         # the machine accuracy will occur, which will add up over time and thus endanger the
         # conservation of the simulation.
         # See also https://github.com/trixi-framework/Trixi.jl/pull/1640.
-        A1 = zeros(3,3)
-        A2 = zeros(3,3)
-        A1[2,1] = 0.5
-        A1[3,1] = 0.5
-        A1[3,2] = 0.5
-
-        A2[1,1] = 1/4
-        A2[2,2] = 1/4
-        A2[3,1] = 1/3
-        A2[3,2] = 1/3
-        A2[3,3] = 1/3
-
-        b = SVector(1/3, 1/3, 1/3) 
-        c1 = SVector(0.0, 1/2, 1)
-        c2 = SVector(1/4, 1/4, 1)
+        A1 = zeros(3, 3)
+        A2 = zeros(3, 3)
+        A1[2, 1] = 0.5
+        A1[3, 1] = 0.5
+        A1[3, 2] = 0.5
+
+        A2[1, 1] = 1 / 4
+        A2[2, 2] = 1 / 4
+        A2[3, 1] = 1 / 3
+        A2[3, 2] = 1 / 3
+        A2[3, 3] = 1 / 3
+
+        b = SVector(1 / 3, 1 / 3, 1 / 3)
+        c1 = SVector(0.0, 1 / 2, 1)
+        c2 = SVector(1 / 4, 1 / 4, 1)
 
         # Butcher tableau
         #   c |       a
@@ -59,7 +59,7 @@ struct SimpleIMEX{StageCallbacks} <: SimpleAlgorithmIMEX
         # --------------------
         #   b | 1/6  1/6  2/3
 
-        new{typeof(stage_callbacks)}(A1, A2, b, c1,c2,
+        new{typeof(stage_callbacks)}(A1, A2, b, c1, c2,
                                      stage_callbacks)
     end
 end
@@ -73,7 +73,8 @@ mutable struct SimpleIntegratorIMEXOptions{Callback, TStops}
     tstops::TStops # tstops from https://diffeq.sciml.ai/v6.8/basics/common_solver_opts/#Output-Control-1; ignored
 end
 
-function SimpleIntegratorIMEXOptions(callback, tspan; maxiters = typemax(Int), kwargs...)
+function SimpleIntegratorIMEXOptions(callback, tspan; maxiters = typemax(Int),
+                                     kwargs...)
     tstops_internal = BinaryHeap{eltype(tspan)}(FasterForward())
     # We add last(tspan) to make sure that the time integration stops at the end time
     push!(tstops_internal, last(tspan))
@@ -81,9 +82,9 @@ function SimpleIntegratorIMEXOptions(callback, tspan; maxiters = typemax(Int), k
     # (https://github.com/SciML/DiffEqCallbacks.jl/blob/025dfe99029bd0f30a2e027582744528eb92cd24/src/iterative_and_periodic.jl#L92)
     push!(tstops_internal, 2 * last(tspan))
     SimpleIntegratorIMEXOptions{typeof(callback), typeof(tstops_internal)}(callback,
-                                                                          false, Inf,
-                                                                          maxiters,
-                                                                          tstops_internal)
+                                                                           false, Inf,
+                                                                           maxiters,
+                                                                           tstops_internal)
 end
 
 # This struct is needed to fake https://github.com/SciML/OrdinaryDiffEq.jl/blob/0c2048a502101647ac35faabd80da8a5645beac7/src/integrators/type.jl#L77
@@ -91,7 +92,7 @@ end
 # https://diffeq.sciml.ai/v6.8/basics/integrator/#Handing-Integrators-1
 # which are used in Trixi.
 mutable struct SimpleIntegratorIMEX{RealT <: Real, uType, Params, Sol, F, Alg,
-                                   SimpleIntegratorIMEXOptions}
+                                    SimpleIntegratorIMEXOptions}
     u::uType
     u1::uType
     u2::uType
@@ -179,11 +180,13 @@ function solve(ode::ODEProblem, alg::SimpleAlgorithmIMEX;
     t = first(ode.tspan)
     tdir = sign(ode.tspan[end] - ode.tspan[1])
     iter = 0
-    integrator = SimpleIntegratorIMEX(u,u1,u2,u3,fu1,fu2,fu3,du1,du2,du3,du,u_tmp1,u_tmp2,u_tmp3, r0, t, tdir, dt, dt, iter, ode.p,
-                                     (prob = ode,), ode.f, alg,
-                                     SimpleIntegratorIMEXOptions(callback, ode.tspan;
-                                                                kwargs...),
-                                     false, true, false)
+    integrator = SimpleIntegratorIMEX(u, u1, u2, u3, fu1, fu2, fu3, du1, du2, du3, du,
+                                      u_tmp1, u_tmp2, u_tmp3, r0, t, tdir, dt, dt, iter,
+                                      ode.p,
+                                      (prob = ode,), ode.f, alg,
+                                      SimpleIntegratorIMEXOptions(callback, ode.tspan;
+                                                                  kwargs...),
+                                      false, true, false)
 
     # resize container
     resize!(integrator.p, nelements(integrator.p.solver, integrator.p.cache))
@@ -217,105 +220,133 @@ function solve!(integrator::SimpleIntegratorIMEX)
     relaxation_rate = equations.eps_relaxation
     integrator.finalstep = false
     @trixi_timeit timer() "main loop" while !integrator.finalstep
-            if isnan(integrator.dt)
-                error("time step size `dt` is NaN")
-            end
+        if isnan(integrator.dt)
+            error("time step size `dt` is NaN")
+        end
 
-            modify_dt_for_tstops!(integrator)
-            # if the next iteration would push the simulation beyond the end time, set dt accordingly
-                if integrator.t + integrator.dt > t_end ||
-                    isapprox(integrator.t + integrator.dt, t_end)
-                    integrator.dt = t_end - integrator.t
-                    terminate!(integrator)
-                end
-            integrator.u1 .= 0
-            integrator.u2 .= 0
-            integrator.u3 .= 0
-            integrator.du1 .= 0
-            integrator.du2 .= 0
-            integrator.du3 .= 0
-            integrator.fu1 .= 0
-            integrator.fu2 .= 0
-            integrator.fu3 .= 0
-            integrator.u_tmp1 .= 0
-            integrator.u_tmp2 .= 0
-            integrator.u_tmp3 .= 0
-                
-                #Ui = Un - dt sum A1_ij partial rhs(Uj) - dt/epsilon sum A2_ij (Vj - f(Uj))
-                #Un+1 = Un - dt sum bj partial rhs(Uj) - dt/epsilon sum bj (Vj - f(Uj))
-                
-                t_stage = integrator.t + integrator.dt * alg.c1[1]
-                
-                #   Stage 1
-                #Ui = (ui;vi)
-                #u1 = un
-                #v1 = vn - -dt/epsilon A2_{11} (v1 - f(u1)) 
-              @. integrator.u1 = integrator.u  #u1 = v1 = un
-              @. integrator.fu1 = integrator.u1
-                 wrap_and_perform_projection!(integrator.fu1,integrator.dt,mesh,equations,solver,cache)  # compute f(u1)
-              @. integrator.u1 = integrator.u1 + integrator.dt/relaxation_rate*alg.A2[1,1]*integrator.fu1 # v1 = vn + dt/eps*A2_11 f(u1)
-                
-                divide_relaxed_var!(integrator.u1,integrator.dt,semi,solver,cache,alg.A2[1,1],equations,mesh)  # v1 = (vn + dt/eps*A2_11 f(u1))/(1 + dt/eps A2_11)
-               
-                integrator.f(integrator.du1, integrator.u1, integrator.p, t_stage) # compute RHS(u1,v1)
-
-                # Stage 2        
-                #u2 = un - dt A1_{21} rhs(u1,v1) 
-                #v2 = vn - dt A1_{21} rhs(u1,v1) - dt/epsilon A2_{21} (v1 - f(u1)) -dt/epsilon A2_{22} (v2 - f(u2)) 
-                
-                t_stage = integrator.t + integrator.dt * alg.c1[2]
-           
-                @. integrator.u2 = integrator.u + integrator.dt*alg.A1[2,1]*integrator.du1 # u2 = v2 = Un - dt*A1_22 RHS(U1)
-
-                @. integrator.fu2 = integrator.u2
-                wrap_and_perform_projection!(integrator.fu2,integrator.dt,mesh,equations,solver,cache) # compute f(u2) and setting the source term values to 0 for the cons variables
-                
-                @. integrator.u_tmp1 = integrator.u1
-                set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache,equations,mesh) # computing v1 by setting cons variables to 0
-
-                # v2 = vn - dt/eps*A2_21*(v1-f(u1)) + dt/eps*A2_22*f(u2)
-                @. integrator.u2 = integrator.u2 - integrator.dt/relaxation_rate*alg.A2[2,1]*(integrator.u_tmp1 - integrator.fu1) + integrator.dt*alg.A2[2,2]/relaxation_rate*integrator.fu2
-               
-                divide_relaxed_var!(integrator.u2,integrator.dt,semi,solver,cache,alg.A2[2,2],equations,mesh) # v2 = (vn - dt/eps*A2_21*(v1-f(u1)) + dt/eps*A2_22*f(u2) ) ( 1+dt/eps A2_22)
-
-                integrator.f(integrator.du2, integrator.u2, integrator.p, t_stage)
-               
-                # Stage 3
-                #u3 = un - dt A1_{31} rhs(u1,v1) - dt A1_{32} rhs(u2,v2)
-                #v3 = vn - dt A1_{31} rhs(u1,v1) - dt A1_{32} rhs(u2,v2) - dt/epsilon A2_{31} (v1 - f(u1)) -dt/epsilon A2_{32} (v2 - f(u2)) -dt/epsilon A2_{33} (v3 - f(u3))
-                @. integrator.u3 = integrator.u + integrator.dt*alg.A1[3,1]*integrator.du1 + integrator.dt*alg.A1[3,2]*integrator.du2
-
-                @. integrator.fu3 = integrator.u3
-                wrap_and_perform_projection!(integrator.fu3,integrator.dt,mesh,equations,solver,cache)
-
-                #  @. integrator.u_tmp1 = integrator.u1
-                #  set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache)
-
-                @. integrator.u_tmp2 = integrator.u2
-                set_cons_var_to_zero!(integrator.u_tmp2,semi,solver,cache,equations,mesh)
-
-                @. integrator.u3 = integrator.u3 - integrator.dt/relaxation_rate*alg.A2[3,1]*(integrator.u_tmp1 - integrator.fu1) - integrator.dt/relaxation_rate*alg.A2[3,2]*(integrator.u_tmp2 - integrator.fu2) + integrator.dt*alg.A2[3,3]/relaxation_rate*integrator.fu3
-                
-                divide_relaxed_var!(integrator.u3,integrator.dt,semi,solver,cache,alg.A2[3,3],equations,mesh) 
-                
-                integrator.f(integrator.du3, integrator.u3, integrator.p, t_stage)
-                
-                # Final Stage
-                @. integrator.u = integrator.u + integrator.dt*alg.b[1]*integrator.du1 + integrator.dt*alg.b[2]*integrator.du2 + integrator.dt*alg.b[3]*integrator.du3
-                
-                # Already done that for u_tmp1 and u_tmp2, such that they are v1 = u_tmp1 and v2 = u_tmp2
-                # integrator.u_tmp1 .= integrator.u1              
-                # integrator.u_tmp2 .= integrator.u2
-                @. integrator.u_tmp3 = integrator.u3
-                # set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache)
-                # set_cons_var_to_zero!(integrator.u_tmp2,semi,solver,cache)
-                set_cons_var_to_zero!(integrator.u_tmp3,semi,solver,cache,equations,mesh)
-
-                @. integrator.u = integrator.u - integrator.dt/relaxation_rate*alg.b[1]*(integrator.u_tmp1 - integrator.fu1) - integrator.dt/relaxation_rate*alg.b[2]*(integrator.u_tmp2 - integrator.fu2) - integrator.dt*alg.b[3]/relaxation_rate*(integrator.u_tmp3 - integrator.fu3)
-                # End Stages   
-          #  for stage_callback in alg.stage_callbacks
-          #      stage_callback(integrator.u, integrator, 1)
-          #  end
+        modify_dt_for_tstops!(integrator)
+        # if the next iteration would push the simulation beyond the end time, set dt accordingly
+        if integrator.t + integrator.dt > t_end ||
+           isapprox(integrator.t + integrator.dt, t_end)
+            integrator.dt = t_end - integrator.t
+            terminate!(integrator)
+        end
+        integrator.u1 .= 0
+        integrator.u2 .= 0
+        integrator.u3 .= 0
+        integrator.du1 .= 0
+        integrator.du2 .= 0
+        integrator.du3 .= 0
+        integrator.fu1 .= 0
+        integrator.fu2 .= 0
+        integrator.fu3 .= 0
+        integrator.u_tmp1 .= 0
+        integrator.u_tmp2 .= 0
+        integrator.u_tmp3 .= 0
+
+        #Ui = Un - dt sum A1_ij partial rhs(Uj) - dt/epsilon sum A2_ij (Vj - f(Uj))
+        #Un+1 = Un - dt sum bj partial rhs(Uj) - dt/epsilon sum bj (Vj - f(Uj))
+
+        t_stage = integrator.t + integrator.dt * alg.c1[1]
+
+        #   Stage 1
+        #Ui = (ui;vi)
+        #u1 = un
+        #v1 = vn - -dt/epsilon A2_{11} (v1 - f(u1)) 
+        @. integrator.u1 = integrator.u  #u1 = v1 = un
+        @. integrator.fu1 = integrator.u1
+        wrap_and_perform_projection!(integrator.fu1, integrator.dt, mesh, equations,
+                                     solver, cache)  # compute f(u1)
+        @. integrator.u1 = integrator.u1 +
+                           integrator.dt / relaxation_rate * alg.A2[1, 1] *
+                           integrator.fu1 # v1 = vn + dt/eps*A2_11 f(u1)
+
+        divide_relaxed_var!(integrator.u1, integrator.dt, semi, solver, cache,
+                            alg.A2[1, 1], equations, mesh)  # v1 = (vn + dt/eps*A2_11 f(u1))/(1 + dt/eps A2_11)
+
+        integrator.f(integrator.du1, integrator.u1, integrator.p, t_stage) # compute RHS(u1,v1)
+
+        # Stage 2        
+        #u2 = un - dt A1_{21} rhs(u1,v1) 
+        #v2 = vn - dt A1_{21} rhs(u1,v1) - dt/epsilon A2_{21} (v1 - f(u1)) -dt/epsilon A2_{22} (v2 - f(u2)) 
+
+        t_stage = integrator.t + integrator.dt * alg.c1[2]
+
+        @. integrator.u2 = integrator.u + integrator.dt * alg.A1[2, 1] * integrator.du1 # u2 = v2 = Un - dt*A1_22 RHS(U1)
+
+        @. integrator.fu2 = integrator.u2
+        wrap_and_perform_projection!(integrator.fu2, integrator.dt, mesh, equations,
+                                     solver, cache) # compute f(u2) and setting the source term values to 0 for the cons variables
+
+        @. integrator.u_tmp1 = integrator.u1
+        set_cons_var_to_zero!(integrator.u_tmp1, semi, solver, cache, equations, mesh) # computing v1 by setting cons variables to 0
+
+        # v2 = vn - dt/eps*A2_21*(v1-f(u1)) + dt/eps*A2_22*f(u2)
+        @. integrator.u2 = integrator.u2 -
+                           integrator.dt / relaxation_rate * alg.A2[2, 1] *
+                           (integrator.u_tmp1 - integrator.fu1) +
+                           integrator.dt * alg.A2[2, 2] / relaxation_rate *
+                           integrator.fu2
+
+        divide_relaxed_var!(integrator.u2, integrator.dt, semi, solver, cache,
+                            alg.A2[2, 2], equations, mesh) # v2 = (vn - dt/eps*A2_21*(v1-f(u1)) + dt/eps*A2_22*f(u2) ) ( 1+dt/eps A2_22)
+
+        integrator.f(integrator.du2, integrator.u2, integrator.p, t_stage)
+
+        # Stage 3
+        #u3 = un - dt A1_{31} rhs(u1,v1) - dt A1_{32} rhs(u2,v2)
+        #v3 = vn - dt A1_{31} rhs(u1,v1) - dt A1_{32} rhs(u2,v2) - dt/epsilon A2_{31} (v1 - f(u1)) -dt/epsilon A2_{32} (v2 - f(u2)) -dt/epsilon A2_{33} (v3 - f(u3))
+        @. integrator.u3 = integrator.u +
+                           integrator.dt * alg.A1[3, 1] * integrator.du1 +
+                           integrator.dt * alg.A1[3, 2] * integrator.du2
+
+        @. integrator.fu3 = integrator.u3
+        wrap_and_perform_projection!(integrator.fu3, integrator.dt, mesh, equations,
+                                     solver, cache)
+
+        #  @. integrator.u_tmp1 = integrator.u1
+        #  set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache)
+
+        @. integrator.u_tmp2 = integrator.u2
+        set_cons_var_to_zero!(integrator.u_tmp2, semi, solver, cache, equations, mesh)
+
+        @. integrator.u3 = integrator.u3 -
+                           integrator.dt / relaxation_rate * alg.A2[3, 1] *
+                           (integrator.u_tmp1 - integrator.fu1) -
+                           integrator.dt / relaxation_rate * alg.A2[3, 2] *
+                           (integrator.u_tmp2 - integrator.fu2) +
+                           integrator.dt * alg.A2[3, 3] / relaxation_rate *
+                           integrator.fu3
+
+        divide_relaxed_var!(integrator.u3, integrator.dt, semi, solver, cache,
+                            alg.A2[3, 3], equations, mesh)
+
+        integrator.f(integrator.du3, integrator.u3, integrator.p, t_stage)
+
+        # Final Stage
+        @. integrator.u = integrator.u + integrator.dt * alg.b[1] * integrator.du1 +
+                          integrator.dt * alg.b[2] * integrator.du2 +
+                          integrator.dt * alg.b[3] * integrator.du3
+
+        # Already done that for u_tmp1 and u_tmp2, such that they are v1 = u_tmp1 and v2 = u_tmp2
+        # integrator.u_tmp1 .= integrator.u1              
+        # integrator.u_tmp2 .= integrator.u2
+        @. integrator.u_tmp3 = integrator.u3
+        # set_cons_var_to_zero!(integrator.u_tmp1,semi,solver,cache)
+        # set_cons_var_to_zero!(integrator.u_tmp2,semi,solver,cache)
+        set_cons_var_to_zero!(integrator.u_tmp3, semi, solver, cache, equations, mesh)
+
+        @. integrator.u = integrator.u -
+                          integrator.dt / relaxation_rate * alg.b[1] *
+                          (integrator.u_tmp1 - integrator.fu1) -
+                          integrator.dt / relaxation_rate * alg.b[2] *
+                          (integrator.u_tmp2 - integrator.fu2) -
+                          integrator.dt * alg.b[3] / relaxation_rate *
+                          (integrator.u_tmp3 - integrator.fu3)
+        # End Stages   
+        #  for stage_callback in alg.stage_callbacks
+        #      stage_callback(integrator.u, integrator, 1)
+        #  end
 
         integrator.iter += 1
         integrator.t += integrator.dt
@@ -328,7 +359,7 @@ function solve!(integrator::SimpleIntegratorIMEX)
                 end
             end
         end
-        
+
         # respect maximum number of iterations
         if integrator.iter >= integrator.opts.maxiters && !integrator.finalstep
             @warn "Interrupted. Larger maxiters is needed."
@@ -348,96 +379,95 @@ function solve!(integrator::SimpleIntegratorIMEX)
                                   (prob.u0, integrator.u), prob)
 end
 
-function divide_relaxed_var!(u,dt,semi,solver,cache,aii,equations,mesh)
-    u_wrap = Trixi.wrap_array(u,semi)
-    cycle_divide!(u_wrap,dt,semi,solver,cache,aii,equations,mesh)
+function divide_relaxed_var!(u, dt, semi, solver, cache, aii, equations, mesh)
+    u_wrap = Trixi.wrap_array(u, semi)
+    cycle_divide!(u_wrap, dt, semi, solver, cache, aii, equations, mesh)
     return nothing
 end
 
-function cycle_divide!(u,dt,semi,solver,cache,aii,equations,mesh::TreeMesh2D)
+function cycle_divide!(u, dt, semi, solver, cache, aii, equations, mesh::TreeMesh2D)
     @unpack inverse_jacobian = cache.elements
-                nvars_base = nvariables(equations.equations_base)
-         relaxation_rate = equations.eps_relaxation
-                for element in eachelement(solver,cache)
-                    factor = inverse_jacobian[element]
-                    #factor = 1.0
-                    for j in eachnode(solver),i in eachnode(solver)
-                        for var in (nvars_base+1):(nvars_base*3)
-                        u[var,i,j,element] = u[var,i,j,element]/(1.0+factor*dt/relaxation_rate*aii)    
-                        end
-                    end
-                end
+    nvars_base = nvariables(equations.equations_base)
+    relaxation_rate = equations.eps_relaxation
+    for element in eachelement(solver, cache)
+        factor = inverse_jacobian[element]
+        #factor = 1.0
+        for j in eachnode(solver), i in eachnode(solver)
+            for var in (nvars_base + 1):(nvars_base * 3)
+                u[var, i, j, element] = u[var, i, j, element] /
+                                        (1.0 + factor * dt / relaxation_rate * aii)
+            end
+        end
+    end
 
     return nothing
 end
 
-
-function cycle_divide!(u,dt,semi,solver,cache,aii,equations,mesh::TreeMesh1D)
+function cycle_divide!(u, dt, semi, solver, cache, aii, equations, mesh::TreeMesh1D)
     @unpack inverse_jacobian = cache.elements
-                nvars_base = nvariables(equations.equations_base)
-         relaxation_rate = equations.eps_relaxation
-                for element in eachelement(solver,cache)
-                    factor = inverse_jacobian[element]
-                    factor = 1.0
-                    for i in eachnode(solver)
-                        for var in (nvars_base+1):(nvars_base*2)
-                        u[var,i,element] = u[var,i,element]/(1.0+factor*dt/relaxation_rate*aii)    
-                        end
-                    end
-                end
+    nvars_base = nvariables(equations.equations_base)
+    relaxation_rate = equations.eps_relaxation
+    for element in eachelement(solver, cache)
+        factor = inverse_jacobian[element]
+        factor = 1.0
+        for i in eachnode(solver)
+            for var in (nvars_base + 1):(nvars_base * 2)
+                u[var, i, element] = u[var, i, element] /
+                                     (1.0 + factor * dt / relaxation_rate * aii)
+            end
+        end
+    end
 
     return nothing
 end
 
-function wrap_and_perform_projection!(u,dt,mesh,equations,solver,cache)
+function wrap_and_perform_projection!(u, dt, mesh, equations, solver, cache)
+    u_wrap = wrap_array(u, mesh, equations, solver, cache)
+    perform_projection_sourceterm!(u_wrap, dt, mesh, equations, solver, cache)
 
-                u_wrap = wrap_array(u, mesh, equations, solver, cache)
-                perform_projection_sourceterm!(u_wrap,dt,mesh,equations,solver,cache)
-    
     return nothing
 end
 
-
-function set_cons_var_to_zero!(u,semi,solver,cache,equations, mesh::TreeMesh2D)
-                u_wrap = Trixi.wrap_array(u,semi)
-                nvars_base = nvariables(equations.equations_base)
+function set_cons_var_to_zero!(u, semi, solver, cache, equations, mesh::TreeMesh2D)
+    u_wrap = Trixi.wrap_array(u, semi)
+    nvars_base = nvariables(equations.equations_base)
     @unpack inverse_jacobian = cache.elements
-                for element in eachelement(solver, cache)    
-                    factor = inverse_jacobian[element]
-                 #   factor = 1.0
-                    for j in eachnode(solver), i in eachnode(solver)
-                        for var in 1:nvars_base
-                           u_wrap[var,i,j,element] = 0.0
-                        end
-                        for var in (nvars_base+1):(nvars_base*3)
-                           u_wrap[var,i,j,element] *= factor 
-                        end
-                    end
-                end
+    for element in eachelement(solver, cache)
+        factor = inverse_jacobian[element]
+        #   factor = 1.0
+        for j in eachnode(solver), i in eachnode(solver)
+            for var in 1:nvars_base
+                u_wrap[var, i, j, element] = 0.0
+            end
+            for var in (nvars_base + 1):(nvars_base * 3)
+                u_wrap[var, i, j, element] *= factor
+            end
+        end
+    end
     return nothing
 end
 
-
-function set_cons_var_to_zero!(u,semi,solver,cache,equations, mesh::TreeMesh1D)
-                u_wrap = Trixi.wrap_array(u,semi)
-                nvars_base = nvariables(equations.equations_base)
+function set_cons_var_to_zero!(u, semi, solver, cache, equations, mesh::TreeMesh1D)
+    u_wrap = Trixi.wrap_array(u, semi)
+    nvars_base = nvariables(equations.equations_base)
     @unpack inverse_jacobian = cache.elements
-                for element in eachelement(solver, cache)    
-                    factor = inverse_jacobian[element]
-                    factor = 1.0
-                    for i in eachnode(solver)
-                        for var in 1:nvars_base
-                           u_wrap[var,i,element] = 0.0
-                        end
-                        for var in (nvars_base+1):(nvars_base*2)
-                           u_wrap[var,i,element] *= factor 
-                        end
-                    end
-                end
+    for element in eachelement(solver, cache)
+        factor = inverse_jacobian[element]
+        factor = 1.0
+        for i in eachnode(solver)
+            for var in 1:nvars_base
+                u_wrap[var, i, element] = 0.0
+            end
+            for var in (nvars_base + 1):(nvars_base * 2)
+                u_wrap[var, i, element] *= factor
+            end
+        end
+    end
     return nothing
 end
 
-function perform_projection_sourceterm!(u, dt, mesh::TreeMesh1D, equations::JinXinEquations, dg, cache)
+function perform_projection_sourceterm!(u, dt, mesh::TreeMesh1D,
+                                        equations::JinXinEquations, dg, cache)
 
     # relaxation parameter
     eps = equations.eps_relaxation
@@ -447,7 +477,7 @@ function perform_projection_sourceterm!(u, dt, mesh::TreeMesh1D, equations::JinX
     @unpack inverse_jacobian = cache.elements
     # prepare local storage for projection
     @unpack interpolate_N_to_M, project_M_to_N, filter_modal_to_N = dg.basis
-    nnodes_,nnodes_projection = size(project_M_to_N)
+    nnodes_, nnodes_projection = size(project_M_to_N)
     nVars = nvariables(eq_relax)
     RealT = real(dg)
     u_N = zeros(RealT, nVars, nnodes_)
@@ -464,66 +494,65 @@ function perform_projection_sourceterm!(u, dt, mesh::TreeMesh1D, equations::JinX
     tmp_MxN = zeros(RealT, nVars, nnodes_projection, nnodes_)
     tmp_NxM = zeros(RealT, nVars, nnodes_, nnodes_projection)
 
-#@threaded for element in eachelement(dg, cache)
-for element in eachelement(dg, cache)
-
-                    factor = inverse_jacobian[element]
-                    factor = 1.0
-# get element u_N
-for i in eachnode(dg)
-    u_node = get_node_vars(u, equations, dg, i, element)
-    for v in eachvariable(eq_relax)
-        u_N[v,i] = u_node[v]
-    end
-end
-# bring elemtn u_N to grid (M+1)x(M+1)
-
-multiply_dimensionwise!(u_M,interpolate_N_to_M,u_N)
-
-# compute nodal values of entropy variables w on the M grid
-for i in 1:nnodes_projection
-    u_cons = get_node_vars(u_M, eq_relax, dg, i)
-    w_ij   = cons2entropy(u_cons,eq_relax) 
-    set_node_vars!(w_M_raw,w_ij,eq_relax,dg,i)
-end
-# compute projection of w with M values down to N
-multiply_dimensionwise!(w_M,filter_modal_to_N,w_M_raw)
-
-#multiply_dimensionwise!(w_N,project_M_to_N,w_M)
-#multiply_dimensionwise!(w_M,interpolate_N_to_M,w_N)
+    #@threaded for element in eachelement(dg, cache)
+    for element in eachelement(dg, cache)
+        factor = inverse_jacobian[element]
+        factor = 1.0
+        # get element u_N
+        for i in eachnode(dg)
+            u_node = get_node_vars(u, equations, dg, i, element)
+            for v in eachvariable(eq_relax)
+                u_N[v, i] = u_node[v]
+            end
+        end
+        # bring elemtn u_N to grid (M+1)x(M+1)
 
+        multiply_dimensionwise!(u_M, interpolate_N_to_M, u_N)
 
-# compute nodal values of conservative f,g on the M grid
-for i in 1:nnodes_projection
-    w_i = get_node_vars(w_M, eq_relax, dg, i)
-    u_cons = entropy2cons(w_i, eq_relax)
-    f_cons = flux(u_cons,1,eq_relax)
-    set_node_vars!(f_M,f_cons,eq_relax,dg,i)
-end
-# compute projection of f with M values down to N, same for g
-multiply_dimensionwise!(f_N,project_M_to_N,f_M)
-#@assert nnodes_projection == nnodes(dg) 
-#for j in 1:nnodes_projection, i in 1:nnodes_projection
-#    u_cons = get_node_vars(u_N, eq_relax, dg, i, j)
-#    f_cons = flux(u_cons,1,eq_relax)
-#    set_node_vars!(f_N,f_cons,eq_relax,dg,i,j)
-#    g_cons = flux(u_cons,2,eq_relax)
-#    set_node_vars!(g_N,g_cons,eq_relax,dg,i,j)
-#end
-
-    for i in eachnode(dg)
-        u_node = get_node_vars(u, equations, dg, i, element)
-        # compute compressible Euler fluxes
-        vu = get_node_vars(f_N,eq_relax,dg,i)
-        u_base = get_block_components2(u_node, 1, equations)
-        new_u = factor*SVector(zero(u_base)..., vu...)
-        set_node_vars!(u, new_u, equations, dg, i, element)
+        # compute nodal values of entropy variables w on the M grid
+        for i in 1:nnodes_projection
+            u_cons = get_node_vars(u_M, eq_relax, dg, i)
+            w_ij = cons2entropy(u_cons, eq_relax)
+            set_node_vars!(w_M_raw, w_ij, eq_relax, dg, i)
+        end
+        # compute projection of w with M values down to N
+        multiply_dimensionwise!(w_M, filter_modal_to_N, w_M_raw)
+
+        #multiply_dimensionwise!(w_N,project_M_to_N,w_M)
+        #multiply_dimensionwise!(w_M,interpolate_N_to_M,w_N)
+
+        # compute nodal values of conservative f,g on the M grid
+        for i in 1:nnodes_projection
+            w_i = get_node_vars(w_M, eq_relax, dg, i)
+            u_cons = entropy2cons(w_i, eq_relax)
+            f_cons = flux(u_cons, 1, eq_relax)
+            set_node_vars!(f_M, f_cons, eq_relax, dg, i)
+        end
+        # compute projection of f with M values down to N, same for g
+        multiply_dimensionwise!(f_N, project_M_to_N, f_M)
+        #@assert nnodes_projection == nnodes(dg) 
+        #for j in 1:nnodes_projection, i in 1:nnodes_projection
+        #    u_cons = get_node_vars(u_N, eq_relax, dg, i, j)
+        #    f_cons = flux(u_cons,1,eq_relax)
+        #    set_node_vars!(f_N,f_cons,eq_relax,dg,i,j)
+        #    g_cons = flux(u_cons,2,eq_relax)
+        #    set_node_vars!(g_N,g_cons,eq_relax,dg,i,j)
+        #end
+
+        for i in eachnode(dg)
+            u_node = get_node_vars(u, equations, dg, i, element)
+            # compute compressible Euler fluxes
+            vu = get_node_vars(f_N, eq_relax, dg, i)
+            u_base = get_block_components2(u_node, 1, equations)
+            new_u = factor * SVector(zero(u_base)..., vu...)
+            set_node_vars!(u, new_u, equations, dg, i, element)
+        end
     end
-end
-return nothing
+    return nothing
 end
 
-function perform_projection_sourceterm!(u, dt, mesh::TreeMesh2D, equations::JinXinEquations, dg, cache)
+function perform_projection_sourceterm!(u, dt, mesh::TreeMesh2D,
+                                        equations::JinXinEquations, dg, cache)
 
     # relaxation parameter
     eps = equations.eps_relaxation
@@ -533,7 +562,7 @@ function perform_projection_sourceterm!(u, dt, mesh::TreeMesh2D, equations::JinX
     @unpack inverse_jacobian = cache.elements
     # prepare local storage for projection
     @unpack interpolate_N_to_M, project_M_to_N, filter_modal_to_N = dg.basis
-    nnodes_,nnodes_projection = size(project_M_to_N)
+    nnodes_, nnodes_projection = size(project_M_to_N)
     nVars = nvariables(eq_relax)
     RealT = real(dg)
     u_N = zeros(RealT, nVars, nnodes_, nnodes_)
@@ -550,66 +579,64 @@ function perform_projection_sourceterm!(u, dt, mesh::TreeMesh2D, equations::JinX
     tmp_MxN = zeros(RealT, nVars, nnodes_projection, nnodes_)
     tmp_NxM = zeros(RealT, nVars, nnodes_, nnodes_projection)
 
-#@threaded for element in eachelement(dg, cache)
-for element in eachelement(dg, cache)
-
-                    factor = inverse_jacobian[element]
-                  #  factor = 1.0
-# get element u_N
-for j in eachnode(dg), i in eachnode(dg)
-    u_node = get_node_vars(u, equations, dg, i, j, element)
-    for v in eachvariable(eq_relax)
-        u_N[v,i,j] = u_node[v]
-    end
-end
-# bring elemtn u_N to grid (M+1)x(M+1)
-multiply_dimensionwise!(u_M,interpolate_N_to_M,u_N,tmp_MxN)
-
-# compute nodal values of entropy variables w on the M grid
-for j in 1:nnodes_projection, i in 1:nnodes_projection
-    u_cons = get_node_vars(u_M, eq_relax, dg, i, j)
-    w_ij   = cons2entropy(u_cons,eq_relax) 
-    set_node_vars!(w_M_raw,w_ij,eq_relax,dg,i,j)
-end
-# compute projection of w with M values down to N
-multiply_dimensionwise!(w_M,filter_modal_to_N,w_M_raw,tmp_MxM)
-
-#multiply_dimensionwise!(w_N,project_M_to_N,w_M)
-#multiply_dimensionwise!(w_M,interpolate_N_to_M,w_N)
-
-
-# compute nodal values of conservative f,g on the M grid
-for j in 1:nnodes_projection, i in 1:nnodes_projection
-    w_ij = get_node_vars(w_M, eq_relax, dg, i, j)
-    u_cons = entropy2cons(w_ij, eq_relax)
-    f_cons = flux(u_cons,1,eq_relax)
-    set_node_vars!(f_M,f_cons,eq_relax,dg,i,j)
-    g_cons = flux(u_cons,2,eq_relax)
-    set_node_vars!(g_M,g_cons,eq_relax,dg,i,j)
-end
-# compute projection of f with M values down to N, same for g
-multiply_dimensionwise!(f_N,project_M_to_N,f_M,tmp_NxM)
-multiply_dimensionwise!(g_N,project_M_to_N,g_M,tmp_NxM)
-#@assert nnodes_projection == nnodes(dg) 
-#for j in 1:nnodes_projection, i in 1:nnodes_projection
-#    u_cons = get_node_vars(u_N, eq_relax, dg, i, j)
-#    f_cons = flux(u_cons,1,eq_relax)
-#    set_node_vars!(f_N,f_cons,eq_relax,dg,i,j)
-#    g_cons = flux(u_cons,2,eq_relax)
-#    set_node_vars!(g_N,g_cons,eq_relax,dg,i,j)
-#end
-
-    for j in eachnode(dg), i in eachnode(dg)
-        u_node = get_node_vars(u, equations, dg, i, j, element)
-        # compute compressible Euler fluxes
-        vu = get_node_vars(f_N,eq_relax,dg,i,j)
-        wu = get_node_vars(g_N,eq_relax,dg,i,j)
-        u_base = get_block_components2(u_node, 1, equations)
-        new_u = factor*SVector(zero(u_base)..., vu..., wu...)
-        set_node_vars!(u, new_u, equations, dg, i, j, element)
+    #@threaded for element in eachelement(dg, cache)
+    for element in eachelement(dg, cache)
+        factor = inverse_jacobian[element]
+        #  factor = 1.0
+        # get element u_N
+        for j in eachnode(dg), i in eachnode(dg)
+            u_node = get_node_vars(u, equations, dg, i, j, element)
+            for v in eachvariable(eq_relax)
+                u_N[v, i, j] = u_node[v]
+            end
+        end
+        # bring elemtn u_N to grid (M+1)x(M+1)
+        multiply_dimensionwise!(u_M, interpolate_N_to_M, u_N, tmp_MxN)
+
+        # compute nodal values of entropy variables w on the M grid
+        for j in 1:nnodes_projection, i in 1:nnodes_projection
+            u_cons = get_node_vars(u_M, eq_relax, dg, i, j)
+            w_ij = cons2entropy(u_cons, eq_relax)
+            set_node_vars!(w_M_raw, w_ij, eq_relax, dg, i, j)
+        end
+        # compute projection of w with M values down to N
+        multiply_dimensionwise!(w_M, filter_modal_to_N, w_M_raw, tmp_MxM)
+
+        #multiply_dimensionwise!(w_N,project_M_to_N,w_M)
+        #multiply_dimensionwise!(w_M,interpolate_N_to_M,w_N)
+
+        # compute nodal values of conservative f,g on the M grid
+        for j in 1:nnodes_projection, i in 1:nnodes_projection
+            w_ij = get_node_vars(w_M, eq_relax, dg, i, j)
+            u_cons = entropy2cons(w_ij, eq_relax)
+            f_cons = flux(u_cons, 1, eq_relax)
+            set_node_vars!(f_M, f_cons, eq_relax, dg, i, j)
+            g_cons = flux(u_cons, 2, eq_relax)
+            set_node_vars!(g_M, g_cons, eq_relax, dg, i, j)
+        end
+        # compute projection of f with M values down to N, same for g
+        multiply_dimensionwise!(f_N, project_M_to_N, f_M, tmp_NxM)
+        multiply_dimensionwise!(g_N, project_M_to_N, g_M, tmp_NxM)
+        #@assert nnodes_projection == nnodes(dg) 
+        #for j in 1:nnodes_projection, i in 1:nnodes_projection
+        #    u_cons = get_node_vars(u_N, eq_relax, dg, i, j)
+        #    f_cons = flux(u_cons,1,eq_relax)
+        #    set_node_vars!(f_N,f_cons,eq_relax,dg,i,j)
+        #    g_cons = flux(u_cons,2,eq_relax)
+        #    set_node_vars!(g_N,g_cons,eq_relax,dg,i,j)
+        #end
+
+        for j in eachnode(dg), i in eachnode(dg)
+            u_node = get_node_vars(u, equations, dg, i, j, element)
+            # compute compressible Euler fluxes
+            vu = get_node_vars(f_N, eq_relax, dg, i, j)
+            wu = get_node_vars(g_N, eq_relax, dg, i, j)
+            u_base = get_block_components2(u_node, 1, equations)
+            new_u = factor * SVector(zero(u_base)..., vu..., wu...)
+            set_node_vars!(u, new_u, equations, dg, i, j, element)
+        end
     end
-end
-return nothing
+    return nothing
 end
 
 function get_block_components2(u, n, equations::JinXinEquations)
@@ -617,7 +644,6 @@ function get_block_components2(u, n, equations::JinXinEquations)
     return SVector(ntuple(i -> u[i + (n - 1) * nvars_base], Val(nvars_base)))
 end
 
-
 # get a cache where the RHS can be stored
 get_du(integrator::SimpleIntegratorIMEX) = integrator.du
 get_tmp_cache(integrator::SimpleIntegratorIMEX) = (integrator.r0,)
diff --git a/test/test_dgmulti_1d.jl b/test/test_dgmulti_1d.jl
index 7ac3c735642..1c3cd604df1 100644
--- a/test/test_dgmulti_1d.jl
+++ b/test/test_dgmulti_1d.jl
@@ -52,12 +52,12 @@ end
                         l2=[
                             7.853842541289665e-7,
                             9.609905503440606e-7,
-                            2.832322219966481e-6,
+                            2.832322219966481e-6
                         ] ./ sqrt(2.0),
                         linf=[
                             1.5003758788711963e-6,
                             1.802998748523521e-6,
-                            4.83599270806323e-6,
+                            4.83599270806323e-6
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -76,12 +76,12 @@ end
                         l2=[
                             1.673813320412685,
                             5.980737909458242,
-                            21.587822949251173,
+                            21.587822949251173
                         ],
                         linf=[
                             3.1388039126918064,
                             10.630952212105246,
-                            37.682826521024865,
+                            37.682826521024865
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -117,12 +117,12 @@ end
                         l2=[
                             6.437827414849647e-6,
                             2.1840558851820947e-6,
-                            1.3245669629438228e-5,
+                            1.3245669629438228e-5
                         ],
                         linf=[
                             2.0715843751295537e-5,
                             8.519520630301258e-6,
-                            4.2642194098885255e-5,
+                            4.2642194098885255e-5
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -146,12 +146,12 @@ end
                         l2=[
                             1.8684509287853788e-5,
                             1.0641411823379635e-5,
-                            5.178010291876143e-5,
+                            5.178010291876143e-5
                         ],
                         linf=[
                             6.933493585936645e-5,
                             3.0277366229292113e-5,
-                            0.0002220020568932668,
+                            0.0002220020568932668
                         ])
     show(stdout, semi.solver.basis)
     show(stdout, MIME"text/plain"(), semi.solver.basis)
@@ -169,11 +169,11 @@ end
     @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_fdsbp_periodic.jl"),
                         l2=[
                             9.146929178341782e-7, 1.8997616876521201e-6,
-                            3.991417701005622e-6,
+                            3.991417701005622e-6
                         ],
                         linf=[
                             1.7321089882393892e-6, 3.3252888869128583e-6,
-                            6.525278767988141e-6,
+                            6.525278767988141e-6
                         ])
     show(stdout, semi.solver.basis)
     show(stdout, MIME"text/plain"(), semi.solver.basis)
@@ -210,13 +210,13 @@ end
                             3.03001101100507e-6,
                             1.692177335948727e-5,
                             3.002634351734614e-16,
-                            1.1636653574178203e-15,
+                            1.1636653574178203e-15
                         ],
                         linf=[
                             1.2043401988570679e-5,
                             5.346847010329059e-5,
                             9.43689570931383e-16,
-                            2.220446049250313e-15,
+                            2.220446049250313e-15
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -236,13 +236,13 @@ end
                             1.633271343738687e-5,
                             9.575385661756332e-6,
                             1.2700331443128421e-5,
-                            0.0,
+                            0.0
                         ],
                         linf=[
                             7.304984704381567e-5,
                             5.2365944135601694e-5,
                             6.469559594934893e-5,
-                            0.0,
+                            0.0
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_dgmulti_2d.jl b/test/test_dgmulti_2d.jl
index ab6b505e208..932fb9bc958 100644
--- a/test/test_dgmulti_2d.jl
+++ b/test/test_dgmulti_2d.jl
@@ -23,13 +23,13 @@ isdir(outdir) && rm(outdir, recursive = true)
                             0.0013536930300254945,
                             0.0014315603442106193,
                             0.001431560344211359,
-                            0.0047393341007602625,
+                            0.0047393341007602625
                         ] ./ 2.0,
                         linf=[
                             0.001514260921466004,
                             0.0020623991944839215,
                             0.002062399194485476,
-                            0.004897700392503701,
+                            0.004897700392503701
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -51,13 +51,13 @@ end
                             0.0074706882014934735,
                             0.005306220583603261,
                             0.005306220583613591,
-                            0.014724842607716771,
+                            0.014724842607716771
                         ] ./ 2.0,
                         linf=[
                             0.021563604940952885,
                             0.01359397832530762,
                             0.013593978324845324,
-                            0.03270995869587523,
+                            0.03270995869587523
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -79,13 +79,13 @@ end
                             0.00031892254415307093,
                             0.00033637562986771894,
                             0.0003363756298680649,
-                            0.0011100259064243145,
+                            0.0011100259064243145
                         ] ./ 2.0,
                         linf=[
                             0.001073298211445639,
                             0.0013568139808282087,
                             0.0013568139808290969,
-                            0.0032249020004324613,
+                            0.0032249020004324613
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -107,13 +107,13 @@ end
                             0.007801417730672109,
                             0.00708583561714128,
                             0.0070858356171393,
-                            0.015217574294198809,
+                            0.015217574294198809
                         ] ./ 2.0,
                         linf=[
                             0.011572828457858897,
                             0.013965298735070686,
                             0.01396529873508534,
-                            0.04227683691807904,
+                            0.04227683691807904
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -136,13 +136,13 @@ end
                             0.01280067571168776,
                             0.010607599608273302,
                             0.010607599608239775,
-                            0.026408338014056548,
+                            0.026408338014056548
                         ] ./ 2.0,
                         linf=[
                             0.037983023185674814,
                             0.05321027922533417,
                             0.05321027922608157,
-                            0.13392025411844033,
+                            0.13392025411844033
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -166,13 +166,13 @@ end
                             0.0029373718090697975,
                             0.0030629360605489465,
                             0.003062936060545615,
-                            0.0068486089344859755,
+                            0.0068486089344859755
                         ] ./ 2.0,
                         linf=[
                             0.01360165305316885,
                             0.01267402847925303,
                             0.012674028479251254,
-                            0.02210545278615017,
+                            0.02210545278615017
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -188,11 +188,11 @@ end
     @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_bilinear.jl"),
                         l2=[
                             1.0259432774540821e-5, 9.014087689495575e-6,
-                            9.01408768888544e-6, 2.738953324859446e-5,
+                            9.01408768888544e-6, 2.738953324859446e-5
                         ],
                         linf=[
                             7.362605996297233e-5, 6.874189724781488e-5,
-                            6.874189703509614e-5, 0.00019124355334110277,
+                            6.874189703509614e-5, 0.00019124355334110277
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -208,11 +208,11 @@ end
     @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_curved.jl"),
                         l2=[
                             1.7204593127904542e-5, 1.5921547179522804e-5,
-                            1.5921547180107928e-5, 4.894071422525737e-5,
+                            1.5921547180107928e-5, 4.894071422525737e-5
                         ],
                         linf=[
                             0.00010525416937667842, 0.00010003778102718464,
-                            0.00010003778071832059, 0.0003642628211952825,
+                            0.00010003778071832059, 0.0003642628211952825
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -232,13 +232,13 @@ end
                             3.4666312079259457e-6,
                             3.4392774480368986e-6,
                             3.439277447953705e-6,
-                            1.0965598424665836e-5,
+                            1.0965598424665836e-5
                         ],
                         linf=[
                             1.1327280377004811e-5,
                             1.1343911926253725e-5,
                             1.1343911906935844e-5,
-                            3.679582619220412e-5,
+                            3.679582619220412e-5
                         ],
                         rtol=2 * sqrt(eps()))
     # Ensure that we do not have excessive memory allocations 
@@ -260,13 +260,13 @@ end
                             7.905498158659466e-6,
                             8.731690809663625e-6,
                             8.731690811576996e-6,
-                            2.9113296018693953e-5,
+                            2.9113296018693953e-5
                         ],
                         linf=[
                             3.298811230090237e-5,
                             4.032272476939269e-5,
                             4.032272526011127e-5,
-                            0.00012013725458537294,
+                            0.00012013725458537294
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -284,13 +284,13 @@ end
                             0.0008153911341517156,
                             0.0007768159701964676,
                             0.00047902606811690694,
-                            0.0015551846076348535,
+                            0.0015551846076348535
                         ],
                         linf=[
                             0.0029301131365355726,
                             0.0034427051471457304,
                             0.0028721569841545502,
-                            0.011125365074589944,
+                            0.011125365074589944
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -311,7 +311,7 @@ end
                        4.243843382379403,
                        4.128314378833922,
                        4.128314378397532,
-                       4.081366752807379,
+                       4.081366752807379
                    ], rtol = 0.05)
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -328,11 +328,11 @@ end
                         # division by 2.0 corresponds to normalization by the square root of the size of the domain
                         l2=[
                             0.0007492755162295128, 0.0007641875305302599,
-                            0.0007641875305306243, 0.0024232389721009447,
+                            0.0007641875305306243, 0.0024232389721009447
                         ],
                         linf=[
                             0.0015060064614331736, 0.0019371156800773726,
-                            0.0019371156800769285, 0.004742431684202408,
+                            0.0019371156800769285, 0.004742431684202408
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -348,11 +348,11 @@ end
     @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_triangulate_pkg_mesh.jl"),
                         l2=[
                             2.344076909832665e-6, 1.8610002398709756e-6,
-                            2.4095132179484066e-6, 6.37330249340445e-6,
+                            2.4095132179484066e-6, 6.37330249340445e-6
                         ],
                         linf=[
                             2.509979394305084e-5, 2.2683711321080935e-5,
-                            2.6180377720841363e-5, 5.575278031910713e-5,
+                            2.6180377720841363e-5, 5.575278031910713e-5
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -373,13 +373,13 @@ end
                             0.11140378947116614,
                             0.06598161188703612,
                             0.10448953167839563,
-                            0.16023209181809595,
+                            0.16023209181809595
                         ] ./ 2.0,
                         linf=[
                             0.24033843177853664,
                             0.1659992245272325,
                             0.1235468309508845,
-                            0.26911424973147735,
+                            0.26911424973147735
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -401,13 +401,13 @@ end
                             0.11141270656347146,
                             0.06598888014584121,
                             0.1044902203749932,
-                            0.16023037364774995,
+                            0.16023037364774995
                         ] ./ 2.0,
                         linf=[
                             0.2414760062126462,
                             0.1662111846065654,
                             0.12344140473946856,
-                            0.26978428189564774,
+                            0.26978428189564774
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -425,11 +425,11 @@ end
                         cells_per_dimension=(8, 8), tspan=(0.0, 0.2),
                         l2=[
                             0.07097806723891838, 0.005168550941966817,
-                            0.013820912272220933, 0.03243357220022434,
+                            0.013820912272220933, 0.03243357220022434
                         ],
                         linf=[
                             0.4783395896753895, 0.02244629340135818,
-                            0.04023357731088538, 0.08515807256615027,
+                            0.04023357731088538, 0.08515807256615027
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -448,13 +448,13 @@ end
                             0.006680001611078062,
                             0.02151676347585447,
                             0.010696524235364626,
-                            0.15052841129694647,
+                            0.15052841129694647
                         ],
                         linf=[
                             0.01544756362800248,
                             0.09517304772476806,
                             0.021957154972646383,
-                            0.33773439650806303,
+                            0.33773439650806303
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -473,13 +473,13 @@ end
                             0.05685148333985476,
                             0.04308122135907089,
                             0.043081221359070915,
-                            0.21098131003847664,
+                            0.21098131003847664
                         ],
                         linf=[
                             0.2360672306096051,
                             0.16684417686971842,
                             0.1668441768697189,
-                            0.8572572782118661,
+                            0.8572572782118661
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -498,13 +498,13 @@ end
                             0.05565849298766252,
                             0.042322816017256494,
                             0.042322816017256466,
-                            0.2064212098324083,
+                            0.2064212098324083
                         ],
                         linf=[
                             0.23633287875008924,
                             0.16930148707515683,
                             0.16930148707515688,
-                            0.8587706761131937,
+                            0.8587706761131937
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -532,13 +532,13 @@ end
                             0.0008966318978421226,
                             0.0011418826379110242,
                             0.001141882637910878,
-                            0.0030918374335671393,
+                            0.0030918374335671393
                         ] ./ 2.0,
                         linf=[
                             0.0015281525343109337,
                             0.00162430960401716,
                             0.0016243096040242655,
-                            0.004447503691245913,
+                            0.004447503691245913
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -568,13 +568,13 @@ end
                             0.0014018725496871129,
                             0.0015887007320868913,
                             0.001588700732086329,
-                            0.003870926821031202,
+                            0.003870926821031202
                         ] ./ 2.0,
                         linf=[
                             0.0029541996523780867,
                             0.0034520465226108854,
                             0.003452046522624652,
-                            0.007677153211004928,
+                            0.007677153211004928
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -590,11 +590,11 @@ end
     @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_fdsbp_periodic.jl"),
                         l2=[
                             1.333332033888785e-6, 2.044834627786368e-6,
-                            2.0448346278315884e-6, 5.282189803437435e-6,
+                            2.0448346278315884e-6, 5.282189803437435e-6
                         ],
                         linf=[
                             2.7000151703315822e-6, 3.988595025372632e-6,
-                            3.9885950240403645e-6, 8.848583036513702e-6,
+                            3.9885950240403645e-6, 8.848583036513702e-6
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -614,13 +614,13 @@ end
                             1.333332034149886e-6,
                             2.0448346280892024e-6,
                             2.0448346279766305e-6,
-                            5.282189803510037e-6,
+                            5.282189803510037e-6
                         ],
                         linf=[
                             2.700015170553627e-6,
                             3.988595024262409e-6,
                             3.988595024928543e-6,
-                            8.84858303740188e-6,
+                            8.84858303740188e-6
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -646,13 +646,13 @@ end
                             0.07318831033918516,
                             0.10039910610067465,
                             0.1003991061006748,
-                            0.2642450566234564,
+                            0.2642450566234564
                         ],
                         linf=[
                             0.36081081739439735,
                             0.5244468027020845,
                             0.5244468027020814,
-                            1.2210130256735705,
+                            1.2210130256735705
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -679,13 +679,13 @@ end
                             1.5440402410017893e-5,
                             1.4913189903083485e-5,
                             1.4913189902797073e-5,
-                            2.6104615985156992e-5,
+                            2.6104615985156992e-5
                         ],
                         linf=[
                             4.16334345412217e-5,
                             5.067812788173143e-5,
                             5.067812786885284e-5,
-                            9.887976803746312e-5,
+                            9.887976803746312e-5
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -796,7 +796,7 @@ end
                             0.0018573693138866614,
                             0.0020807798141551166,
                             0.0,
-                            5.301188920230166e-5,
+                            5.301188920230166e-5
                         ],
                         linf=[
                             0.01692601228199253,
@@ -807,7 +807,7 @@ end
                             0.00984964453299233,
                             0.01141708032148614,
                             0.0,
-                            0.0002992631411931389,
+                            0.0002992631411931389
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -827,13 +827,13 @@ end
                             0.0020316462913319046,
                             0.023669019044882247,
                             0.03446194752754684,
-                            1.9333465252381796e-15,
+                            1.9333465252381796e-15
                         ],
                         linf=[
                             0.010385010095182778,
                             0.08750628939565086,
                             0.12088392994348407,
-                            9.325873406851315e-15,
+                            9.325873406851315e-15
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -853,13 +853,13 @@ end
                             0.004180680322490383,
                             0.07026192411558974,
                             0.11815151697006446,
-                            2.329788936151192e-15,
+                            2.329788936151192e-15
                         ],
                         linf=[
                             0.02076003852980346,
                             0.29169601664914424,
                             0.5674183379872275,
-                            1.1546319456101628e-14,
+                            1.1546319456101628e-14
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -881,13 +881,13 @@ end
                             0.0008309356912456799,
                             0.01522451288799231,
                             0.016033969387208476,
-                            1.2820247308150876e-5,
+                            1.2820247308150876e-5
                         ],
                         linf=[
                             0.001888045014140971,
                             0.05466838692127718,
                             0.06345885709961152,
-                            3.3989933098554914e-5,
+                            3.3989933098554914e-5
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
@@ -911,13 +911,13 @@ end
                             7.460461950323111e-5,
                             0.003685589808444905,
                             0.0039101604749887785,
-                            2.0636891126652983e-15,
+                            2.0636891126652983e-15
                         ],
                         linf=[
                             0.000259995400729629,
                             0.0072236204211630906,
                             0.010364675200833062,
-                            1.021405182655144e-14,
+                            1.021405182655144e-14
                         ])
     # Ensure that we do not have excessive memory allocations 
     # (e.g., from type instabilities) 
diff --git a/test/test_dgmulti_3d.jl b/test/test_dgmulti_3d.jl
index fa70b11447c..06cda732df1 100644
--- a/test/test_dgmulti_3d.jl
+++ b/test/test_dgmulti_3d.jl
@@ -20,12 +20,12 @@ isdir(outdir) && rm(outdir, recursive = true)
                         l2=[
                             0.000354593110864001, 0.00041301573702385284,
                             0.00037934556184883277, 0.0003525767114354012,
-                            0.0013917457634530887,
+                            0.0013917457634530887
                         ],
                         linf=[
                             0.0036608123230692513, 0.005625540942772123,
                             0.0030565781898950206, 0.004158099048202857,
-                            0.01932716837214299,
+                            0.01932716837214299
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -47,14 +47,14 @@ end
                             0.017080219613061526,
                             0.016589517840793006,
                             0.015905000907070196,
-                            0.03903416208587798,
+                            0.03903416208587798
                         ] ./ sqrt(8),
                         linf=[
                             0.06856547797256729,
                             0.08225664880340489,
                             0.06925055630951782,
                             0.06913016119820181,
-                            0.19161418499621874,
+                            0.19161418499621874
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -76,14 +76,14 @@ end
                             0.00040146357607439464,
                             0.00040146357607564597,
                             0.000401463576075708,
-                            0.0015749412434154315,
+                            0.0015749412434154315
                         ] ./ sqrt(8),
                         linf=[
                             0.00036910287847780054,
                             0.00042659774184228283,
                             0.0004265977427213574,
                             0.00042659774250686233,
-                            0.00143803344597071,
+                            0.00143803344597071
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -100,11 +100,11 @@ end
                         l2=[
                             0.01835488304593566, 0.024412704052042534,
                             0.02440852041608929, 0.018163145708800853,
-                            0.03934280550797125,
+                            0.03934280550797125
                         ],
                         linf=[
                             0.14862225990793032, 0.2895236816183626, 0.291205448481636,
-                            0.14566031338563246, 0.33153545867790246,
+                            0.14566031338563246, 0.33153545867790246
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -122,12 +122,12 @@ end
                         l2=[
                             0.0026311315195097097, 0.002914422404496567,
                             0.0029138891106640368, 0.002615140832315232,
-                            0.006881528610616624,
+                            0.006881528610616624
                         ],
                         linf=[
                             0.02099611487415931, 0.021314522450152307,
                             0.021288322783027613, 0.020273381695449455,
-                            0.05259874039006007,
+                            0.05259874039006007
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -144,12 +144,12 @@ end
                         l2=[
                             0.00036475807571383924, 0.00043404536371780537,
                             0.0003985850214093045, 0.0003683451584072326,
-                            0.00143503620472638,
+                            0.00143503620472638
                         ],
                         linf=[
                             0.0032278615418719347, 0.005620238272054934,
                             0.0030514261010661237, 0.0039871165455998,
-                            0.019282771780667396,
+                            0.019282771780667396
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -171,14 +171,14 @@ end
                             0.00044397204714598747,
                             0.0004439720471461567,
                             0.0004439720471464591,
-                            0.0016639410646990126,
+                            0.0016639410646990126
                         ] ./ sqrt(8),
                         linf=[
                             0.0003674374460325147,
                             0.0004253921341716982,
                             0.0004253921340786615,
                             0.0004253921340831024,
-                            0.0014333414071048267,
+                            0.0014333414071048267
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -202,14 +202,14 @@ end
                             0.002491315550718859,
                             0.0024913155507195303,
                             0.002491315550720031,
-                            0.008585818982343299,
+                            0.008585818982343299
                         ] ./ sqrt(8),
                         linf=[
                             0.003810078279323559,
                             0.004998778644230928,
                             0.004998778643986235,
                             0.0049987786444081195,
-                            0.016455044373650196,
+                            0.016455044373650196
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -229,14 +229,14 @@ end
                             0.06219350883951729,
                             0.062193508839503864,
                             0.08121963221634831,
-                            0.07082703570808184,
+                            0.07082703570808184
                         ],
                         linf=[
                             0.0007893509649821162,
                             0.1481953939988877,
                             0.14819539399791176,
                             0.14847291108358926,
-                            0.21313533492212855,
+                            0.21313533492212855
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -257,14 +257,14 @@ end
                             0.062193508839511434,
                             0.06219350883949677,
                             0.08121963221635205,
-                            0.07082703570765223,
+                            0.07082703570765223
                         ],
                         linf=[
                             0.000789350964946367,
                             0.14819539399525805,
                             0.14819539399590542,
                             0.14847291107658706,
-                            0.21313533492059378,
+                            0.21313533492059378
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -291,14 +291,14 @@ end
                             0.003318758964118284,
                             0.0033187589641182386,
                             0.003318758964118252,
-                            0.012689348410504253,
+                            0.012689348410504253
                         ],
                         linf=[
                             0.006118565824207778,
                             0.008486456080185167,
                             0.008486456080180282,
                             0.008486456080185611,
-                            0.035113544599208346,
+                            0.035113544599208346
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -327,14 +327,14 @@ end
                             0.004944363692625066,
                             0.0049443636926250435,
                             0.004944363692625037,
-                            0.01788695279620914,
+                            0.01788695279620914
                         ],
                         linf=[
                             0.013861851418853988,
                             0.02126572106620328,
                             0.021265721066209053,
                             0.021265721066210386,
-                            0.0771455289446683,
+                            0.0771455289446683
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -353,14 +353,14 @@ end
                             6.884047859361093e-5,
                             6.884047859363204e-5,
                             6.884047859361148e-5,
-                            0.000201107274617457,
+                            0.000201107274617457
                         ],
                         linf=[
                             0.0001337520020225913,
                             0.00011571467799287305,
                             0.0001157146779990903,
                             0.00011571467799376123,
-                            0.0003446082308800058,
+                            0.0003446082308800058
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_mpi_p4est_2d.jl b/test/test_mpi_p4est_2d.jl
index 6d66bc68a26..605099a8dd6 100644
--- a/test/test_mpi_p4est_2d.jl
+++ b/test/test_mpi_p4est_2d.jl
@@ -136,13 +136,13 @@ const EXAMPLES_DIR = pkgdir(Trixi, "examples", "p4est_2d_dgsem")
                                 0.0034516244508588046,
                                 0.0023420334036925493,
                                 0.0024261923964557187,
-                                0.004731710454271893,
+                                0.004731710454271893
                             ],
                             linf=[
                                 0.04155789011775046,
                                 0.024772109862748914,
                                 0.03759938693042297,
-                                0.08039824959535657,
+                                0.08039824959535657
                             ])
 
         # Ensure that we do not have excessive memory allocations
diff --git a/test/test_mpi_p4est_3d.jl b/test/test_mpi_p4est_3d.jl
index cca9093ec51..5b34476aa16 100644
--- a/test/test_mpi_p4est_3d.jl
+++ b/test/test_mpi_p4est_3d.jl
@@ -129,14 +129,14 @@ const EXAMPLES_DIR = pkgdir(Trixi, "examples", "p4est_3d_dgsem")
                                 4.4993257426833716e-5,
                                 5.10588457841744e-5,
                                 5.102840924036687e-5,
-                                0.00019986264001630542,
+                                0.00019986264001630542
                             ],
                             linf=[
                                 0.0016987332417202072,
                                 0.003622956808262634,
                                 0.002029576258317789,
                                 0.0024206977281964193,
-                                0.008526972236273522,
+                                0.008526972236273522
                             ],
                             tspan=(0.0, 0.01))
 
@@ -158,14 +158,14 @@ const EXAMPLES_DIR = pkgdir(Trixi, "examples", "p4est_3d_dgsem")
                                 0.0014733349038567685,
                                 0.00147333490385685,
                                 0.001473334903856929,
-                                0.0028149479453087093,
+                                0.0028149479453087093
                             ],
                             linf=[
                                 0.008070806335238156,
                                 0.009007245083113125,
                                 0.009007245083121784,
                                 0.009007245083102688,
-                                0.01562861968368434,
+                                0.01562861968368434
                             ],
                             tspan=(0.0, 1.0))
 
@@ -186,14 +186,14 @@ const EXAMPLES_DIR = pkgdir(Trixi, "examples", "p4est_3d_dgsem")
                                 0.006192950051354618,
                                 0.005970674274073704,
                                 0.005965831290564327,
-                                0.02628875593094754,
+                                0.02628875593094754
                             ],
                             linf=[
                                 0.3326911600075694,
                                 0.2824952141320467,
                                 0.41401037398065543,
                                 0.45574161423218573,
-                                0.8099577682187109,
+                                0.8099577682187109
                             ],
                             tspan=(0.0, 0.2),
                             coverage_override=(polydeg = 3,)) # Prevent long compile time in CI
@@ -216,14 +216,14 @@ const EXAMPLES_DIR = pkgdir(Trixi, "examples", "p4est_3d_dgsem")
                                 0.004122532789279737,
                                 0.0042448149597303616,
                                 0.0036361316700401765,
-                                0.007389845952982495,
+                                0.007389845952982495
                             ],
                             linf=[
                                 0.04530610539892499,
                                 0.02765695110527666,
                                 0.05670295599308606,
                                 0.048396544302230504,
-                                0.1154589758186293,
+                                0.1154589758186293
                             ])
 
         # Ensure that we do not have excessive memory allocations
diff --git a/test/test_mpi_t8code_2d.jl b/test/test_mpi_t8code_2d.jl
index 7c7fc03898c..5bd5f41c7f4 100644
--- a/test/test_mpi_t8code_2d.jl
+++ b/test/test_mpi_t8code_2d.jl
@@ -118,13 +118,13 @@ const EXAMPLES_DIR = pkgdir(Trixi, "examples", "t8code_2d_dgsem")
                                 0.0034516244508588046,
                                 0.0023420334036925493,
                                 0.0024261923964557187,
-                                0.004731710454271893,
+                                0.004731710454271893
                             ],
                             linf=[
                                 0.04155789011775046,
                                 0.024772109862748914,
                                 0.03759938693042297,
-                                0.08039824959535657,
+                                0.08039824959535657
                             ])
 
         # Ensure that we do not have excessive memory allocations
diff --git a/test/test_mpi_t8code_3d.jl b/test/test_mpi_t8code_3d.jl
index a15690a7629..b8fe4b29a6a 100644
--- a/test/test_mpi_t8code_3d.jl
+++ b/test/test_mpi_t8code_3d.jl
@@ -96,14 +96,14 @@ const EXAMPLES_DIR = pkgdir(Trixi, "examples", "t8code_3d_dgsem")
                                 4.4993257426833716e-5,
                                 5.10588457841744e-5,
                                 5.102840924036687e-5,
-                                0.00019986264001630542,
+                                0.00019986264001630542
                             ],
                             linf=[
                                 0.0016987332417202072,
                                 0.003622956808262634,
                                 0.002029576258317789,
                                 0.0024206977281964193,
-                                0.008526972236273522,
+                                0.008526972236273522
                             ],
                             tspan=(0.0, 0.01))
 
@@ -125,14 +125,14 @@ const EXAMPLES_DIR = pkgdir(Trixi, "examples", "t8code_3d_dgsem")
                                 0.0014733349038567685,
                                 0.00147333490385685,
                                 0.001473334903856929,
-                                0.0028149479453087093,
+                                0.0028149479453087093
                             ],
                             linf=[
                                 0.008070806335238156,
                                 0.009007245083113125,
                                 0.009007245083121784,
                                 0.009007245083102688,
-                                0.01562861968368434,
+                                0.01562861968368434
                             ],
                             tspan=(0.0, 1.0))
 
@@ -153,14 +153,14 @@ const EXAMPLES_DIR = pkgdir(Trixi, "examples", "t8code_3d_dgsem")
                                 0.006192950051354618,
                                 0.005970674274073704,
                                 0.005965831290564327,
-                                0.02628875593094754,
+                                0.02628875593094754
                             ],
                             linf=[
                                 0.3326911600075694,
                                 0.2824952141320467,
                                 0.41401037398065543,
                                 0.45574161423218573,
-                                0.8099577682187109,
+                                0.8099577682187109
                             ],
                             tspan=(0.0, 0.2),
                             coverage_override=(polydeg = 3,)) # Prevent long compile time in CI
diff --git a/test/test_mpi_tree.jl b/test/test_mpi_tree.jl
index 6351a405b5d..611df97780e 100644
--- a/test/test_mpi_tree.jl
+++ b/test/test_mpi_tree.jl
@@ -104,12 +104,12 @@ CI_ON_WINDOWS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.iswindows()
                                 l2=[
                                     0.00015687751816056159,
                                     0.001025986772217084,
-                                    0.0010259867722169909,
+                                    0.0010259867722169909
                                 ],
                                 linf=[
                                     0.0011986956416591976,
                                     0.006423873516411049,
-                                    0.006423873516411049,
+                                    0.006423873516411049
                                 ])
         end
     end
@@ -120,12 +120,12 @@ CI_ON_WINDOWS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.iswindows()
                             l2=[
                                 8.61813235543625e-8,
                                 5.619399844542781e-7,
-                                5.6193998447443e-7,
+                                5.6193998447443e-7
                             ],
                             linf=[
                                 1.124861862180196e-6,
                                 8.622436471039663e-6,
-                                8.622436470151484e-6,
+                                8.622436470151484e-6
                             ])
     end
 
@@ -134,12 +134,12 @@ CI_ON_WINDOWS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.iswindows()
                             l2=[
                                 8.523077653955306e-6,
                                 2.8779323653065056e-5,
-                                5.4549427691297846e-5,
+                                5.4549427691297846e-5
                             ],
                             linf=[
                                 5.5227409524905013e-5,
                                 0.0001454489597927185,
-                                0.00032396328684569653,
+                                0.00032396328684569653
                             ])
     end
 
@@ -149,12 +149,12 @@ CI_ON_WINDOWS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.iswindows()
                                 l2=[
                                     5.868147556427088e-6,
                                     3.80517927324465e-5,
-                                    3.805179273249344e-5,
+                                    3.805179273249344e-5
                                 ],
                                 linf=[
                                     3.701965498725812e-5,
                                     0.0002122422943138247,
-                                    0.00021224229431116015,
+                                    0.00021224229431116015
                                 ],
                                 atol=2.0e-12) #= required for CI on macOS =#
         end
@@ -170,13 +170,13 @@ CI_ON_WINDOWS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.iswindows()
                                     9.321181253186009e-7,
                                     1.4181210743438511e-6,
                                     1.4181210743487851e-6,
-                                    4.824553091276693e-6,
+                                    4.824553091276693e-6
                                 ],
                                 linf=[
                                     9.577246529612893e-6,
                                     1.1707525976012434e-5,
                                     1.1707525976456523e-5,
-                                    4.8869615580926506e-5,
+                                    4.8869615580926506e-5
                                 ],
                                 rtol=2000 * sqrt(eps()))
         end
@@ -191,13 +191,13 @@ CI_ON_WINDOWS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.iswindows()
                                     4.8226610349853444e-5,
                                     4.117706709270575e-5,
                                     4.1177067092959676e-5,
-                                    0.00012205252427437389,
+                                    0.00012205252427437389
                                 ],
                                 linf=[
                                     0.0003543874851490436,
                                     0.0002973166773747593,
                                     0.0002973166773760916,
-                                    0.001154106793870291,
+                                    0.001154106793870291
                                 ],
                                 # Let this test run until the end to cover the time-dependent lines
                                 # of the indicator and the MPI-specific AMR code.
@@ -213,13 +213,13 @@ CI_ON_WINDOWS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.iswindows()
                                     2.259440511766445e-6,
                                     2.318888155713922e-6,
                                     2.3188881557894307e-6,
-                                    6.3327863238858925e-6,
+                                    6.3327863238858925e-6
                                 ],
                                 linf=[
                                     1.498738264560373e-5,
                                     1.9182011928187137e-5,
                                     1.918201192685487e-5,
-                                    6.0526717141407005e-5,
+                                    6.0526717141407005e-5
                                 ],
                                 rtol=0.001)
         end
@@ -232,13 +232,13 @@ CI_ON_WINDOWS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.iswindows()
                                     0.061751715597716854,
                                     0.05018223615408711,
                                     0.05018989446443463,
-                                    0.225871559730513,
+                                    0.225871559730513
                                 ],
                                 linf=[
                                     0.29347582879608825,
                                     0.31081249232844693,
                                     0.3107380389947736,
-                                    1.0540358049885143,
+                                    1.0540358049885143
                                 ])
 
             @testset "error-based step size control" begin
@@ -255,13 +255,13 @@ CI_ON_WINDOWS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.iswindows()
                         0.061653630426688116,
                         0.05006930431098764,
                         0.05007694316484242,
-                        0.22550689872331683,
+                        0.22550689872331683
                     ] rtol=1.0e-4
                     @test errors.linf≈[
                         0.28516937484583693,
                         0.2983633696512788,
                         0.297812036335975,
-                        1.027368795517512,
+                        1.027368795517512
                     ] rtol=1.0e-4
                 end
             end
@@ -274,13 +274,13 @@ CI_ON_WINDOWS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.iswindows()
                                 0.00013492249515826863,
                                 0.006615696236378061,
                                 0.006782108219800376,
-                                0.016393831451740604,
+                                0.016393831451740604
                             ],
                             linf=[
                                 0.0020782600954247776,
                                 0.08150078921935999,
                                 0.08663621974991986,
-                                0.2829930622010579,
+                                0.2829930622010579
                             ],
                             rtol=0.001)
     end
@@ -292,13 +292,13 @@ CI_ON_WINDOWS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.iswindows()
                                 0.0017208369388227673,
                                 0.09628684992237334,
                                 0.09620157717330868,
-                                0.1758809552387432,
+                                0.1758809552387432
                             ],
                             linf=[
                                 0.021869936355319086,
                                 0.9956698009442038,
                                 1.0002507727219028,
-                                2.223249697515648,
+                                2.223249697515648
                             ])
     end
 
@@ -309,13 +309,13 @@ CI_ON_WINDOWS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.iswindows()
                                 5.051719943432265e-5,
                                 0.0022574259317084747,
                                 0.0021755998463189713,
-                                0.004346492398617521,
+                                0.004346492398617521
                             ],
                             linf=[
                                 0.0012880114865917447,
                                 0.03857193149447702,
                                 0.031090457959835893,
-                                0.12125130332971423,
+                                0.12125130332971423
                             ],
                             coverage_override=(maxiters = 6,))
     end
@@ -328,13 +328,13 @@ CI_ON_WINDOWS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.iswindows()
                                     0.0017158367642679273,
                                     0.09619888722871434,
                                     0.09616432767924141,
-                                    0.17553381166255197,
+                                    0.17553381166255197
                                 ],
                                 linf=[
                                     0.021853862449723982,
                                     0.9878047229255944,
                                     0.9880191167111795,
-                                    2.2154030488035588,
+                                    2.2154030488035588
                                 ],
                                 rtol=0.001)
         end
diff --git a/test/test_p4est_2d.jl b/test/test_p4est_2d.jl
index fbc94fdfd6d..242ed2eeee0 100644
--- a/test/test_p4est_2d.jl
+++ b/test/test_p4est_2d.jl
@@ -115,13 +115,13 @@ end
                             0.0034516244508588046,
                             0.0023420334036925493,
                             0.0024261923964557187,
-                            0.004731710454271893,
+                            0.004731710454271893
                         ],
                         linf=[
                             0.04155789011775046,
                             0.024772109862748914,
                             0.03759938693042297,
-                            0.08039824959535657,
+                            0.08039824959535657
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -139,7 +139,7 @@ end
                             2.063350241405049e-15,
                             1.8571016296925367e-14,
                             3.1769447886391905e-14,
-                            1.4104095258528071e-14,
+                            1.4104095258528071e-14
                         ],
                         linf=[1.9539925233402755e-14, 2e-12, 4.8e-12, 4e-12],
                         atol=2.0e-12,)
@@ -159,13 +159,13 @@ end
                             9.53984675e-02,
                             1.05633455e-01,
                             1.05636158e-01,
-                            3.50747237e-01,
+                            3.50747237e-01
                         ],
                         linf=[
                             2.94357464e-01,
                             4.07893014e-01,
                             3.97334516e-01,
-                            1.08142520e+00,
+                            1.08142520e+00
                         ],
                         tspan=(0.0, 1.0))
     # Ensure that we do not have excessive memory allocations
@@ -184,13 +184,13 @@ end
                             0.09527896382082567,
                             0.10557894830184737,
                             0.10559379376154387,
-                            0.3503791205165925,
+                            0.3503791205165925
                         ],
                         linf=[
                             0.2733486454092644,
                             0.3877283966722886,
                             0.38650482703821426,
-                            1.0053712251056308,
+                            1.0053712251056308
                         ],
                         tspan=(0.0, 1.0),
                         volume_flux=flux_chandrashekar)
@@ -210,13 +210,13 @@ end
                             3.76149952e-01,
                             2.46970327e-01,
                             2.46970327e-01,
-                            1.28889042e+00,
+                            1.28889042e+00
                         ],
                         linf=[
                             1.22139001e+00,
                             1.17742626e+00,
                             1.17742626e+00,
-                            6.20638482e+00,
+                            6.20638482e+00
                         ],
                         tspan=(0.0, 0.3))
     # Ensure that we do not have excessive memory allocations
@@ -235,13 +235,13 @@ end
                             0.4229948321239887,
                             0.2559038337457483,
                             0.2559038337457484,
-                            1.2990046683564136,
+                            1.2990046683564136
                         ],
                         linf=[
                             1.4989357969730492,
                             1.325456585141623,
                             1.3254565851416251,
-                            6.331283015053501,
+                            6.331283015053501
                         ],
                         surface_flux=flux_hllc,
                         tspan=(0.0, 0.3))
@@ -261,13 +261,13 @@ end
                             0.40853279043747015,
                             0.25356771650524296,
                             0.2535677165052422,
-                            1.2984601729572691,
+                            1.2984601729572691
                         ],
                         linf=[
                             1.3840909333784284,
                             1.3077772519086124,
                             1.3077772519086157,
-                            6.298798630968632,
+                            6.298798630968632
                         ],
                         surface_flux=flux_hlle,
                         tspan=(0.0, 0.3))
@@ -287,13 +287,13 @@ end
                             6.32183914e-01,
                             3.86914231e-01,
                             3.86869171e-01,
-                            1.06575688e+00,
+                            1.06575688e+00
                         ],
                         linf=[
                             2.76020890e+00,
                             2.32659890e+00,
                             2.32580837e+00,
-                            2.15778188e+00,
+                            2.15778188e+00
                         ],
                         tspan=(0.0, 0.3),
                         coverage_override=(maxiters = 6,))
@@ -313,13 +313,13 @@ end
                             0.020291447969983396,
                             0.017479614254319948,
                             0.011387644425613437,
-                            0.0514420126021293,
+                            0.0514420126021293
                         ],
                         linf=[
                             0.3582779022370579,
                             0.32073537890751663,
                             0.221818049107692,
-                            0.9209559420400415,
+                            0.9209559420400415
                         ],
                         tspan=(0.0, 0.15))
     # Ensure that we do not have excessive memory allocations
@@ -338,13 +338,13 @@ end
                             0.004194875320833303,
                             0.003785140699353966,
                             0.0013696609105790351,
-                            0.03265268616046424,
+                            0.03265268616046424
                         ],
                         linf=[
                             2.0585399781442852,
                             2.213428805506876,
                             3.862362410419163,
-                            17.75187237459251,
+                            17.75187237459251
                         ],
                         tspan=(0.0, 0.0001),
                         rtol=1.0e-7,
@@ -367,13 +367,13 @@ end
                             0.051359355290192046,
                             0.4266034859911273,
                             0.2438304855475594,
-                            4.11487176105527,
+                            4.11487176105527
                         ],
                         linf=[
                             6.902000373057003,
                             53.95714139820832,
                             24.241610279839758,
-                            561.0630401858057,
+                            561.0630401858057
                         ],
                         tspan=(0.0, 0.0001),
                         skip_coverage=true)
@@ -395,13 +395,13 @@ end
                             0.026798021911954406,
                             0.05118546368109259,
                             0.03206703583774831,
-                            0.19680026567208672,
+                            0.19680026567208672
                         ],
                         linf=[
                             3.653905721692421,
                             4.285035711361009,
                             6.8544353186357645,
-                            31.748244912257533,
+                            31.748244912257533
                         ],
                         tspan=(0.0, 0.001),
                         skip_coverage=true)
@@ -421,11 +421,11 @@ end
     @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_NACA6412airfoil_mach2.jl"),
                         l2=[
                             0.19107654776276498, 0.3545913719444839,
-                            0.18492730895077583, 0.817927213517244,
+                            0.18492730895077583, 0.817927213517244
                         ],
                         linf=[
                             2.5397624311491946, 2.7075156425517917, 2.200980534211764,
-                            9.031153939238115,
+                            9.031153939238115
                         ],
                         tspan=(0.0, 0.1))
     # Ensure that we do not have excessive memory allocations
@@ -444,13 +444,13 @@ end
                             0.00024871265138964204,
                             0.0003370077102132591,
                             0.0003370077102131964,
-                            0.0007231525513793697,
+                            0.0007231525513793697
                         ],
                         linf=[
                             0.0015813032944647087,
                             0.0020494288423820173,
                             0.0020494288423824614,
-                            0.004793821195083758,
+                            0.004793821195083758
                         ],
                         tspan=(0.0, 0.1))
     # Ensure that we do not have excessive memory allocations
@@ -469,13 +469,13 @@ end
                             9.168126407325352e-5,
                             0.0009795410115453788,
                             0.002546408320320785,
-                            3.941189812642317e-6,
+                            3.941189812642317e-6
                         ],
                         linf=[
                             0.0009903782521019089,
                             0.0059752684687262025,
                             0.010941106525454103,
-                            1.2129488214718265e-5,
+                            1.2129488214718265e-5
                         ],
                         tspan=(0.0, 0.1))
     # Ensure that we do not have excessive memory allocations
@@ -540,13 +540,13 @@ end
                             0.006047938590548741,
                             0.0040953286019907035,
                             0.004222698522497298,
-                            0.006269492499336128,
+                            0.006269492499336128
                         ],
                         linf=[
                             0.06386175207349379,
                             0.0378926444850457,
                             0.041759728067967065,
-                            0.06430136016259067,
+                            0.06430136016259067
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -564,13 +564,13 @@ end
                             0.00011914390523852561,
                             0.00010776028621724485,
                             6.139954358305467e-5,
-                            0.0003067693731825959,
+                            0.0003067693731825959
                         ],
                         linf=[
                             0.1653075586200805,
                             0.1868437275544909,
                             0.09772818519679008,
-                            0.4311796171737692,
+                            0.4311796171737692
                         ], tspan=(0.0, 0.001))
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -601,11 +601,11 @@ end
                                  "elixir_euler_NACA0012airfoil_mach085.jl"),
                         l2=[
                             5.371568111383228e-7, 6.4158131303956445e-6,
-                            1.0324346542348325e-5, 0.0006348064933187732,
+                            1.0324346542348325e-5, 0.0006348064933187732
                         ],
                         linf=[
                             0.0016263400091978443, 0.028471072159724428,
-                            0.02986133204785877, 1.9481060511014872,
+                            0.02986133204785877, 1.9481060511014872
                         ],
                         base_level=0, med_level=1, max_level=1,
                         tspan=(0.0, 0.0001),
diff --git a/test/test_p4est_3d.jl b/test/test_p4est_3d.jl
index 7483cde2752..e99440871dc 100644
--- a/test/test_p4est_3d.jl
+++ b/test/test_p4est_3d.jl
@@ -132,14 +132,14 @@ end
                             4.4993257426833716e-5,
                             5.10588457841744e-5,
                             5.102840924036687e-5,
-                            0.00019986264001630542,
+                            0.00019986264001630542
                         ],
                         linf=[
                             0.0016987332417202072,
                             0.003622956808262634,
                             0.002029576258317789,
                             0.0024206977281964193,
-                            0.008526972236273522,
+                            0.008526972236273522
                         ],
                         tspan=(0.0, 0.01))
     # Ensure that we do not have excessive memory allocations
@@ -160,14 +160,14 @@ end
                             0.0014733349038567685,
                             0.00147333490385685,
                             0.001473334903856929,
-                            0.0028149479453087093,
+                            0.0028149479453087093
                         ],
                         linf=[
                             0.008070806335238156,
                             0.009007245083113125,
                             0.009007245083121784,
                             0.009007245083102688,
-                            0.01562861968368434,
+                            0.01562861968368434
                         ],
                         tspan=(0.0, 1.0))
     # Ensure that we do not have excessive memory allocations
@@ -187,14 +187,14 @@ end
                             1.941857343642486e-14,
                             2.0232366394187278e-14,
                             2.3381518645408552e-14,
-                            7.083114561232324e-14,
+                            7.083114561232324e-14
                         ],
                         linf=[
                             7.269740365245525e-13,
                             3.289868377720495e-12,
                             4.440087186807773e-12,
                             3.8686831516088205e-12,
-                            9.412914891981927e-12,
+                            9.412914891981927e-12
                         ],
                         tspan=(0.0, 0.03))
     # Ensure that we do not have excessive memory allocations
@@ -214,14 +214,14 @@ end
                             4.889826056731442e-15,
                             2.2921260987087585e-15,
                             4.268460455702414e-15,
-                            1.1356712092620279e-14,
+                            1.1356712092620279e-14
                         ],
                         linf=[
                             7.749356711883593e-14,
                             2.8792246364872653e-13,
                             1.1121659149182506e-13,
                             3.3228975127030935e-13,
-                            9.592326932761353e-13,
+                            9.592326932761353e-13
                         ],
                         tspan=(0.0, 0.1))
     # Ensure that we do not have excessive memory allocations
@@ -240,12 +240,12 @@ end
                         l2=[
                             6.530157034651212e-16, 1.6057829680004379e-15,
                             3.31107455378537e-15, 3.908829498281281e-15,
-                            5.048390610424672e-15,
+                            5.048390610424672e-15
                         ],
                         linf=[
                             4.884981308350689e-15, 1.1921019726912618e-14,
                             1.5432100042289676e-14, 2.298161660974074e-14,
-                            6.039613253960852e-14,
+                            6.039613253960852e-14
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -264,14 +264,14 @@ end
                             4.889826056731442e-15,
                             2.2921260987087585e-15,
                             4.268460455702414e-15,
-                            1.1356712092620279e-14,
+                            1.1356712092620279e-14
                         ],
                         linf=[
                             7.749356711883593e-14,
                             4.513472928735496e-13,
                             2.9790059308254513e-13,
                             1.057154364048074e-12,
-                            1.6271428648906294e-12,
+                            1.6271428648906294e-12
                         ],
                         tspan=(0.0, 0.1),
                         surface_flux=flux_hllc)
@@ -292,14 +292,14 @@ end
                             0.006192950051354618,
                             0.005970674274073704,
                             0.005965831290564327,
-                            0.02628875593094754,
+                            0.02628875593094754
                         ],
                         linf=[
                             0.3326911600075694,
                             0.2824952141320467,
                             0.41401037398065543,
                             0.45574161423218573,
-                            0.8099577682187109,
+                            0.8099577682187109
                         ],
                         tspan=(0.0, 0.2),
                         coverage_override=(polydeg = 3,)) # Prevent long compile time in CI
@@ -320,14 +320,14 @@ end
                             0.006216054794583285,
                             0.006020401857347216,
                             0.006019175682769779,
-                            0.026228080232814154,
+                            0.026228080232814154
                         ],
                         linf=[
                             0.3169376449662026,
                             0.28950510175646726,
                             0.4402523227566396,
                             0.4869168122387365,
-                            0.7999141641954051,
+                            0.7999141641954051
                         ],
                         tspan=(0.0, 0.2),
                         volume_flux=flux_chandrashekar,
@@ -349,14 +349,14 @@ end
                             4.33260474e-02,
                             4.33260474e-02,
                             4.33260474e-02,
-                            3.75260911e-01,
+                            3.75260911e-01
                         ],
                         linf=[
                             7.45329845e-01,
                             3.21754792e-01,
                             3.21754792e-01,
                             3.21754792e-01,
-                            4.76151527e+00,
+                            4.76151527e+00
                         ],
                         tspan=(0.0, 0.3),
                         coverage_override=(polydeg = 3,)) # Prevent long compile time in CI
@@ -377,14 +377,14 @@ end
                             0.04863386374672001,
                             0.048633863746720116,
                             0.04863386374672032,
-                            0.3751015774232693,
+                            0.3751015774232693
                         ],
                         linf=[
                             0.789241521871487,
                             0.42046970270100276,
                             0.42046970270100276,
                             0.4204697027010028,
-                            4.730877375538398,
+                            4.730877375538398
                         ],
                         tspan=(0.0, 0.3),
                         surface_flux=flux_hlle)
@@ -406,14 +406,14 @@ end
                             5.4254175153621895e-6,
                             5.677698851333843e-6,
                             5.8017136892469794e-6,
-                            1.3637854615117974e-5,
+                            1.3637854615117974e-5
                         ],
                         linf=[
                             0.00013996924184311865,
                             0.00013681539559939893,
                             0.00013681539539733834,
                             0.00013681539541021692,
-                            0.00016833038543762058,
+                            0.00016833038543762058
                         ],
                         # Decrease tolerance of adaptive time stepping to get similar results across different systems
                         abstol=1.0e-11, reltol=1.0e-11,
@@ -436,14 +436,14 @@ end
                             3.8630261900166194e-5,
                             3.8672287531936816e-5,
                             3.6865116098660796e-5,
-                            0.05508620970403884,
+                            0.05508620970403884
                         ],
                         linf=[
                             2.268845333053271e-6,
                             0.000531462302113539,
                             0.0005314624461298934,
                             0.0005129931254772464,
-                            0.7942778058932163,
+                            0.7942778058932163
                         ],
                         tspan=(0.0, 2e2),
                         coverage_override=(trees_per_cube_face = (1, 1), polydeg = 3)) # Prevent long compile time in CI
@@ -465,14 +465,14 @@ end
                             0.00021710076010951073,
                             0.0004386796338203878,
                             0.00020836270267103122,
-                            0.07601887903440395,
+                            0.07601887903440395
                         ],
                         linf=[
                             1.9107530539574924e-5,
                             0.02980358831035801,
                             0.048476331898047564,
                             0.02200137344113612,
-                            4.848310144356219,
+                            4.848310144356219
                         ],
                         tspan=(0.0, 1e2),
                         # Decrease tolerance of adaptive time stepping to get similar results across different systems
@@ -496,14 +496,14 @@ end
                             0.004122532789279737,
                             0.0042448149597303616,
                             0.0036361316700401765,
-                            0.007389845952982495,
+                            0.007389845952982495
                         ],
                         linf=[
                             0.04530610539892499,
                             0.02765695110527666,
                             0.05670295599308606,
                             0.048396544302230504,
-                            0.1154589758186293,
+                            0.1154589758186293
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -571,11 +571,11 @@ end
                         l2=[
                             0.04452389418193219, 0.03688186699434862,
                             0.03688186699434861, 0.03688186699434858,
-                            0.044523894181932186,
+                            0.044523894181932186
                         ],
                         linf=[
                             0.2295447498696467, 0.058369658071546704,
-                            0.05836965807154648, 0.05836965807154648, 0.2295447498696468,
+                            0.05836965807154648, 0.05836965807154648, 0.2295447498696468
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_paper_self_gravitating_gas_dynamics.jl b/test/test_paper_self_gravitating_gas_dynamics.jl
index 10b4f93ad74..63a7a2b6ded 100644
--- a/test/test_paper_self_gravitating_gas_dynamics.jl
+++ b/test/test_paper_self_gravitating_gas_dynamics.jl
@@ -21,13 +21,13 @@ const EXAMPLES_DIR = pkgdir(Trixi, "examples", "paper_self_gravitating_gas_dynam
                             0.0001740977055972079,
                             0.0003369355182519592,
                             0.0003369355182518708,
-                            0.0006099171220334989,
+                            0.0006099171220334989
                         ],
                         linf=[
                             0.001079347149189669,
                             0.0018836938381321389,
                             0.001883693838132583,
-                            0.003971575376718217,
+                            0.003971575376718217
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -45,13 +45,13 @@ end
                             1.7187201161597772e-5,
                             2.678065111772951e-5,
                             2.678065111783027e-5,
-                            4.952504160091526e-5,
+                            4.952504160091526e-5
                         ],
                         linf=[
                             0.0001501749544159381,
                             0.00016549482504535362,
                             0.00016549482504601976,
-                            0.0004372960291432193,
+                            0.0004372960291432193
                         ],
                         polydeg=4)
     # Ensure that we do not have excessive memory allocations
@@ -69,12 +69,12 @@ end
                         l2=[
                             0.003154024896093942,
                             0.012394432074951856,
-                            0.02185973823794725,
+                            0.02185973823794725
                         ],
                         linf=[
                             0.01731850928579215,
                             0.07843510773347553,
-                            0.11242300176349201,
+                            0.11242300176349201
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -91,12 +91,12 @@ end
                         l2=[
                             0.0002511283012128458,
                             0.0008808243846610255,
-                            0.0016313343228567005,
+                            0.0016313343228567005
                         ],
                         linf=[
                             0.0017290715087938668,
                             0.003129184465704738,
-                            0.01000728849316701,
+                            0.01000728849316701
                         ],
                         polydeg=4)
     # Ensure that we do not have excessive memory allocations
@@ -115,13 +115,13 @@ end
                             0.00024871265138964204,
                             0.0003370077102132591,
                             0.0003370077102131964,
-                            0.0007231525513793697,
+                            0.0007231525513793697
                         ],
                         linf=[
                             0.0015813032944647087,
                             0.0020494288423820173,
                             0.0020494288423824614,
-                            0.004793821195083758,
+                            0.004793821195083758
                         ],
                         tspan=(0.0, 0.1))
     # Ensure that we do not have excessive memory allocations
@@ -140,13 +140,13 @@ end
                             1.9537712148648045e-5,
                             2.7564396197947587e-5,
                             2.7564396197967635e-5,
-                            5.688838772067586e-5,
+                            5.688838772067586e-5
                         ],
                         linf=[
                             0.00012335710672761735,
                             0.00020086268350816283,
                             0.00020086268350727465,
-                            0.0004962155455632278,
+                            0.0004962155455632278
                         ],
                         tspan=(0.0, 0.1), polydeg=4)
     # Ensure that we do not have excessive memory allocations
@@ -165,13 +165,13 @@ end
                             0.00024871265138959434,
                             0.000337007710281087,
                             0.0003370077102811394,
-                            0.0007231525515231289,
+                            0.0007231525515231289
                         ],
                         linf=[
                             0.0015813032941613958,
                             0.002049428843978518,
                             0.0020494288439798503,
-                            0.004793821198143977,
+                            0.004793821198143977
                         ],
                         tspan=(0.0, 0.1),
                         timestep_gravity=Trixi.timestep_gravity_erk51_3Sstar!)
@@ -191,13 +191,13 @@ end
                             0.0002487126513894034,
                             0.00033700771023049785,
                             0.00033700771023048245,
-                            0.0007231525514158737,
+                            0.0007231525514158737
                         ],
                         linf=[
                             0.0015813032943847727,
                             0.002049428842844314,
                             0.0020494288428452023,
-                            0.004793821195971937,
+                            0.004793821195971937
                         ],
                         tspan=(0.0, 0.1),
                         timestep_gravity=Trixi.timestep_gravity_erk53_3Sstar!)
@@ -218,13 +218,13 @@ end
                             10733.63378538114,
                             13356.780607423452,
                             1.6722844879795038e-6,
-                            26834.076821148774,
+                            26834.076821148774
                         ],
                         linf=[
                             15194.296424901113,
                             18881.481685044182,
                             6.809726988008751e-6,
-                            37972.99700513482,
+                            37972.99700513482
                         ],
                         tspan=(0.0, 0.1),
                         atol=4.0e-6)
@@ -245,13 +245,13 @@ end
                             10734.598193238024,
                             13358.217234481384,
                             1.911011743371934e-6,
-                            26836.487841241516,
+                            26836.487841241516
                         ],
                         linf=[
                             15195.661004798487,
                             18883.512035906537,
                             7.867948710816926e-6,
-                            37976.408478975296,
+                            37976.408478975296
                         ],
                         tspan=(0.0, 0.1),
                         atol=4.0e-6, # the background field is reatively large, so this corresponds to our usual atol
@@ -304,13 +304,13 @@ end
                             0.046315994852653024,
                             0.0650818006233669,
                             0.06508180062336677,
-                            0.4896707211656037,
+                            0.4896707211656037
                         ],
                         linf=[
                             2.3874843337593776,
                             4.07876384374792,
                             4.07876384374792,
-                            16.23914384809855,
+                            16.23914384809855
                         ],
                         tspan=(0.0, 0.05),
                         coverage_override=(maxiters = 2,))
@@ -331,13 +331,13 @@ end
                             0.00289222135995042,
                             0.013724813590853825,
                             0.013724813590853832,
-                            0.05822904710548214,
+                            0.05822904710548214
                         ],
                         linf=[
                             0.26361780693997594,
                             1.3908873830688688,
                             1.3908873830688688,
-                            4.066701303607613,
+                            4.066701303607613
                         ],
                         tspan=(0.0, 0.005), initial_refinement_level=8,
                         amr_callback=TrivialCallback())
diff --git a/test/test_parabolic_1d.jl b/test/test_parabolic_1d.jl
index 38bebdcce1d..062e6363a2f 100644
--- a/test/test_parabolic_1d.jl
+++ b/test/test_parabolic_1d.jl
@@ -67,12 +67,12 @@ end
                         l2=[
                             0.0001133835907077494,
                             6.226282245610444e-5,
-                            0.0002820171699999139,
+                            0.0002820171699999139
                         ],
                         linf=[
                             0.0006255102377159538,
                             0.00036195501456059986,
-                            0.0016147729485886941,
+                            0.0016147729485886941
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -94,12 +94,12 @@ end
                         l2=[
                             0.00011310615871043463,
                             6.216495207074201e-5,
-                            0.00028195843110817814,
+                            0.00028195843110817814
                         ],
                         linf=[
                             0.0006240837363233886,
                             0.0003616694320713876,
-                            0.0016147339542413874,
+                            0.0016147339542413874
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -117,12 +117,12 @@ end
                         l2=[
                             0.00047023310868269237,
                             0.00032181736027057234,
-                            0.0014966266486095025,
+                            0.0014966266486095025
                         ],
                         linf=[
                             0.002996375101363302,
                             0.0028639041695096433,
-                            0.012691132694550689,
+                            0.012691132694550689
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -144,12 +144,12 @@ end
                         l2=[
                             0.0004608500483647771,
                             0.00032431091222851285,
-                            0.0015159733360626845,
+                            0.0015159733360626845
                         ],
                         linf=[
                             0.002754803146635787,
                             0.0028567713744625124,
-                            0.012941793784197131,
+                            0.012941793784197131
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -170,12 +170,12 @@ end
                         l2=[
                             2.5278845598681636e-5,
                             2.5540145802666872e-5,
-                            0.0001211867535580826,
+                            0.0001211867535580826
                         ],
                         linf=[
                             0.0001466387202588848,
                             0.00019422419092429135,
-                            0.0009556449835592673,
+                            0.0009556449835592673
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -197,12 +197,12 @@ end
                         l2=[
                             2.4593521887223632e-5,
                             2.3928212900127102e-5,
-                            0.00011252332663824173,
+                            0.00011252332663824173
                         ],
                         linf=[
                             0.00011850494672183132,
                             0.00018987676556476442,
-                            0.0009597461727750556,
+                            0.0009597461727750556
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_parabolic_2d.jl b/test/test_parabolic_2d.jl
index 7749a0c4780..c69030fa50a 100644
--- a/test/test_parabolic_2d.jl
+++ b/test/test_parabolic_2d.jl
@@ -127,13 +127,13 @@ end
                             0.0015355076812510957,
                             0.0033843168272696756,
                             0.0036531858107443434,
-                            0.009948436427519214,
+                            0.009948436427519214
                         ],
                         linf=[
                             0.005522560467190019,
                             0.013425258500730508,
                             0.013962115643482154,
-                            0.027483102120502423,
+                            0.027483102120502423
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -153,13 +153,13 @@ end
                             0.004255101916146187,
                             0.011118488923215765,
                             0.011281831283462686,
-                            0.03573656447388509,
+                            0.03573656447388509
                         ],
                         linf=[
                             0.015071710669706473,
                             0.04103132025858458,
                             0.03990424085750277,
-                            0.1309401718598764,
+                            0.1309401718598764
                         ],)
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -179,13 +179,13 @@ end
                             0.00022156125227115747,
                             0.028318325921401,
                             0.009509168701070296,
-                            0.028267900513550506,
+                            0.028267900513550506
                         ],
                         linf=[
                             0.001562278941298234,
                             0.14886653390744856,
                             0.0716323565533752,
-                            0.19472785105241996,
+                            0.19472785105241996
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -276,13 +276,13 @@ end
                             0.002111672530658797,
                             0.0034322351490857846,
                             0.0038742528195910416,
-                            0.012469246082568561,
+                            0.012469246082568561
                         ],
                         linf=[
                             0.012006418939223495,
                             0.035520871209746126,
                             0.024512747492231427,
-                            0.11191122588756564,
+                            0.11191122588756564
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -306,13 +306,13 @@ end
                             0.002103629650383915,
                             0.003435843933396454,
                             0.00386735987813341,
-                            0.012670355349235728,
+                            0.012670355349235728
                         ],
                         linf=[
                             0.012006261793147788,
                             0.03550212518982032,
                             0.025107947319661185,
-                            0.11647078036571124,
+                            0.11647078036571124
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -333,13 +333,13 @@ end
                             0.0021403742517389513,
                             0.0034258287094908572,
                             0.0038915122886898517,
-                            0.012506862343013842,
+                            0.012506862343013842
                         ],
                         linf=[
                             0.012244412004628336,
                             0.03507559186162224,
                             0.024580892345558894,
-                            0.11425600758350107,
+                            0.11425600758350107
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -364,13 +364,13 @@ end
                             0.0021349737347844907,
                             0.0034301388278203033,
                             0.0038928324474291572,
-                            0.012693611436230873,
+                            0.012693611436230873
                         ],
                         linf=[
                             0.01224423627586213,
                             0.035054066314102905,
                             0.025099598504931965,
-                            0.11795616324751634,
+                            0.11795616324751634
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -391,13 +391,13 @@ end
                             0.0021116725306633594,
                             0.0034322351490827557,
                             0.0038742528196093542,
-                            0.012469246082526909,
+                            0.012469246082526909
                         ],
                         linf=[
                             0.012006418939291663,
                             0.035520871209594115,
                             0.024512747491801577,
-                            0.11191122588591007,
+                            0.11191122588591007
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -454,13 +454,13 @@ end
                             0.00015144571529699053,
                             0.018766076072331623,
                             0.007065070765652574,
-                            0.0208399005734258,
+                            0.0208399005734258
                         ],
                         linf=[
                             0.0014523369373669048,
                             0.12366779944955864,
                             0.05532450997115432,
-                            0.16099927805328207,
+                            0.16099927805328207
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -479,13 +479,13 @@ end
                             0.005155557460409018,
                             0.4048446934219344,
                             0.43040068852937047,
-                            1.1255130552079322,
+                            1.1255130552079322
                         ],
                         linf=[
                             0.03287305649809613,
                             1.1656793717431393,
                             1.3917196016246969,
-                            8.146587380114653,
+                            8.146587380114653
                         ],
                         tspan=(0.0, 0.7))
 end
@@ -497,13 +497,13 @@ end
                             0.001452856280034929,
                             0.0007538775539989481,
                             0.0007538775539988681,
-                            0.011035506549989587,
+                            0.011035506549989587
                         ],
                         linf=[
                             0.003291912841311362,
                             0.002986462478096974,
                             0.0029864624780958637,
-                            0.0231954665514138,
+                            0.0231954665514138
                         ],
                         tspan=(0.0, 1.0))
 end
@@ -616,13 +616,13 @@ end
                             0.0003811978985836709,
                             0.0005874314969169538,
                             0.0009142898787923481,
-                            0.0011613918899727263,
+                            0.0011613918899727263
                         ],
                         linf=[
                             0.0021633623982135752,
                             0.009484348274135372,
                             0.004231572066492217,
-                            0.011661660275365193,
+                            0.011661660275365193
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -642,13 +642,13 @@ end
                             0.00040364962558511795,
                             0.0005869762481506936,
                             0.00091488537427274,
-                            0.0011984191566376762,
+                            0.0011984191566376762
                         ],
                         linf=[
                             0.0024993634941723464,
                             0.009487866203944725,
                             0.004505829506628117,
-                            0.011634902776245681,
+                            0.011634902776245681
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -668,13 +668,13 @@ end
                             0.00028716166408816073,
                             0.08101204560401647,
                             0.02099595625377768,
-                            0.05008149754143295,
+                            0.05008149754143295
                         ],
                         linf=[
                             0.014804500261322406,
                             0.9513271652357098,
                             0.7223919625994717,
-                            1.4846907331004786,
+                            1.4846907331004786
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -692,11 +692,11 @@ end
                         tspan=(0.0, 1.0),
                         l2=[
                             0.0005323841980601085, 0.07892044543547208,
-                            0.02909671646389337, 0.11717468256112017,
+                            0.02909671646389337, 0.11717468256112017
                         ],
                         linf=[
                             0.006045292737899444, 0.9233292581786228,
-                            0.7982129977236198, 1.6864546235292153,
+                            0.7982129977236198, 1.6864546235292153
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_parabolic_3d.jl b/test/test_parabolic_3d.jl
index 863daeeaf35..2690a08cbb9 100644
--- a/test/test_parabolic_3d.jl
+++ b/test/test_parabolic_3d.jl
@@ -21,14 +21,14 @@ isdir(outdir) && rm(outdir, recursive = true)
                             0.000659263490965341,
                             0.0007776436127362806,
                             0.0006592634909662951,
-                            0.0038073628897809185,
+                            0.0038073628897809185
                         ],
                         linf=[
                             0.0017039861523615585,
                             0.002628561703560073,
                             0.003531057425112172,
                             0.0026285617036090336,
-                            0.015587829540351095,
+                            0.015587829540351095
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -49,14 +49,14 @@ end
                             0.0021322235533273513,
                             0.0027873741447455194,
                             0.0024587473070627423,
-                            0.00997836818019202,
+                            0.00997836818019202
                         ],
                         linf=[
                             0.006341750402837576,
                             0.010306014252246865,
                             0.01520740250924979,
                             0.010968264045485565,
-                            0.047454389831591115,
+                            0.047454389831591115
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -77,14 +77,14 @@ end
                             0.015589736382772248,
                             0.015589736382771884,
                             0.021943924667273653,
-                            0.01927370280244222,
+                            0.01927370280244222
                         ],
                         linf=[
                             0.0006268463584697681,
                             0.03218881662749007,
                             0.03218881662697948,
                             0.053872495395614256,
-                            0.05183822000984151,
+                            0.05183822000984151
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -105,14 +105,14 @@ end
                             0.002653449504302844,
                             0.002898264205184629,
                             0.002653449504302853,
-                            0.009511572365085706,
+                            0.009511572365085706
                         ],
                         linf=[
                             0.013680656759085918,
                             0.0356910450154318,
                             0.023526343547736236,
                             0.035691045015431855,
-                            0.11482570604041165,
+                            0.11482570604041165
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -137,14 +137,14 @@ end
                             0.0026554367897028506,
                             0.002892730402724066,
                             0.002655436789702817,
-                            0.009596351796609566,
+                            0.009596351796609566
                         ],
                         linf=[
                             0.013680508110645473,
                             0.035673446359424356,
                             0.024024936779729028,
                             0.03567344635942474,
-                            0.11839497110809383,
+                            0.11839497110809383
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -166,14 +166,14 @@ end
                             0.0026524750946399327,
                             0.00290860030832445,
                             0.0026524750946399396,
-                            0.009509568981439294,
+                            0.009509568981439294
                         ],
                         linf=[
                             0.01387936112914212,
                             0.03526260609304053,
                             0.023554197097368997,
                             0.035262606093040896,
-                            0.11719963716509518,
+                            0.11719963716509518
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -199,14 +199,14 @@ end
                             0.002654768259143932,
                             0.002907031063651286,
                             0.002654768259143901,
-                            0.009587792882971452,
+                            0.009587792882971452
                         ],
                         linf=[
                             0.01387919380137137,
                             0.035244084526358944,
                             0.02398614622061363,
                             0.03524408452635828,
-                            0.12005056512506407,
+                            0.12005056512506407
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -228,14 +228,14 @@ end
                             0.002653449504301736,
                             0.0028982642051960006,
                             0.0026534495043017384,
-                            0.009511572364811033,
+                            0.009511572364811033
                         ],
                         linf=[
                             0.013680656758949583,
                             0.035691045015224444,
                             0.02352634354676752,
                             0.035691045015223424,
-                            0.11482570603751441,
+                            0.11482570603751441
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -273,14 +273,14 @@ end
         0.0006473493036803503,
         0.0007705277238213672,
         0.0006280517917198335,
-        0.000903927789884075,
+        0.000903927789884075
     ]
     @test linf_error ≈ [
         0.0023694155365339142,
         0.010634932622402863,
         0.006772070862236412,
         0.010640551561726901,
-        0.019256819038719897,
+        0.019256819038719897
     ]
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -301,14 +301,14 @@ end
                             0.015684268393762454,
                             0.01568426839376248,
                             0.021991909545192333,
-                            0.02825413672911425,
+                            0.02825413672911425
                         ],
                         linf=[
                             0.0008410587892853094,
                             0.04740176181772552,
                             0.04740176181772507,
                             0.07483494924031157,
-                            0.150181591534448,
+                            0.150181591534448
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -348,14 +348,14 @@ end
         0.006266480163542894,
         0.006266489911815533,
         0.008829222305770226,
-        0.0032859166842329228,
+        0.0032859166842329228
     ]
     @test linf_error ≈ [
         0.0002943968186086554,
         0.013876261980614757,
         0.013883619864959451,
         0.025201279960491936,
-        0.018679364985388247,
+        0.018679364985388247
     ]
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -377,14 +377,14 @@ end
                             0.000461877794472316,
                             0.0005424899076052261,
                             0.0004618777944723191,
-                            0.0015846392581126832,
+                            0.0015846392581126832
                         ],
                         linf=[
                             0.0025241668929956163,
                             0.006308461681816373,
                             0.004334939663169113,
                             0.006308461681804009,
-                            0.03176343480493493,
+                            0.03176343480493493
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -406,14 +406,14 @@ end
                             0.015637861347119624,
                             0.015637861347119687,
                             0.022024699158522523,
-                            0.009711013505930812,
+                            0.009711013505930812
                         ],
                         linf=[
                             0.0006696415247340326,
                             0.03442565722527785,
                             0.03442565722577423,
                             0.06295407168705314,
-                            0.032857472756916195,
+                            0.032857472756916195
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -464,14 +464,14 @@ end
                             0.03437058632045721,
                             0.03437058632045671,
                             0.041038898400430075,
-                            0.30978593009044153,
+                            0.30978593009044153
                         ],
                         linf=[
                             0.004173569912012121,
                             0.09168674832979556,
                             0.09168674832975021,
                             0.12129218723807476,
-                            0.8433893297612087,
+                            0.8433893297612087
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -490,11 +490,11 @@ end
                         l2=[
                             0.009472104410520866, 0.0017883742549557149,
                             0.0017883742549557147, 0.0017883742549557196,
-                            0.024388540048562748,
+                            0.024388540048562748
                         ],
                         linf=[
                             0.6782397526873181, 0.17663702154066238,
-                            0.17663702154066266, 0.17663702154066238, 1.7327849844825238,
+                            0.17663702154066266, 0.17663702154066238, 1.7327849844825238
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_structured_1d.jl b/test/test_structured_1d.jl
index f97696d089a..7e2150245af 100644
--- a/test/test_structured_1d.jl
+++ b/test/test_structured_1d.jl
@@ -79,7 +79,7 @@ end
                         linf=[
                             3.1661064228547255,
                             0.16256363944708607,
-                            2.667676158812806,
+                            2.667676158812806
                         ],
                         tspan=(0.0, 12.5),
                         surface_flux=FluxHLL(min_max_speed_davis))
@@ -99,12 +99,12 @@ end
                         l2=[
                             2.2527950196212703e-8,
                             1.8187357193835156e-8,
-                            7.705669939973104e-8,
+                            7.705669939973104e-8
                         ],
                         linf=[
                             1.6205433861493646e-7,
                             1.465427772462391e-7,
-                            5.372255111879554e-7,
+                            5.372255111879554e-7
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -122,12 +122,12 @@ end
                         l2=[
                             3.8099996914101204e-6,
                             1.6745575717106341e-6,
-                            7.732189531480852e-6,
+                            7.732189531480852e-6
                         ],
                         linf=[
                             1.2971473393186272e-5,
                             9.270328934274374e-6,
-                            3.092514399671842e-5,
+                            3.092514399671842e-5
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_structured_2d.jl b/test/test_structured_2d.jl
index 4b3aa5c87e4..41d271eae8c 100644
--- a/test/test_structured_2d.jl
+++ b/test/test_structured_2d.jl
@@ -35,13 +35,13 @@ end
                             7.816742843336293e-6,
                             7.816742843340186e-6,
                             7.816742843025513e-6,
-                            7.816742843061526e-6,
+                            7.816742843061526e-6
                         ],
                         linf=[
                             6.314906965276812e-5,
                             6.314906965187994e-5,
                             6.31490696496595e-5,
-                            6.314906965032563e-5,
+                            6.314906965032563e-5
                         ],
                         coverage_override=(maxiters = 10^5,))
 
@@ -51,13 +51,13 @@ end
             7.816742843336293e-6,
             7.816742843340186e-6,
             7.816742843025513e-6,
-            7.816742843061526e-6,
+            7.816742843061526e-6
         ] rtol=1.0e-4
         @test errors.linf≈[
             6.314906965276812e-5,
             6.314906965187994e-5,
             6.31490696496595e-5,
-            6.314906965032563e-5,
+            6.314906965032563e-5
         ] rtol=1.0e-4
         # Ensure that we do not have excessive memory allocations
         # (e.g., from type instabilities)
@@ -74,11 +74,11 @@ end
     @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_advection_meshview.jl"),
                         l2=[
                             8.311947673083206e-6,
-                            8.311947673068427e-6,
+                            8.311947673068427e-6
                         ],
                         linf=[
                             6.627000273318195e-5,
-                            6.62700027264096e-5,
+                            6.62700027264096e-5
                         ],
                         coverage_override=(maxiters = 10^5,))
 
@@ -296,14 +296,14 @@ end
                             1.51236516273878e-5,
                             2.4544918394022538e-5,
                             5.904791661362391e-6,
-                            1.1809583322724782e-5,
+                            1.1809583322724782e-5
                         ],
                         linf=[
                             8.393471747591974e-5,
                             8.393471748258108e-5,
                             0.00015028562494778797,
                             3.504466610437795e-5,
-                            7.00893322087559e-5,
+                            7.00893322087559e-5
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -322,13 +322,13 @@ end
                             9.321181253186009e-7,
                             1.4181210743438511e-6,
                             1.4181210743487851e-6,
-                            4.824553091276693e-6,
+                            4.824553091276693e-6
                         ],
                         linf=[
                             9.577246529612893e-6,
                             1.1707525976012434e-5,
                             1.1707525976456523e-5,
-                            4.8869615580926506e-5,
+                            4.8869615580926506e-5
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -349,13 +349,13 @@ end
                                 9.321181253186009e-7,
                                 1.4181210743438511e-6,
                                 1.4181210743487851e-6,
-                                4.824553091276693e-6,
+                                4.824553091276693e-6
                             ],
                             linf=[
                                 9.577246529612893e-6,
                                 1.1707525976012434e-5,
                                 1.1707525976456523e-5,
-                                4.8869615580926506e-5,
+                                4.8869615580926506e-5
                             ],
                             alpha=0.0)
         # Ensure that we do not have excessive memory allocations
@@ -376,13 +376,13 @@ end
                                 9.321188057029291e-7,
                                 1.3195106906473365e-6,
                                 1.510307360354032e-6,
-                                4.82455408101712e-6,
+                                4.82455408101712e-6
                             ],
                             linf=[
                                 9.57723626271445e-6,
                                 1.0480225511866337e-5,
                                 1.2817828088262928e-5,
-                                4.886962393513272e-5,
+                                4.886962393513272e-5
                             ],
                             alpha=0.1)
         # Ensure that we do not have excessive memory allocations
@@ -403,13 +403,13 @@ end
                                 9.32127973957391e-7,
                                 8.477824799744325e-7,
                                 1.8175286311402784e-6,
-                                4.824562453521076e-6,
+                                4.824562453521076e-6
                             ],
                             linf=[
                                 9.576898420737834e-6,
                                 5.057704352218195e-6,
                                 1.635260719945464e-5,
-                                4.886978754825577e-5,
+                                4.886978754825577e-5
                             ],
                             alpha=0.2 * pi)
         # Ensure that we do not have excessive memory allocations
@@ -430,13 +430,13 @@ end
                                 9.321181253186009e-7,
                                 1.4181210743438511e-6,
                                 1.4181210743487851e-6,
-                                4.824553091276693e-6,
+                                4.824553091276693e-6
                             ],
                             linf=[
                                 9.577246529612893e-6,
                                 1.1707525976012434e-5,
                                 1.1707525976456523e-5,
-                                4.8869615580926506e-5,
+                                4.8869615580926506e-5
                             ],
                             alpha=0.5 * pi)
         # Ensure that we do not have excessive memory allocations
@@ -457,13 +457,13 @@ end
                             1.1167802955144833e-5,
                             1.0805775514153104e-5,
                             1.953188337010932e-5,
-                            5.5033856574857146e-5,
+                            5.5033856574857146e-5
                         ],
                         linf=[
                             8.297006495561199e-5,
                             8.663281475951301e-5,
                             0.00012264160606778596,
-                            0.00041818802502024965,
+                            0.00041818802502024965
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -482,13 +482,13 @@ end
                             2.991891317562739e-5,
                             3.6063177168283174e-5,
                             2.7082941743640572e-5,
-                            0.00011414695350996946,
+                            0.00011414695350996946
                         ],
                         linf=[
                             0.0002437454930492855,
                             0.0003438936171968887,
                             0.00024217622945688078,
-                            0.001266380414757684,
+                            0.001266380414757684
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -506,13 +506,13 @@ end
                             2.063350241405049e-15,
                             1.8571016296925367e-14,
                             3.1769447886391905e-14,
-                            1.4104095258528071e-14,
+                            1.4104095258528071e-14
                         ],
                         linf=[
                             1.9539925233402755e-14,
                             2.9791447087035294e-13,
                             6.502853810985698e-13,
-                            2.7000623958883807e-13,
+                            2.7000623958883807e-13
                         ],
                         atol=7.0e-13)
     # Ensure that we do not have excessive memory allocations
@@ -532,13 +532,13 @@ end
                             2.063350241405049e-15,
                             1.8571016296925367e-14,
                             3.1769447886391905e-14,
-                            1.4104095258528071e-14,
+                            1.4104095258528071e-14
                         ],
                         linf=[
                             1.9539925233402755e-14,
                             2.9791447087035294e-13,
                             6.502853810985698e-13,
-                            2.7000623958883807e-13,
+                            2.7000623958883807e-13
                         ],
                         atol=7.0e-13)
     # Ensure that we do not have excessive memory allocations
@@ -558,13 +558,13 @@ end
                             2.259440511901724e-6,
                             2.3188881559075347e-6,
                             2.3188881559568146e-6,
-                            6.332786324137878e-6,
+                            6.332786324137878e-6
                         ],
                         linf=[
                             1.4987382622067003e-5,
                             1.918201192063762e-5,
                             1.918201192019353e-5,
-                            6.052671713430158e-5,
+                            6.052671713430158e-5
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -582,13 +582,13 @@ end
                             0.03774907669925568,
                             0.02845190575242045,
                             0.028262802829412605,
-                            0.13785915638851698,
+                            0.13785915638851698
                         ],
                         linf=[
                             0.3368296929764073,
                             0.27644083771519773,
                             0.27990039685141377,
-                            1.1971436487402016,
+                            1.1971436487402016
                         ],
                         tspan=(0.0, 0.3))
     # Ensure that we do not have excessive memory allocations
@@ -607,13 +607,13 @@ end
                             3.69856202e-01,
                             2.35242180e-01,
                             2.41444928e-01,
-                            1.28807120e+00,
+                            1.28807120e+00
                         ],
                         linf=[
                             1.82786223e+00,
                             1.30452904e+00,
                             1.40347257e+00,
-                            6.21791658e+00,
+                            6.21791658e+00
                         ],
                         tspan=(0.0, 0.3))
     # Ensure that we do not have excessive memory allocations
@@ -633,13 +633,13 @@ end
                             0.6337774834710513,
                             0.30377119245852724,
                             0.3111372568571772,
-                            1.2976221893997268,
+                            1.2976221893997268
                         ],
                         linf=[
                             2.2064877103138207,
                             1.541067099687334,
                             1.5487587769900337,
-                            6.271271639873466,
+                            6.271271639873466
                         ],
                         tspan=(0.0, 0.5))
     # Ensure that we do not have excessive memory allocations
@@ -663,13 +663,13 @@ end
                             0.7869912572385168,
                             0.39170886758882073,
                             0.39613257454431977,
-                            1.2951760266455101,
+                            1.2951760266455101
                         ],
                         linf=[
                             5.156044534854053,
                             3.6261667239538986,
                             3.1807681416546085,
-                            6.3028422220287235,
+                            6.3028422220287235
                         ],
                         tspan=(0.0, 0.5))
     # Ensure that we do not have excessive memory allocations
@@ -687,11 +687,11 @@ end
                                  "elixir_euler_rayleigh_taylor_instability.jl"),
                         l2=[
                             0.06365630515019809, 0.007166887172039836,
-                            0.0028787103533600804, 0.010247678008197966,
+                            0.0028787103533600804, 0.010247678008197966
                         ],
                         linf=[
                             0.47992143569849377, 0.02459548251933757,
-                            0.02059810091623976, 0.0319077000843877,
+                            0.02059810091623976, 0.0319077000843877
                         ],
                         cells_per_dimension=(8, 8),
                         tspan=(0.0, 0.3))
@@ -712,13 +712,13 @@ end
                             0.00019387402388722496,
                             0.03086514388623955,
                             0.04541427917165,
-                            43.892826583444716,
+                            43.892826583444716
                         ],
                         linf=[
                             0.0015942305974430138,
                             0.17449778969139373,
                             0.3729704262394843,
-                            307.6706958565337,
+                            307.6706958565337
                         ],
                         cells_per_dimension=(32, 16),
                         tspan=(0.0, 10.0))
@@ -736,11 +736,11 @@ end
     @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_eulerpolytropic_convergence.jl"),
                         l2=[
                             0.00166898321776379, 0.00259202637930991,
-                            0.0032810744946276406,
+                            0.0032810744946276406
                         ],
                         linf=[
                             0.010994883201888683, 0.013309526619369905,
-                            0.020080326611175536,
+                            0.020080326611175536
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -760,11 +760,11 @@ end
                                      volume_integral = VolumeIntegralFluxDifferencing(volume_flux)),
                         l2=[
                             0.001668882059653298, 0.002592168188567654,
-                            0.0032809503514328307,
+                            0.0032809503514328307
                         ],
                         linf=[
                             0.01099467966437917, 0.013311978456333584,
-                            0.020080117011337606,
+                            0.020080117011337606
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -781,12 +781,12 @@ end
                         l2=[
                             0.03647890611450939,
                             0.025284915444045052,
-                            0.025340697771609126,
+                            0.025340697771609126
                         ],
                         linf=[
                             0.32516731565355583,
                             0.37509762516540046,
-                            0.29812843284727336,
+                            0.29812843284727336
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -803,11 +803,11 @@ end
                                  "elixir_eulerpolytropic_isothermal_wave.jl"),
                         l2=[
                             0.004998778512795407, 0.004998916021367992,
-                            8.991558055435833e-17,
+                            8.991558055435833e-17
                         ],
                         linf=[
                             0.010001103632831354, 0.010051165055185603,
-                            7.60697457718599e-16,
+                            7.60697457718599e-16
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -823,11 +823,11 @@ end
     @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_eulerpolytropic_wave.jl"),
                         l2=[
                             0.23642871172548174, 0.2090519382039672,
-                            8.778842676292274e-17,
+                            8.778842676292274e-17
                         ],
                         linf=[
                             0.4852276879687425, 0.25327870807625175,
-                            5.533921691832115e-16,
+                            5.533921691832115e-16
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -861,12 +861,12 @@ end
                         l2=[
                             0.19357947606509474,
                             0.47041398037626814,
-                            0.4704139803762686,
+                            0.4704139803762686
                         ],
                         linf=[
                             0.35026352556630114,
                             0.8344372248051408,
-                            0.8344372248051408,
+                            0.8344372248051408
                         ],
                         tspan=(0.0, 0.1),
                         coverage_override=(polydeg = 3,)) # Prevent long compile time in CI
@@ -932,13 +932,13 @@ end
                             0.0017286908591070864,
                             0.025585037307655684,
                             0.028374244567802766,
-                            6.274146767730866e-5,
+                            6.274146767730866e-5
                         ],
                         linf=[
                             0.012973752001194772,
                             0.10829375385832263,
                             0.15832858475438094,
-                            0.00018196759554722775,
+                            0.00018196759554722775
                         ],
                         tspan=(0.0, 0.05))
     # Ensure that we do not have excessive memory allocations
@@ -957,13 +957,13 @@ end
                             0.7920927046419308,
                             9.92129670988898e-15,
                             1.0118635033124588e-14,
-                            0.7920927046419308,
+                            0.7920927046419308
                         ],
                         linf=[
                             2.408429868800133,
                             5.5835419986809516e-14,
                             5.448874313931364e-14,
-                            2.4084298688001335,
+                            2.4084298688001335
                         ],
                         tspan=(0.0, 0.25))
     # Ensure that we do not have excessive memory allocations
@@ -1009,7 +1009,7 @@ end
                             0.03090169852186498, 0.030901698662039206,
                             0.04370160129981657, 8.259193829690747e-8,
                             0.03090169908364624, 0.030901699039770726,
-                            0.04370160128147445, 8.73592340076897e-9,
+                            0.04370160128147445, 8.73592340076897e-9
                         ],
                         linf=[
                             9.021023431587949e-7, 0.043701454182710486,
@@ -1020,7 +1020,7 @@ end
                             0.043701454182710764, 0.043701458294525895,
                             0.06180314632253597, 9.487023254761695e-7,
                             0.04370156101034084, 0.04370147392153745,
-                            0.06180318786081015, 3.430672973680963e-8,
+                            0.06180318786081015, 3.430672973680963e-8
                         ],
                         coverage_override=(maxiters = 10^5,))
 
@@ -1032,7 +1032,7 @@ end
             0.030901699039770684, 0.04370160128147447, 8.735923402748945e-9,
             1.0743426996067106e-7, 0.03090169852186498, 0.030901698662039206,
             0.04370160129981657, 8.259193829690747e-8, 0.03090169908364624,
-            0.030901699039770726, 0.04370160128147445, 8.73592340076897e-9,
+            0.030901699039770726, 0.04370160128147445, 8.73592340076897e-9
         ] rtol=1.0e-4
         @test errors.linf≈[
             9.021023431587949e-7, 0.043701454182710486, 0.043701458294527366,
@@ -1040,7 +1040,7 @@ end
             0.04370147392153734, 0.06180318786081025, 3.430673132525334e-8,
             9.02102342825728e-7, 0.043701454182710764, 0.043701458294525895,
             0.06180314632253597, 9.487023254761695e-7, 0.04370156101034084,
-            0.04370147392153745, 0.06180318786081015, 3.430672973680963e-8,
+            0.04370147392153745, 0.06180318786081015, 3.430672973680963e-8
         ] rtol=1.0e-4
         # Ensure that we do not have excessive memory allocations
         # (e.g., from type instabilities)
diff --git a/test/test_structured_3d.jl b/test/test_structured_3d.jl
index a52c459d6be..ac932b9535e 100644
--- a/test/test_structured_3d.jl
+++ b/test/test_structured_3d.jl
@@ -84,14 +84,14 @@ end
                             0.009776048833895767,
                             0.00977604883389591,
                             0.009776048833895733,
-                            0.01506687097416608,
+                            0.01506687097416608
                         ],
                         linf=[
                             0.03285848350791731,
                             0.0321792316408982,
                             0.032179231640894645,
                             0.032179231640895534,
-                            0.0655408023333299,
+                            0.0655408023333299
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -110,14 +110,14 @@ end
                             9.361915278236651e-15,
                             9.95614203619935e-15,
                             1.6809941842374106e-14,
-                            1.4815037041566735e-14,
+                            1.4815037041566735e-14
                         ],
                         linf=[
                             4.1300296516055823e-14,
                             2.0444756998472258e-13,
                             1.0133560657266116e-13,
                             2.0627943797535409e-13,
-                            2.8954616482224083e-13,
+                            2.8954616482224083e-13
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -137,14 +137,14 @@ end
                             9.361915278236651e-15,
                             9.95614203619935e-15,
                             1.6809941842374106e-14,
-                            1.4815037041566735e-14,
+                            1.4815037041566735e-14
                         ],
                         linf=[
                             4.1300296516055823e-14,
                             2.0444756998472258e-13,
                             1.0133560657266116e-13,
                             2.0627943797535409e-13,
-                            2.8954616482224083e-13,
+                            2.8954616482224083e-13
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -164,14 +164,14 @@ end
                             0.003275679548217804,
                             0.0030020672748714084,
                             0.00324007343451744,
-                            0.005721986362580164,
+                            0.005721986362580164
                         ],
                         linf=[
                             0.03156756290660656,
                             0.033597629023726316,
                             0.02095783702361409,
                             0.03353574465232212,
-                            0.05873635745032857,
+                            0.05873635745032857
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -190,14 +190,14 @@ end
                             0.007022020327490176,
                             0.006759580335962235,
                             0.006820337637760632,
-                            0.02912659127566544,
+                            0.02912659127566544
                         ],
                         linf=[
                             0.2761764220925329,
                             0.20286331858055706,
                             0.18763944865434593,
                             0.19313636558790004,
-                            0.707563913727584,
+                            0.707563913727584
                         ],
                         tspan=(0.0, 0.25),
                         coverage_override=(polydeg = 3,)) # Prevent long compile time in CI
@@ -218,14 +218,14 @@ end
                             2.53167260e-02,
                             2.64276438e-02,
                             2.52195992e-02,
-                            3.56830295e-01,
+                            3.56830295e-01
                         ],
                         linf=[
                             6.16356950e-01,
                             2.50600049e-01,
                             2.74796377e-01,
                             2.46448217e-01,
-                            4.77888479e+00,
+                            4.77888479e+00
                         ],
                         tspan=(0.0, 0.3))
     # Ensure that we do not have excessive memory allocations
diff --git a/test/test_t8code_2d.jl b/test/test_t8code_2d.jl
index b63d2a105ac..d950db743e5 100644
--- a/test/test_t8code_2d.jl
+++ b/test/test_t8code_2d.jl
@@ -160,13 +160,13 @@ end
                             0.0034516244508588046,
                             0.0023420334036925493,
                             0.0024261923964557187,
-                            0.004731710454271893,
+                            0.004731710454271893
                         ],
                         linf=[
                             0.04155789011775046,
                             0.024772109862748914,
                             0.03759938693042297,
-                            0.08039824959535657,
+                            0.08039824959535657
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -185,7 +185,7 @@ end
                             2.063350241405049e-15,
                             1.8571016296925367e-14,
                             3.1769447886391905e-14,
-                            1.4104095258528071e-14,
+                            1.4104095258528071e-14
                         ],
                         linf=[1.9539925233402755e-14, 2e-12, 4.8e-12, 4e-12],
                         atol=2.0e-12,)
@@ -206,13 +206,13 @@ end
                             9.53984675e-02,
                             1.05633455e-01,
                             1.05636158e-01,
-                            3.50747237e-01,
+                            3.50747237e-01
                         ],
                         linf=[
                             2.94357464e-01,
                             4.07893014e-01,
                             3.97334516e-01,
-                            1.08142520e+00,
+                            1.08142520e+00
                         ],
                         tspan=(0.0, 1.0))
     # Ensure that we do not have excessive memory allocations
@@ -233,13 +233,13 @@ end
                             3.76149952e-01,
                             2.46970327e-01,
                             2.46970327e-01,
-                            1.28889042e+00,
+                            1.28889042e+00
                         ],
                         linf=[
                             1.22139001e+00,
                             1.17742626e+00,
                             1.17742626e+00,
-                            6.20638482e+00,
+                            6.20638482e+00
                         ],
                         tspan=(0.0, 0.3))
     # Ensure that we do not have excessive memory allocations
@@ -259,13 +259,13 @@ end
                             9.168126407325352e-5,
                             0.0009795410115453788,
                             0.002546408320320785,
-                            3.941189812642317e-6,
+                            3.941189812642317e-6
                         ],
                         linf=[
                             0.0009903782521019089,
                             0.0059752684687262025,
                             0.010941106525454103,
-                            1.2129488214718265e-5,
+                            1.2129488214718265e-5
                         ],
                         tspan=(0.0, 0.1))
     # Ensure that we do not have excessive memory allocations
diff --git a/test/test_t8code_3d.jl b/test/test_t8code_3d.jl
index 81d2a7cdd85..59bccddc058 100644
--- a/test/test_t8code_3d.jl
+++ b/test/test_t8code_3d.jl
@@ -119,14 +119,14 @@ mkdir(outdir)
                                 4.4993257426833716e-5,
                                 5.10588457841744e-5,
                                 5.102840924036687e-5,
-                                0.00019986264001630542,
+                                0.00019986264001630542
                             ],
                             linf=[
                                 0.0016987332417202072,
                                 0.003622956808262634,
                                 0.002029576258317789,
                                 0.0024206977281964193,
-                                0.008526972236273522,
+                                0.008526972236273522
                             ],
                             tspan=(0.0, 0.01))
         # Ensure that we do not have excessive memory allocations 
@@ -148,14 +148,14 @@ mkdir(outdir)
                                 0.0014733349038567685,
                                 0.00147333490385685,
                                 0.001473334903856929,
-                                0.0028149479453087093,
+                                0.0028149479453087093
                             ],
                             linf=[
                                 0.008070806335238156,
                                 0.009007245083113125,
                                 0.009007245083121784,
                                 0.009007245083102688,
-                                0.01562861968368434,
+                                0.01562861968368434
                             ],
                             tspan=(0.0, 1.0))
         # Ensure that we do not have excessive memory allocations 
@@ -176,14 +176,14 @@ mkdir(outdir)
                                 1.941857343642486e-14,
                                 2.0232366394187278e-14,
                                 2.3381518645408552e-14,
-                                7.083114561232324e-14,
+                                7.083114561232324e-14
                             ],
                             linf=[
                                 7.269740365245525e-13,
                                 3.289868377720495e-12,
                                 4.440087186807773e-12,
                                 3.8686831516088205e-12,
-                                9.412914891981927e-12,
+                                9.412914891981927e-12
                             ],
                             tspan=(0.0, 0.03))
         # Ensure that we do not have excessive memory allocations 
@@ -204,14 +204,14 @@ mkdir(outdir)
                                 4.889826056731442e-15,
                                 2.2921260987087585e-15,
                                 4.268460455702414e-15,
-                                1.1356712092620279e-14,
+                                1.1356712092620279e-14
                             ],
                             linf=[
                                 7.749356711883593e-14,
                                 2.8792246364872653e-13,
                                 1.1121659149182506e-13,
                                 3.3228975127030935e-13,
-                                9.592326932761353e-13,
+                                9.592326932761353e-13
                             ],
                             tspan=(0.0, 0.1), atol=5.0e-13,)
         # Ensure that we do not have excessive memory allocations 
@@ -232,14 +232,14 @@ mkdir(outdir)
                                 0.006192950051354618,
                                 0.005970674274073704,
                                 0.005965831290564327,
-                                0.02628875593094754,
+                                0.02628875593094754
                             ],
                             linf=[
                                 0.3326911600075694,
                                 0.2824952141320467,
                                 0.41401037398065543,
                                 0.45574161423218573,
-                                0.8099577682187109,
+                                0.8099577682187109
                             ],
                             tspan=(0.0, 0.2),
                             coverage_override=(polydeg = 3,)) # Prevent long compile time in CI
@@ -262,14 +262,14 @@ mkdir(outdir)
                                 4.33260474e-02,
                                 4.33260474e-02,
                                 4.33260474e-02,
-                                3.75260911e-01,
+                                3.75260911e-01
                             ],
                             linf=[
                                 7.45329845e-01,
                                 3.21754792e-01,
                                 3.21754792e-01,
                                 3.21754792e-01,
-                                4.76151527e+00,
+                                4.76151527e+00
                             ],
                             tspan=(0.0, 0.3),
                             coverage_override=(polydeg = 3,)) # Prevent long compile time in CI
diff --git a/test/test_threaded.jl b/test/test_threaded.jl
index 7365dcef21c..f63cda87a5c 100644
--- a/test/test_threaded.jl
+++ b/test/test_threaded.jl
@@ -92,13 +92,13 @@ Trixi.MPI.Barrier(Trixi.mpi_comm())
                                 2.259440511766445e-6,
                                 2.318888155713922e-6,
                                 2.3188881557894307e-6,
-                                6.3327863238858925e-6,
+                                6.3327863238858925e-6
                             ],
                             linf=[
                                 1.498738264560373e-5,
                                 1.9182011928187137e-5,
                                 1.918201192685487e-5,
-                                6.0526717141407005e-5,
+                                6.0526717141407005e-5
                             ],
                             rtol=0.001)
 
@@ -119,13 +119,13 @@ Trixi.MPI.Barrier(Trixi.mpi_comm())
                                 0.061751715597716854,
                                 0.05018223615408711,
                                 0.05018989446443463,
-                                0.225871559730513,
+                                0.225871559730513
                             ],
                             linf=[
                                 0.29347582879608825,
                                 0.31081249232844693,
                                 0.3107380389947736,
-                                1.0540358049885143,
+                                1.0540358049885143
                             ])
 
         # Ensure that we do not have excessive memory allocations
@@ -180,13 +180,13 @@ Trixi.MPI.Barrier(Trixi.mpi_comm())
                                 1.7088389997042244e-6,
                                 1.7437997855125774e-6,
                                 1.7437997855350776e-6,
-                                5.457223460127621e-6,
+                                5.457223460127621e-6
                             ],
                             linf=[
                                 9.796504903736292e-6,
                                 9.614745892783105e-6,
                                 9.614745892783105e-6,
-                                4.026107182575345e-5,
+                                4.026107182575345e-5
                             ],
                             tspan=(0.0, 0.1))
 
@@ -283,13 +283,13 @@ end
                                 0.0034516244508588046,
                                 0.0023420334036925493,
                                 0.0024261923964557187,
-                                0.004731710454271893,
+                                0.004731710454271893
                             ],
                             linf=[
                                 0.04155789011775046,
                                 0.024772109862748914,
                                 0.03759938693042297,
-                                0.08039824959535657,
+                                0.08039824959535657
                             ])
 
         # Ensure that we do not have excessive memory allocations
@@ -309,13 +309,13 @@ end
                                 0.00024871265138964204,
                                 0.0003370077102132591,
                                 0.0003370077102131964,
-                                0.0007231525513793697,
+                                0.0007231525513793697
                             ],
                             linf=[
                                 0.0015813032944647087,
                                 0.0020494288423820173,
                                 0.0020494288423824614,
-                                0.004793821195083758,
+                                0.004793821195083758
                             ],
                             tspan=(0.0, 0.1))
     end
@@ -329,13 +329,13 @@ end
                                 0.0034516244508588046,
                                 0.0023420334036925493,
                                 0.0024261923964557187,
-                                0.004731710454271893,
+                                0.004731710454271893
                             ],
                             linf=[
                                 0.04155789011775046,
                                 0.024772109862748914,
                                 0.03759938693042297,
-                                0.08039824959535657,
+                                0.08039824959535657
                             ])
     end
 
@@ -346,13 +346,13 @@ end
                                 0.00024871265138964204,
                                 0.0003370077102132591,
                                 0.0003370077102131964,
-                                0.0007231525513793697,
+                                0.0007231525513793697
                             ],
                             linf=[
                                 0.0015813032944647087,
                                 0.0020494288423820173,
                                 0.0020494288423824614,
-                                0.004793821195083758,
+                                0.004793821195083758
                             ],
                             tspan=(0.0, 0.1))
     end
@@ -370,13 +370,13 @@ end
                                 0.006400337855843578,
                                 0.005303799804137764,
                                 0.005303799804119745,
-                                0.013204169007030144,
+                                0.013204169007030144
                             ],
                             linf=[
                                 0.03798302318566282,
                                 0.05321027922532284,
                                 0.05321027922605448,
-                                0.13392025411839015,
+                                0.13392025411839015
                             ],)
 
         # Ensure that we do not have excessive memory allocations
@@ -397,13 +397,13 @@ end
                                 1.7204593127904542e-5,
                                 1.5921547179522804e-5,
                                 1.5921547180107928e-5,
-                                4.894071422525737e-5,
+                                4.894071422525737e-5
                             ],
                             linf=[
                                 0.00010525416930584619,
                                 0.00010003778091061122,
                                 0.00010003778085621029,
-                                0.00036426282101720275,
+                                0.00036426282101720275
                             ])
 
         # Ensure that we do not have excessive memory allocations
@@ -423,13 +423,13 @@ end
                                 2.344076909832665e-6,
                                 1.8610002398709756e-6,
                                 2.4095132179484066e-6,
-                                6.37330249340445e-6,
+                                6.37330249340445e-6
                             ],
                             linf=[
                                 2.509979394305084e-5,
                                 2.2683711321080935e-5,
                                 2.6180377720841363e-5,
-                                5.575278031910713e-5,
+                                5.575278031910713e-5
                             ])
 
         # Ensure that we do not have excessive memory allocations
@@ -449,13 +449,13 @@ end
                                 1.3333320340010056e-6,
                                 2.044834627970641e-6,
                                 2.044834627855601e-6,
-                                5.282189803559564e-6,
+                                5.282189803559564e-6
                             ],
                             linf=[
                                 2.7000151718858945e-6,
                                 3.988595028259212e-6,
                                 3.9885950273710336e-6,
-                                8.848583042286862e-6,
+                                8.848583042286862e-6
                             ])
 
         # Ensure that we do not have excessive memory allocations
diff --git a/test/test_tree_1d_euler.jl b/test/test_tree_1d_euler.jl
index 784d123128e..528017499c3 100644
--- a/test/test_tree_1d_euler.jl
+++ b/test/test_tree_1d_euler.jl
@@ -15,12 +15,12 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_1d_dgsem")
                         l2=[
                             2.2527950196212703e-8,
                             1.8187357193835156e-8,
-                            7.705669939973104e-8,
+                            7.705669939973104e-8
                         ],
                         linf=[
                             1.6205433861493646e-7,
                             1.465427772462391e-7,
-                            5.372255111879554e-7,
+                            5.372255111879554e-7
                         ],
                         # With the default `maxiters = 1` in coverage tests,
                         # there would be no time series to check against.
@@ -52,12 +52,12 @@ end
                         l2=[
                             0.019355699748523896,
                             0.022326984561234497,
-                            0.02523665947241734,
+                            0.02523665947241734
                         ],
                         linf=[
                             0.02895961127645519,
                             0.03293442484199227,
-                            0.04246098278632804,
+                            0.04246098278632804
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -74,12 +74,12 @@ end
                         l2=[
                             0.0011482554820217855,
                             0.00011482554830323462,
-                            5.741277429325267e-6,
+                            5.741277429325267e-6
                         ],
                         linf=[
                             0.004090978306812376,
                             0.0004090978313582294,
-                            2.045489210189544e-5,
+                            2.045489210189544e-5
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -96,12 +96,12 @@ end
                         l2=[
                             7.71293052584723e-16,
                             1.9712947511091717e-14,
-                            7.50672833504266e-15,
+                            7.50672833504266e-15
                         ],
                         linf=[
                             3.774758283725532e-15,
                             6.733502644351574e-14,
-                            2.4868995751603507e-14,
+                            2.4868995751603507e-14
                         ],
                         initial_condition=initial_condition_constant)
     # Ensure that we do not have excessive memory allocations
@@ -120,12 +120,12 @@ end
                         l2=[
                             3.8099996914101204e-6,
                             1.6745575717106341e-6,
-                            7.732189531480852e-6,
+                            7.732189531480852e-6
                         ],
                         linf=[
                             1.2971473393186272e-5,
                             9.270328934274374e-6,
-                            3.092514399671842e-5,
+                            3.092514399671842e-5
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -142,12 +142,12 @@ end
                         l2=[
                             0.11821957357197649,
                             0.15330089521538678,
-                            0.4417674632047301,
+                            0.4417674632047301
                         ],
                         linf=[
                             0.24280567569982958,
                             0.29130548795961936,
-                            0.8847009003152442,
+                            0.8847009003152442
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -164,12 +164,12 @@ end
                         l2=[
                             0.07803455838661963,
                             0.10032577312032283,
-                            0.29228156303827935,
+                            0.29228156303827935
                         ],
                         linf=[
                             0.2549869853794955,
                             0.3376472164661263,
-                            0.9650477546553962,
+                            0.9650477546553962
                         ],
                         maxiters=10,
                         surface_flux=flux_kennedy_gruber,
@@ -189,12 +189,12 @@ end
                         l2=[
                             0.07800654460172655,
                             0.10030365573277883,
-                            0.2921481199111959,
+                            0.2921481199111959
                         ],
                         linf=[
                             0.25408579350400395,
                             0.3388657679031271,
-                            0.9776486386921928,
+                            0.9776486386921928
                         ],
                         maxiters=10,
                         surface_flux=flux_shima_etal,
@@ -214,12 +214,12 @@ end
                         l2=[
                             0.07801923089205756,
                             0.10039557434912669,
-                            0.2922210399923278,
+                            0.2922210399923278
                         ],
                         linf=[
                             0.2576521982607225,
                             0.3409717926625057,
-                            0.9772961936567048,
+                            0.9772961936567048
                         ],
                         maxiters=10,
                         surface_flux=flux_chandrashekar,
@@ -240,7 +240,7 @@ end
                         linf=[
                             0.192621556068018,
                             0.25184744005299536,
-                            0.7264977555504792,
+                            0.7264977555504792
                         ],
                         maxiters=10,
                         surface_flux=flux_hll,
@@ -260,12 +260,12 @@ end
                         l2=[
                             0.11606096465319675,
                             0.15028768943458806,
-                            0.4328230323046703,
+                            0.4328230323046703
                         ],
                         linf=[
                             0.18031710091067965,
                             0.2351582421501841,
-                            0.6776805692092567,
+                            0.6776805692092567
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -283,7 +283,7 @@ end
                         linf=[
                             2.9766770877037168,
                             0.16838100902295852,
-                            2.6655773445485798,
+                            2.6655773445485798
                         ],
                         coverage_override=(maxiters = 6,))
     # Ensure that we do not have excessive memory allocations
@@ -319,7 +319,7 @@ end
                         linf=[
                             3.4296365168219216,
                             0.17635583964559245,
-                            2.6574584326179505,
+                            2.6574584326179505
                         ],
                         # Let this test run longer to cover some lines in flux_hllc
                         coverage_override=(maxiters = 10^5, tspan = (0.0, 0.1)))
@@ -339,7 +339,7 @@ end
                         linf=[
                             3.1773015255764427,
                             0.21331831536493773,
-                            2.6650170188241047,
+                            2.6650170188241047
                         ],
                         shock_indicator_variable=pressure,
                         cfl=0.2,
@@ -360,7 +360,7 @@ end
                         linf=[
                             3.1087017048015824,
                             0.17734706962928956,
-                            2.666689753470263,
+                            2.666689753470263
                         ],
                         shock_indicator_variable=density,
                         cfl=0.2,
@@ -396,7 +396,7 @@ end
                         linf=[
                             1.5180897390290355,
                             1.3967085956620369,
-                            2.0663825294019595,
+                            2.0663825294019595
                         ],
                         maxiters=30)
     # Ensure that we do not have excessive memory allocations
@@ -415,13 +415,13 @@ end
                             3.876288369618363e-7,
                             2.2247043122302947e-7,
                             2.964004224572679e-7,
-                            5.2716983399807875e-8,
+                            5.2716983399807875e-8
                         ],
                         linf=[
                             2.3925118561862746e-6,
                             1.3603693522767912e-6,
                             1.821888865105592e-6,
-                            1.1166012159335992e-7,
+                            1.1166012159335992e-7
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -440,13 +440,13 @@ end
                             0.045510421156346015,
                             0.036750584788912195,
                             0.2468985959132176,
-                            0.03684494180829024,
+                            0.03684494180829024
                         ],
                         linf=[
                             0.3313374853025697,
                             0.11621933362158643,
                             1.827403013568638,
-                            0.28045939999015723,
+                            0.28045939999015723
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -464,13 +464,13 @@ end
                             0.08889113985713998,
                             0.16199235348889673,
                             0.40316524365054346,
-                            2.9602775074723667e-16,
+                            2.9602775074723667e-16
                         ],
                         linf=[
                             0.28891355898284043,
                             0.3752709888964313,
                             0.84477102402413,
-                            8.881784197001252e-16,
+                            8.881784197001252e-16
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_tree_1d_eulergravity.jl b/test/test_tree_1d_eulergravity.jl
index 17bc0c71a7a..70cc294812d 100644
--- a/test/test_tree_1d_eulergravity.jl
+++ b/test/test_tree_1d_eulergravity.jl
@@ -14,11 +14,11 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_1d_dgsem")
     @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_eulergravity_convergence.jl"),
                         l2=[
                             0.00021708496949694728, 0.0002913795242132917,
-                            0.0006112500956552259,
+                            0.0006112500956552259
                         ],
                         linf=[
                             0.0004977733237385706, 0.0013594226727522418,
-                            0.0020418739554664,
+                            0.0020418739554664
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_tree_1d_eulermulti.jl b/test/test_tree_1d_eulermulti.jl
index b6c79ce03d1..7f5b6d50c94 100644
--- a/test/test_tree_1d_eulermulti.jl
+++ b/test/test_tree_1d_eulermulti.jl
@@ -51,13 +51,13 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_1d_dgsem")
                                 0.1522380497572071,
                                 0.43830846465313206,
                                 0.03907262116499431,
-                                0.07814524232998862,
+                                0.07814524232998862
                             ],
                             linf=[
                                 0.24939193075537294,
                                 0.7139395740052739,
                                 0.06324208768391237,
-                                0.12648417536782475,
+                                0.12648417536782475
                             ])
         # Ensure that we do not have excessive memory allocations
         # (e.g., from type instabilities)
@@ -75,13 +75,13 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_1d_dgsem")
                                 8.575236038539227e-5,
                                 0.00016387804318585358,
                                 1.9412699303977585e-5,
-                                3.882539860795517e-5,
+                                3.882539860795517e-5
                             ],
                             linf=[
                                 0.00030593277277124464,
                                 0.0006244803933350696,
                                 7.253121435135679e-5,
-                                0.00014506242870271358,
+                                0.00014506242870271358
                             ])
         # Ensure that we do not have excessive memory allocations
         # (e.g., from type instabilities)
diff --git a/test/test_tree_1d_fdsbp.jl b/test/test_tree_1d_fdsbp.jl
index 33d67e3366f..71e77eeb389 100644
--- a/test/test_tree_1d_fdsbp.jl
+++ b/test/test_tree_1d_fdsbp.jl
@@ -94,12 +94,12 @@ end
                             l2=[
                                 4.1370344463620254e-6,
                                 4.297052451817826e-6,
-                                9.857382045003056e-6,
+                                9.857382045003056e-6
                             ],
                             linf=[
                                 1.675305070092392e-5,
                                 1.3448113863834266e-5,
-                                3.8185336878271414e-5,
+                                3.8185336878271414e-5
                             ],
                             tspan=(0.0, 0.5))
 
@@ -118,12 +118,12 @@ end
                             l2=[
                                 3.413790589105506e-6,
                                 4.243957977156001e-6,
-                                8.667369423676437e-6,
+                                8.667369423676437e-6
                             ],
                             linf=[
                                 1.4228079689537765e-5,
                                 1.3249887941046978e-5,
-                                3.201552933251861e-5,
+                                3.201552933251861e-5
                             ],
                             tspan=(0.0, 0.5),
                             flux_splitting=splitting_vanleer_haenel)
@@ -143,12 +143,12 @@ end
                             l2=[
                                 8.6126767518378e-6,
                                 7.670897071480729e-6,
-                                1.4972772284191368e-5,
+                                1.4972772284191368e-5
                             ],
                             linf=[
                                 6.707982777909294e-5,
                                 3.487256699541419e-5,
-                                0.00010170331350556339,
+                                0.00010170331350556339
                             ],
                             tspan=(0.0, 0.5),
                             solver=DG(D_upw.central, nothing, SurfaceIntegralStrongForm(),
@@ -169,12 +169,12 @@ end
                             l2=[
                                 1.5894925236031034e-5,
                                 9.428412101106044e-6,
-                                0.0008986477358789918,
+                                0.0008986477358789918
                             ],
                             linf=[
                                 4.969438024382544e-5,
                                 2.393091812063694e-5,
-                                0.003271817388146303,
+                                0.003271817388146303
                             ],
                             tspan=(0.0, 0.005), abstol=1.0e-9, reltol=1.0e-9)
 
diff --git a/test/test_tree_1d_linearizedeuler.jl b/test/test_tree_1d_linearizedeuler.jl
index c7cffee3f66..210ad8645de 100644
--- a/test/test_tree_1d_linearizedeuler.jl
+++ b/test/test_tree_1d_linearizedeuler.jl
@@ -14,12 +14,12 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_1d_dgsem")
                         l2=[
                             0.00010894927270421941,
                             0.00014295255695912358,
-                            0.00010894927270421941,
+                            0.00010894927270421941
                         ],
                         linf=[
                             0.0005154647164193893,
                             0.00048457837684242266,
-                            0.0005154647164193893,
+                            0.0005154647164193893
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -37,7 +37,7 @@ end
                         linf=[
                             1.9999505145390108,
                             0.9999720404625275,
-                            1.9999505145390108,
+                            1.9999505145390108
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_tree_1d_mhd.jl b/test/test_tree_1d_mhd.jl
index 2150ddfd074..e27a075b090 100644
--- a/test/test_tree_1d_mhd.jl
+++ b/test/test_tree_1d_mhd.jl
@@ -20,7 +20,7 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_1d_dgsem")
                             3.9938347410210535e-14,
                             3.984545392098788e-16,
                             2.4782402104201577e-15,
-                            1.551737464879987e-15,
+                            1.551737464879987e-15
                         ],
                         linf=[
                             1.9984014443252818e-15,
@@ -30,7 +30,7 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_1d_dgsem")
                             7.815970093361102e-14,
                             8.881784197001252e-16,
                             2.886579864025407e-15,
-                            2.942091015256665e-15,
+                            2.942091015256665e-15
                         ],
                         initial_condition=initial_condition_constant,
                         tspan=(0.0, 1.0))
@@ -54,7 +54,7 @@ end
                             5.084863194951084e-6,
                             1.1963224165731992e-16,
                             3.598916927583752e-5,
-                            3.598916927594727e-5,
+                            3.598916927594727e-5
                         ],
                         linf=[
                             2.614095879338585e-5,
@@ -64,7 +64,7 @@ end
                             1.5066209528846741e-5,
                             2.220446049250313e-16,
                             0.00012658678753942054,
-                            0.00012658678753908748,
+                            0.00012658678753908748
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -86,7 +86,7 @@ end
                             1.967962220860377e-6,
                             1.1963224165731992e-16,
                             3.583562899483433e-5,
-                            3.583562899486565e-5,
+                            3.583562899486565e-5
                         ],
                         linf=[
                             5.830577969345718e-5,
@@ -96,7 +96,7 @@ end
                             6.978806516122482e-6,
                             2.220446049250313e-16,
                             0.00012564003648959932,
-                            0.00012564003648994626,
+                            0.00012564003648994626
                         ],
                         volume_flux=flux_derigs_etal)
     # Ensure that we do not have excessive memory allocations
@@ -115,13 +115,13 @@ end
                             1.036850596986597e-5, 1.965192583650368e-6,
                             3.5882124656715505e-5, 3.5882124656638764e-5,
                             5.270975504780837e-6, 1.1963224165731992e-16,
-                            3.595811808912869e-5, 3.5958118089159453e-5,
+                            3.595811808912869e-5, 3.5958118089159453e-5
                         ],
                         linf=[
                             2.887280521446378e-5, 7.310580790352001e-6,
                             0.00012390046377899755, 0.00012390046377787345,
                             1.5102711136583125e-5, 2.220446049250313e-16,
-                            0.0001261935452181312, 0.0001261935452182006,
+                            0.0001261935452181312, 0.0001261935452182006
                         ],
                         surface_flux=flux_hllc)
     # Ensure that we do not have excessive memory allocations
@@ -144,7 +144,7 @@ end
                             0.15578125987042743,
                             4.130462730494e-17,
                             0.05465258887150046,
-                            0.05465258887150046,
+                            0.05465258887150046
                         ],
                         linf=[
                             0.12165312668363826,
@@ -154,7 +154,7 @@ end
                             0.44079257431070706,
                             1.1102230246251565e-16,
                             0.10528911365809579,
-                            0.10528911365809579,
+                            0.10528911365809579
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -176,7 +176,7 @@ end
                             0.3723215736814466,
                             1.2060075775846403e-15,
                             0.36276754492568164,
-                            0.0,
+                            0.0
                         ],
                         linf=[
                             0.5797109945880677,
@@ -186,7 +186,7 @@ end
                             1.0526758874956808,
                             5.995204332975845e-15,
                             1.5122922036932964,
-                            0.0,
+                            0.0
                         ],
                         coverage_override=(maxiters = 6,))
     # Ensure that we do not have excessive memory allocations
@@ -209,7 +209,7 @@ end
                             0.9204708961093411,
                             1.3216517820475193e-16,
                             0.28897419402047725,
-                            0.25521206483145126,
+                            0.25521206483145126
                         ],
                         linf=[
                             1.2185238171352286,
@@ -219,7 +219,7 @@ end
                             1.660723397705417,
                             2.220446049250313e-16,
                             0.6874726847741993,
-                            0.65536978110274,
+                            0.65536978110274
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -238,13 +238,13 @@ end
                             0.4573799618744708, 0.4792633358230866, 0.34064852506872795,
                             0.4479668434955162, 0.9203891782415092,
                             1.3216517820475193e-16, 0.28887826520860815,
-                            0.255281629265771,
+                            0.255281629265771
                         ],
                         linf=[
                             1.2382842201671505, 0.8929169308132259, 0.871298623806198,
                             0.9822415614542821, 1.6726170732132717,
                             2.220446049250313e-16, 0.7016155888023747,
-                            0.6556091522071984,
+                            0.6556091522071984
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -266,7 +266,7 @@ end
                             0.9606363432904367,
                             6.608258910237605e-17,
                             0.21542929107153735,
-                            0.10705457908737925,
+                            0.10705457908737925
                         ],
                         linf=[
                             0.6447951791685409,
@@ -276,7 +276,7 @@ end
                             2.0770652030507053,
                             1.1102230246251565e-16,
                             0.49670855513788204,
-                            0.24830199967863564,
+                            0.24830199967863564
                         ],
                         tspan=(0.0, 0.1))
     # Ensure that we do not have excessive memory allocations
@@ -299,7 +299,7 @@ end
                             5.21930435e+01,
                             6.56538824e-16,
                             1.01022340e+00,
-                            0.00000000e+00,
+                            0.00000000e+00
                         ],
                         linf=[
                             2.87172004e+00,
@@ -309,7 +309,7 @@ end
                             1.35152372e+02,
                             3.44169138e-15,
                             2.83556069e+00,
-                            0.00000000e+00,
+                            0.00000000e+00
                         ],
                         tspan=(0.0, 0.2),
                         coverage_override=(maxiters = 6,))
@@ -336,7 +336,7 @@ end
                             5.23565514e+01,
                             3.18641825e-16,
                             1.00485291e+00,
-                            0.00000000e+00,
+                            0.00000000e+00
                         ],
                         linf=[
                             2.92876280e+00,
@@ -346,7 +346,7 @@ end
                             1.36966213e+02,
                             1.55431223e-15,
                             2.80548864e+00,
-                            0.00000000e+00,
+                            0.00000000e+00
                         ],
                         initial_condition=initial_condition_shu_osher_shock_tube_flipped,
                         boundary_conditions=BoundaryConditionDirichlet(initial_condition_shu_osher_shock_tube_flipped),
diff --git a/test/test_tree_1d_shallowwater.jl b/test/test_tree_1d_shallowwater.jl
index 8fe3291a938..ad7a77a1eda 100644
--- a/test/test_tree_1d_shallowwater.jl
+++ b/test/test_tree_1d_shallowwater.jl
@@ -15,12 +15,12 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_1d_dgsem")
                         l2=[
                             0.24476140682560343,
                             0.8587309324660326,
-                            0.07330427577586297,
+                            0.07330427577586297
                         ],
                         linf=[
                             2.1636963952308372,
                             3.8737770522883115,
-                            1.7711213427919539,
+                            1.7711213427919539
                         ],
                         tspan=(0.0, 0.25))
     # Ensure that we do not have excessive memory allocations
@@ -38,12 +38,12 @@ end
                         l2=[
                             0.39472828074570576,
                             2.0390687947320076,
-                            4.1623084150546725e-10,
+                            4.1623084150546725e-10
                         ],
                         linf=[
                             0.7793741954662221,
                             3.2411927977882096,
-                            7.419800190922032e-10,
+                            7.419800190922032e-10
                         ],
                         initial_condition=initial_condition_weak_blast_wave,
                         tspan=(0.0, 0.25))
@@ -62,7 +62,7 @@ end
                         l2=[
                             0.10416666834254829,
                             1.4352935256803184e-14,
-                            0.10416666834254838,
+                            0.10416666834254838
                         ],
                         linf=[1.9999999999999996, 3.248036646353028e-14, 2.0],
                         tspan=(0.0, 0.25))
@@ -81,7 +81,7 @@ end
                         l2=[
                             0.10416666834254835,
                             1.1891029971551825e-14,
-                            0.10416666834254838,
+                            0.10416666834254838
                         ],
                         linf=[2.0000000000000018, 2.4019608337954543e-14, 2.0],
                         surface_flux=(FluxHydrostaticReconstruction(flux_lax_friedrichs,
@@ -103,7 +103,7 @@ end
                         l2=[
                             0.10416666834254838,
                             1.6657566141935285e-14,
-                            0.10416666834254838,
+                            0.10416666834254838
                         ],
                         linf=[2.0000000000000004, 3.0610625110157164e-14, 2.0],
                         surface_flux=(flux_wintermeyer_etal,
@@ -126,12 +126,12 @@ end
                         l2=[
                             0.0022363707373868713,
                             0.01576799981934617,
-                            4.436491725585346e-5,
+                            4.436491725585346e-5
                         ],
                         linf=[
                             0.00893601803417754,
                             0.05939797350246456,
-                            9.098379777405796e-5,
+                            9.098379777405796e-5
                         ],
                         tspan=(0.0, 0.025))
     # Ensure that we do not have excessive memory allocations
@@ -149,12 +149,12 @@ end
                         l2=[
                             0.002275023323848826,
                             0.015861093821754046,
-                            4.436491725585346e-5,
+                            4.436491725585346e-5
                         ],
                         linf=[
                             0.008461451098266792,
                             0.05722331401673486,
-                            9.098379777405796e-5,
+                            9.098379777405796e-5
                         ],
                         tspan=(0.0, 0.025),
                         surface_flux=(flux_hll,
@@ -174,12 +174,12 @@ end
                         l2=[
                             0.005774284062933275,
                             0.017408601639513584,
-                            4.43649172561843e-5,
+                            4.43649172561843e-5
                         ],
                         linf=[
                             0.01639116193303547,
                             0.05102877460799604,
-                            9.098379777450205e-5,
+                            9.098379777450205e-5
                         ],
                         surface_flux=(flux_wintermeyer_etal,
                                       flux_nonconservative_ersing_etal),
@@ -202,12 +202,12 @@ end
                         l2=[
                             0.0022851099219788917,
                             0.01560453773635554,
-                            4.43649172558535e-5,
+                            4.43649172558535e-5
                         ],
                         linf=[
                             0.008934615705174398,
                             0.059403169140869405,
-                            9.098379777405796e-5,
+                            9.098379777405796e-5
                         ],
                         tspan=(0.0, 0.025))
     # Ensure that we do not have excessive memory allocations
@@ -226,12 +226,12 @@ end
                         l2=[
                             0.0022956052733432287,
                             0.015540053559855601,
-                            4.43649172558535e-5,
+                            4.43649172558535e-5
                         ],
                         linf=[
                             0.008460440313118323,
                             0.05720939349382359,
-                            9.098379777405796e-5,
+                            9.098379777405796e-5
                         ],
                         surface_flux=(FluxHydrostaticReconstruction(FluxHLL(min_max_speed_naive),
                                                                     hydrostatic_reconstruction_audusse_etal),
@@ -253,12 +253,12 @@ end
                         l2=[
                             1.725964362045055e-8,
                             5.0427180314307505e-16,
-                            1.7259643530442137e-8,
+                            1.7259643530442137e-8
                         ],
                         linf=[
                             3.844551077492042e-8,
                             3.469453422316143e-15,
-                            3.844551077492042e-8,
+                            3.844551077492042e-8
                         ],
                         tspan=(0.0, 0.25),
                         surface_flux=(FluxHLL(min_max_speed_naive),
@@ -279,12 +279,12 @@ end
                         l2=[
                             1.7259643614361866e-8,
                             3.5519018243195145e-16,
-                            1.7259643530442137e-8,
+                            1.7259643530442137e-8
                         ],
                         linf=[
                             3.844551010878661e-8,
                             9.846474508971374e-16,
-                            3.844551077492042e-8,
+                            3.844551077492042e-8
                         ],
                         tspan=(0.0, 0.25),
                         surface_flux=(FluxHLL(min_max_speed_naive),
@@ -307,7 +307,7 @@ end
                         linf=[
                             1.1209754279344226,
                             1.3230788645853582,
-                            0.8646939843534251,
+                            0.8646939843534251
                         ],
                         tspan=(0.0, 0.05))
     # Ensure that we do not have excessive memory allocations
@@ -327,13 +327,13 @@ end
                             6.37048760275098e-5,
                             0.0002745658116815704,
                             4.436491725647962e-6,
-                            8.872983451152218e-6,
+                            8.872983451152218e-6
                         ],
                         linf=[
                             0.00026747526881631956,
                             0.0012106730729152249,
                             9.098379777500165e-6,
-                            1.8196759554278685e-5,
+                            1.8196759554278685e-5
                         ],
                         tspan=(0.0, 0.05))
     # Ensure that we do not have excessive memory allocations
@@ -353,13 +353,13 @@ end
                             1.4250229186905198e-14,
                             2.495109919406496e-12,
                             7.408599286788738e-17,
-                            2.7205812409138776e-16,
+                            2.7205812409138776e-16
                         ],
                         linf=[
                             5.284661597215745e-14,
                             2.74056233065078e-12,
                             2.220446049250313e-16,
-                            8.881784197001252e-16,
+                            8.881784197001252e-16
                         ],
                         tspan=(0.0, 100.0))
     # Ensure that we do not have excessive memory allocations
@@ -379,13 +379,13 @@ end
                             0.02843233740533314,
                             0.14083324483705398,
                             0.0054554472558998,
-                            0.005455447255899814,
+                            0.005455447255899814
                         ],
                         linf=[
                             0.26095842440037487,
                             0.45919004549253795,
                             0.09999999999999983,
-                            0.10000000000000009,
+                            0.10000000000000009
                         ],)
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_tree_2d_acoustics.jl b/test/test_tree_2d_acoustics.jl
index 89bccbf8ca1..070eca87728 100644
--- a/test/test_tree_2d_acoustics.jl
+++ b/test/test_tree_2d_acoustics.jl
@@ -19,7 +19,7 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                             0.0,
                             0.0,
                             0.0,
-                            0.0,
+                            0.0
                         ],
                         linf=[
                             0.00769282588065634,
@@ -28,7 +28,7 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                             0.0,
                             0.0,
                             0.0,
-                            0.0,
+                            0.0
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -49,7 +49,7 @@ end
                             0.0,
                             0.0,
                             0.0,
-                            0.0,
+                            0.0
                         ],
                         linf=[
                             0.17261097190220992,
@@ -58,7 +58,7 @@ end
                             0.0,
                             0.0,
                             0.0,
-                            0.0,
+                            0.0
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -79,7 +79,7 @@ end
                             0.0,
                             0.0,
                             0.0,
-                            0.0,
+                            0.0
                         ],
                         linf=[
                             0.03970270697049378,
@@ -88,7 +88,7 @@ end
                             0.0,
                             0.0,
                             0.0,
-                            0.0,
+                            0.0
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_tree_2d_euler.jl b/test/test_tree_2d_euler.jl
index a004d1452b7..9e0b970a5f7 100644
--- a/test/test_tree_2d_euler.jl
+++ b/test/test_tree_2d_euler.jl
@@ -16,13 +16,13 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                             9.321181253186009e-7,
                             1.4181210743438511e-6,
                             1.4181210743487851e-6,
-                            4.824553091276693e-6,
+                            4.824553091276693e-6
                         ],
                         linf=[
                             9.577246529612893e-6,
                             1.1707525976012434e-5,
                             1.1707525976456523e-5,
-                            4.8869615580926506e-5,
+                            4.8869615580926506e-5
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -40,13 +40,13 @@ end
                             0.026440292358506527,
                             0.013245905852168414,
                             0.013245905852168479,
-                            0.03912520302609374,
+                            0.03912520302609374
                         ],
                         linf=[
                             0.042130817806361964,
                             0.022685499230187034,
                             0.022685499230187922,
-                            0.06999771202145322,
+                            0.06999771202145322
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -64,13 +64,13 @@ end
                             0.0010600778457964775,
                             0.00010600778457634275,
                             0.00021201556915872665,
-                            2.650194614399671e-5,
+                            2.650194614399671e-5
                         ],
                         linf=[
                             0.006614198043413566,
                             0.0006614198043973507,
                             0.001322839608837334,
-                            0.000165354951256802,
+                            0.000165354951256802
                         ],
                         tspan=(0.0, 0.5))
     # Ensure that we do not have excessive memory allocations
@@ -90,13 +90,13 @@ end
                             2.259440511766445e-6,
                             2.318888155713922e-6,
                             2.3188881557894307e-6,
-                            6.3327863238858925e-6,
+                            6.3327863238858925e-6
                         ],
                         linf=[
                             1.498738264560373e-5,
                             1.9182011928187137e-5,
                             1.918201192685487e-5,
-                            6.0526717141407005e-5,
+                            6.0526717141407005e-5
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -114,13 +114,13 @@ end
                             0.061751715597716854,
                             0.05018223615408711,
                             0.05018989446443463,
-                            0.225871559730513,
+                            0.225871559730513
                         ],
                         linf=[
                             0.29347582879608825,
                             0.31081249232844693,
                             0.3107380389947736,
-                            1.0540358049885143,
+                            1.0540358049885143
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -138,13 +138,13 @@ end
                             0.03481471610306124,
                             0.027694280613944234,
                             0.027697905866996532,
-                            0.12932052501462554,
+                            0.12932052501462554
                         ],
                         linf=[
                             0.31052098400669004,
                             0.3481295959664616,
                             0.34807152194137336,
-                            1.1044947556170719,
+                            1.1044947556170719
                         ],
                         maxiters=10,
                         surface_flux=flux_kennedy_gruber,
@@ -165,13 +165,13 @@ end
                             0.03481122603050542,
                             0.027662840593087695,
                             0.027665658732350273,
-                            0.12927455860656786,
+                            0.12927455860656786
                         ],
                         linf=[
                             0.3110089578739834,
                             0.34888111987218107,
                             0.3488278669826813,
-                            1.1056349046774305,
+                            1.1056349046774305
                         ],
                         maxiters=10,
                         surface_flux=flux_chandrashekar,
@@ -192,13 +192,13 @@ end
                             0.05380629130119074,
                             0.04696798008325309,
                             0.04697067787841479,
-                            0.19687382235494968,
+                            0.19687382235494968
                         ],
                         linf=[
                             0.18527440131928286,
                             0.2404798030563736,
                             0.23269573860381076,
-                            0.6874012187446894,
+                            0.6874012187446894
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -217,13 +217,13 @@ end
                             0.08508152653623638,
                             0.04510301725066843,
                             0.04510304668512745,
-                            0.6930705064715306,
+                            0.6930705064715306
                         ],
                         linf=[
                             0.31136518019691406,
                             0.5617651935473419,
                             0.5621200790240503,
-                            2.8866869108596056,
+                            2.8866869108596056
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -249,13 +249,13 @@ end
                             0.05624855363458103,
                             0.06931288786158463,
                             0.06931283188960778,
-                            0.6200535829842072,
+                            0.6200535829842072
                         ],
                         linf=[
                             0.29029967648805566,
                             0.6494728865862608,
                             0.6494729363533714,
-                            3.0949621505674787,
+                            3.0949621505674787
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -273,13 +273,13 @@ end
                             0.14170569763947993,
                             0.11647068900798814,
                             0.11647072556898294,
-                            0.3391989213659599,
+                            0.3391989213659599
                         ],
                         linf=[
                             1.6544204510794196,
                             1.35194638484646,
                             1.3519463848472744,
-                            1.831228461662809,
+                            1.831228461662809
                         ],
                         maxiters=30)
     # Ensure that we do not have excessive memory allocations
@@ -298,13 +298,13 @@ end
                             0.39957047631960346,
                             0.21006912294983154,
                             0.21006903549932,
-                            0.6280328163981136,
+                            0.6280328163981136
                         ],
                         linf=[
                             2.20417889887697,
                             1.5487238480003327,
                             1.5486788679247812,
-                            2.4656795949035857,
+                            2.4656795949035857
                         ],
                         tspan=(0.0, 0.5),
                         # Let this test run longer to cover some lines in flux_hllc
@@ -325,13 +325,13 @@ end
                             0.6835576416907511,
                             0.2839963955262972,
                             0.28399565983676,
-                            0.7229447806293277,
+                            0.7229447806293277
                         ],
                         linf=[
                             3.0969614882801393,
                             1.7967947300740248,
                             1.7967508302506658,
-                            3.040149575567518,
+                            3.040149575567518
                         ],
                         tspan=(0.0, 1.0),
                         coverage_override=(maxiters = 6,))
@@ -352,13 +352,13 @@ end
                             0.3221177942225801,
                             0.1798478357478982,
                             0.1798364616438908,
-                            0.6136884131056267,
+                            0.6136884131056267
                         ],
                         linf=[
                             1.343766644801395,
                             1.1749593109683463,
                             1.1747613085307178,
-                            2.4216006041018785,
+                            2.4216006041018785
                         ],
                         tspan=(0.0, 0.5),
                         initial_refinement_level=4,
@@ -379,13 +379,13 @@ end
                             0.4866953770742574,
                             0.1673477470091984,
                             0.16734774700934,
-                            0.6184367248923149,
+                            0.6184367248923149
                         ],
                         linf=[
                             2.6724832723962053,
                             1.2916089288910635,
                             1.2916089289001427,
-                            6.474699399394252,
+                            6.474699399394252
                         ],
                         tspan=(0.0, 1.0),
                         coverage_override=(maxiters = 6,))
@@ -407,13 +407,13 @@ end
                             0.41444427153173785,
                             0.1460669409661223,
                             0.14606693069201596,
-                            0.6168046457461059,
+                            0.6168046457461059
                         ],
                         linf=[
                             1.5720584643579567,
                             0.7946656826861964,
                             0.7946656525739751,
-                            6.455520291414711,
+                            6.455520291414711
                         ],
                         tspan=(0.0, 1.0),
                         initial_refinement_level=4,
@@ -447,13 +447,13 @@ end
                             0.352405949321075,
                             0.17207721487429464,
                             0.17207721487433883,
-                            0.6263024434020885,
+                            0.6263024434020885
                         ],
                         linf=[
                             2.760997358628186,
                             1.8279186132509326,
                             1.8279186132502805,
-                            6.251573757093399,
+                            6.251573757093399
                         ],
                         tspan=(0.0, 0.5),
                         callbacks=CallbackSet(summary_callback,
@@ -476,13 +476,13 @@ end
                             0.48862067511841695,
                             0.16787541578869494,
                             0.16787541578869422,
-                            0.6184319933114926,
+                            0.6184319933114926
                         ],
                         linf=[
                             2.6766520821013002,
                             1.2910938760258996,
                             1.2910938760258899,
-                            6.473385481404865,
+                            6.473385481404865
                         ],
                         tspan=(0.0, 1.0),
                         coverage_override=(maxiters = 3,))
@@ -502,13 +502,13 @@ end
                             0.22271619518391986,
                             0.6284824759323494,
                             0.24864213447943648,
-                            2.9591811489995474,
+                            2.9591811489995474
                         ],
                         linf=[
                             9.15245400430106,
                             24.96562810334389,
                             10.388109127032374,
-                            101.20581544156934,
+                            101.20581544156934
                         ],
                         tspan=(0.0, 0.5))
     # Ensure that we do not have excessive memory allocations
@@ -527,13 +527,13 @@ end
                             0.2086261501910662,
                             1.2118352377894666,
                             0.10255333189606497,
-                            5.296238138639236,
+                            5.296238138639236
                         ],
                         linf=[
                             14.829071984498198,
                             74.12967742435727,
                             6.863554388300223,
-                            303.58813147491134,
+                            303.58813147491134
                         ],
                         tspan=(0.0, 0.12),
                         # Let this test run longer to cover the ControllerThreeLevelCombined lines
@@ -555,13 +555,13 @@ end
                             0.1057230211245312,
                             0.10621112311257341,
                             0.07260957505339989,
-                            0.11178239111065721,
+                            0.11178239111065721
                         ],
                         linf=[
                             2.998719417992662,
                             2.1400285015556166,
                             1.1569648700415078,
-                            1.8922492268110913,
+                            1.8922492268110913
                         ],
                         tspan=(0.0, 0.1))
     # Ensure that we do not have excessive memory allocations
@@ -581,13 +581,13 @@ end
                             0.055691508271624536,
                             0.032986009333751655,
                             0.05224390923711999,
-                            0.08009536362771563,
+                            0.08009536362771563
                         ],
                         linf=[
                             0.24043622527087494,
                             0.1660878796929941,
                             0.12355946691711608,
-                            0.2694290787257758,
+                            0.2694290787257758
                         ],
                         tspan=(0.0, 0.2))
     # Ensure that we do not have excessive memory allocations
@@ -607,13 +607,13 @@ end
                             0.05569452733654995,
                             0.033107109983417926,
                             0.05223609622852158,
-                            0.08007777597488817,
+                            0.08007777597488817
                         ],
                         linf=[
                             0.2535807803900303,
                             0.17397028249895308,
                             0.12321616095649354,
-                            0.269046666668995,
+                            0.269046666668995
                         ],
                         tspan=(0.0, 0.2),
                         coverage_override=(maxiters = 2,))
@@ -635,13 +635,13 @@ end
                             0.42185634563805724,
                             0.1686471269704017,
                             0.18240674916968103,
-                            0.17858250604280654,
+                            0.17858250604280654
                         ],
                         linf=[
                             1.7012978064377158,
                             0.7149714986746726,
                             0.5822547982757897,
-                            0.7300051017382696,
+                            0.7300051017382696
                         ],
                         tspan=(0.0, 2.0),
                         coverage_override=(maxiters = 7,),
@@ -666,13 +666,13 @@ end
                             0.007237139090503349,
                             0.044887582765386916,
                             1.0453570959003603e-6,
-                            0.6627307840935432,
+                            0.6627307840935432
                         ],
                         linf=[
                             0.19437260992446315,
                             0.5554343646648533,
                             5.943891455255412e-5,
-                            15.188919846360125,
+                            15.188919846360125
                         ],
                         tspan=(0.0, 0.1))
     # Ensure that we do not have excessive memory allocations
@@ -691,13 +691,13 @@ end
                             0.006768801432802192,
                             0.032184992228603666,
                             6.923887797276484e-7,
-                            0.6784222932398366,
+                            0.6784222932398366
                         ],
                         linf=[
                             0.2508663007713608,
                             0.4097017076529792,
                             0.0003528986458217968,
-                            22.435474993016918,
+                            22.435474993016918
                         ],
                         tspan=(0.0, 0.1),
                         coverage_override=(maxiters = 2,))
@@ -717,13 +717,13 @@ end
                             0.011338365293662804,
                             10.09743543555765,
                             0.00392429463200361,
-                            4031.7811487690506,
+                            4031.7811487690506
                         ],
                         linf=[
                             3.3178633141984193,
                             2993.6445033486402,
                             8.031723414357423,
-                            1.1918867260293828e6,
+                            1.1918867260293828e6
                         ],
                         tspan=(0.0, 1.0e-7),
                         coverage_override=(maxiters = 6,))
@@ -743,13 +743,13 @@ end
                             0.00013492249515826863,
                             0.006615696236378061,
                             0.006782108219800376,
-                            0.016393831451740604,
+                            0.016393831451740604
                         ],
                         linf=[
                             0.0020782600954247776,
                             0.08150078921935999,
                             0.08663621974991986,
-                            0.2829930622010579,
+                            0.2829930622010579
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -768,13 +768,13 @@ end
                             0.0017208369388227673,
                             0.09628684992237334,
                             0.09620157717330868,
-                            0.1758809552387432,
+                            0.1758809552387432
                         ],
                         linf=[
                             0.021869936355319086,
                             0.9956698009442038,
                             1.0002507727219028,
-                            2.223249697515648,
+                            2.223249697515648
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -792,13 +792,13 @@ end
                             0.0017203323613648241,
                             0.09628962878682261,
                             0.09621241164155782,
-                            0.17585995600340926,
+                            0.17585995600340926
                         ],
                         linf=[
                             0.021740570456931674,
                             0.9938841665880938,
                             1.004140123355135,
-                            2.224108857746245,
+                            2.224108857746245
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -816,13 +816,13 @@ end
                             0.0017158367642679273,
                             0.09619888722871434,
                             0.09616432767924141,
-                            0.17553381166255197,
+                            0.17553381166255197
                         ],
                         linf=[
                             0.021853862449723982,
                             0.9878047229255944,
                             0.9880191167111795,
-                            2.2154030488035588,
+                            2.2154030488035588
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -841,13 +841,13 @@ end
                             0.0017203324051381415,
                             0.09628962899999398,
                             0.0962124115572114,
-                            0.1758599596626405,
+                            0.1758599596626405
                         ],
                         linf=[
                             0.021740568112562086,
                             0.9938841624655501,
                             1.0041401179009877,
-                            2.2241087041100798,
+                            2.2241087041100798
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -866,13 +866,13 @@ end
                             5.051719943432265e-5,
                             0.0022574259317084747,
                             0.0021755998463189713,
-                            0.004346492398617521,
+                            0.004346492398617521
                         ],
                         linf=[
                             0.0012880114865917447,
                             0.03857193149447702,
                             0.031090457959835893,
-                            0.12125130332971423,
+                            0.12125130332971423
                         ],
                         # Let this test run longer to cover some lines in the AMR indicator
                         coverage_override=(maxiters = 10^5, tspan = (0.0, 10.5)))
@@ -892,13 +892,13 @@ end
                             0.03341239373099515,
                             0.026673245711492915,
                             0.026678871434568822,
-                            0.12397486476145089,
+                            0.12397486476145089
                         ],
                         linf=[
                             0.3290981764688339,
                             0.3812055782309788,
                             0.3812041851225023,
-                            1.168251216556933,
+                            1.168251216556933
                         ],
                         periodicity=false,
                         boundary_conditions=boundary_condition_slip_wall,
@@ -919,13 +919,13 @@ end
                             0.0001379946769624388,
                             0.02078779689715382,
                             0.033237241571263176,
-                            31.36068872331705,
+                            31.36068872331705
                         ],
                         linf=[
                             0.0016286690573188434,
                             0.15623770697198225,
                             0.3341371832270615,
-                            334.5373488726036,
+                            334.5373488726036
                         ],
                         tspan=(0.0, 10.0),
                         initial_refinement_level=4)
@@ -947,13 +947,13 @@ end
                                 1.1790213022362371e-16,
                                 8.580657423476384e-17,
                                 1.3082387431804115e-16,
-                                1.6182739965672862e-15,
+                                1.6182739965672862e-15
                             ],
                             linf=[
                                 3.3306690738754696e-16,
                                 2.220446049250313e-16,
                                 5.273559366969494e-16,
-                                3.552713678800501e-15,
+                                3.552713678800501e-15
                             ],
                             maxiters=1,
                             initial_condition=initial_condition_constant)
@@ -973,13 +973,13 @@ end
                                 0.0021196114178949396,
                                 0.010703549234544042,
                                 0.01070354923454404,
-                                0.10719124037195142,
+                                0.10719124037195142
                             ],
                             linf=[
                                 0.11987270645890724,
                                 0.7468615461136827,
                                 0.7468615461136827,
-                                3.910689155287799,
+                                3.910689155287799
                             ],
                             maxiters=1)
 
diff --git a/test/test_tree_2d_euleracoustics.jl b/test/test_tree_2d_euleracoustics.jl
index e3a4d65f398..2ca893899bf 100644
--- a/test/test_tree_2d_euleracoustics.jl
+++ b/test/test_tree_2d_euleracoustics.jl
@@ -22,7 +22,7 @@ EXAMPLES_DIR = joinpath(examples_dir(), "tree_2d_dgsem")
                             13.000001753042364,
                             26.00000080243847,
                             38.00000884725549,
-                            51.000000003859995,
+                            51.000000003859995
                         ],
                         linf=[
                             0.22312716933051027,
@@ -31,7 +31,7 @@ EXAMPLES_DIR = joinpath(examples_dir(), "tree_2d_dgsem")
                             13.468872744263273,
                             26.54666679978679,
                             38.139032147739684,
-                            51.378134660241294,
+                            51.378134660241294
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_tree_2d_eulermulti.jl b/test/test_tree_2d_eulermulti.jl
index 5b984611687..2f460e512fd 100644
--- a/test/test_tree_2d_eulermulti.jl
+++ b/test/test_tree_2d_eulermulti.jl
@@ -40,14 +40,14 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                                 0.9174752929795251,
                                 57942.83587826468,
                                 0.1828847253029943,
-                                0.011127037850925347,
+                                0.011127037850925347
                             ],
                             linf=[
                                 196.81051991521073,
                                 7.8456811648529605,
                                 158891.88930113698,
                                 0.811379581519794,
-                                0.08011973559187913,
+                                0.08011973559187913
                             ],
                             tspan=(0.0, 0.001))
         # Ensure that we do not have excessive memory allocations
@@ -69,14 +69,14 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                                 2.5455678559421346,
                                 63229.190712645846,
                                 0.19929478404550321,
-                                0.011068604228443425,
+                                0.011068604228443425
                             ],
                             linf=[
                                 249.21708417382013,
                                 40.33299887640794,
                                 174205.0118831558,
                                 0.6881458768113586,
-                                0.11274401158173972,
+                                0.11274401158173972
                             ],
                             initial_refinement_level=3,
                             tspan=(0.0, 0.001),
@@ -103,14 +103,14 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                                 1.4599090197303102,
                                 57176.23978426408,
                                 0.17812910616624406,
-                                0.010123079422717837,
+                                0.010123079422717837
                             ],
                             linf=[
                                 214.50568817511956,
                                 25.40392579616452,
                                 152862.41011222568,
                                 0.564195553101797,
-                                0.0956331651771212,
+                                0.0956331651771212
                             ],
                             initial_refinement_level=3,
                             tspan=(0.0, 0.001))
@@ -130,13 +130,13 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                                 0.050182236154087095,
                                 0.050189894464434635,
                                 0.2258715597305131,
-                                0.06175171559771687,
+                                0.06175171559771687
                             ],
                             linf=[
                                 0.3108124923284472,
                                 0.3107380389947733,
                                 1.054035804988521,
-                                0.29347582879608936,
+                                0.29347582879608936
                             ])
         # Ensure that we do not have excessive memory allocations
         # (e.g., from type instabilities)
@@ -157,7 +157,7 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                                 0.004087155041747821,
                                 0.008174310083495642,
                                 0.016348620166991283,
-                                0.032697240333982566,
+                                0.032697240333982566
                             ],
                             linf=[
                                 0.2488251110766228,
@@ -166,7 +166,7 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                                 0.017452870465607374,
                                 0.03490574093121475,
                                 0.0698114818624295,
-                                0.139622963724859,
+                                0.139622963724859
                             ])
         # Ensure that we do not have excessive memory allocations
         # (e.g., from type instabilities)
@@ -185,14 +185,14 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                                 0.00012290225488321876,
                                 0.00018867397906337653,
                                 4.8542321753649044e-5,
-                                9.708464350729809e-5,
+                                9.708464350729809e-5
                             ],
                             linf=[
                                 0.0006722819239133315,
                                 0.0006722819239128874,
                                 0.0012662292789555885,
                                 0.0002843844182700561,
-                                0.0005687688365401122,
+                                0.0005687688365401122
                             ])
         # Ensure that we do not have excessive memory allocations
         # (e.g., from type instabilities)
@@ -211,14 +211,14 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                                 2.266177386666318e-6,
                                 6.593514692980009e-6,
                                 8.836308667348217e-7,
-                                1.7672617334696433e-6,
+                                1.7672617334696433e-6
                             ],
                             linf=[
                                 1.4713170997993075e-5,
                                 1.4713170997104896e-5,
                                 5.115618808515521e-5,
                                 5.3639516094383666e-6,
-                                1.0727903218876733e-5,
+                                1.0727903218876733e-5
                             ])
         # Ensure that we do not have excessive memory allocations
         # (e.g., from type instabilities)
@@ -237,14 +237,14 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                                 1.862173764098385e-6,
                                 5.942585713809631e-6,
                                 6.216263279534722e-7,
-                                1.2432526559069443e-6,
+                                1.2432526559069443e-6
                             ],
                             linf=[
                                 1.6235495582606063e-5,
                                 1.6235495576388814e-5,
                                 5.854523678827661e-5,
                                 5.790274858807898e-6,
-                                1.1580549717615796e-5,
+                                1.1580549717615796e-5
                             ],
                             volume_flux=flux_chandrashekar)
         # Ensure that we do not have excessive memory allocations
diff --git a/test/test_tree_2d_eulerpolytropic.jl b/test/test_tree_2d_eulerpolytropic.jl
index 545cf7274ff..dd6bb5700c2 100644
--- a/test/test_tree_2d_eulerpolytropic.jl
+++ b/test/test_tree_2d_eulerpolytropic.jl
@@ -15,11 +15,11 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                                  "elixir_eulerpolytropic_convergence.jl"),
                         l2=[
                             0.0016689832177626373, 0.0025920263793094526,
-                            0.003281074494626679,
+                            0.003281074494626679
                         ],
                         linf=[
                             0.010994883201896677, 0.013309526619350365,
-                            0.02008032661117376,
+                            0.02008032661117376
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_tree_2d_fdsbp.jl b/test/test_tree_2d_fdsbp.jl
index d477cab0563..ae0bb4157d7 100644
--- a/test/test_tree_2d_fdsbp.jl
+++ b/test/test_tree_2d_fdsbp.jl
@@ -56,13 +56,13 @@ end
                                 1.7088389997042244e-6,
                                 1.7437997855125774e-6,
                                 1.7437997855350776e-6,
-                                5.457223460127621e-6,
+                                5.457223460127621e-6
                             ],
                             linf=[
                                 9.796504903736292e-6,
                                 9.614745892783105e-6,
                                 9.614745892783105e-6,
-                                4.026107182575345e-5,
+                                4.026107182575345e-5
                             ],
                             tspan=(0.0, 0.1))
 
@@ -82,13 +82,13 @@ end
                                 2.1149087345799973e-6,
                                 1.9391438806845798e-6,
                                 1.9391438806759794e-6,
-                                5.842833764682604e-6,
+                                5.842833764682604e-6
                             ],
                             linf=[
                                 1.3679037540903494e-5,
                                 1.1770587849069258e-5,
                                 1.1770587848403125e-5,
-                                4.68952678644996e-5,
+                                4.68952678644996e-5
                             ],
                             tspan=(0.0, 0.1), flux_splitting=splitting_lax_friedrichs)
 
@@ -108,13 +108,13 @@ end
                                 1.708838999643608e-6,
                                 1.7437997854485807e-6,
                                 1.7437997854741082e-6,
-                                5.457223460116349e-6,
+                                5.457223460116349e-6
                             ],
                             linf=[
                                 9.796504911285808e-6,
                                 9.614745899888533e-6,
                                 9.614745899444443e-6,
-                                4.02610718399643e-5,
+                                4.02610718399643e-5
                             ],
                             tspan=(0.0, 0.1), flux_splitting=splitting_drikakis_tsangaris)
 
@@ -135,13 +135,13 @@ end
                                 0.02607850081951497,
                                 0.020357717558016252,
                                 0.028510191844948945,
-                                0.02951535039734857,
+                                0.02951535039734857
                             ],
                             linf=[
                                 0.12185328623662173,
                                 0.1065055387595834,
                                 0.06257122956937419,
-                                0.11992349951978643,
+                                0.11992349951978643
                             ],
                             tspan=(0.0, 0.1))
 
@@ -161,13 +161,13 @@ end
                                 0.0005330228930711585,
                                 0.028475888529345014,
                                 0.02847513865894387,
-                                0.056259951995581196,
+                                0.056259951995581196
                             ],
                             linf=[
                                 0.007206088611304784,
                                 0.31690373882847234,
                                 0.31685665067192326,
-                                0.7938167296134893,
+                                0.7938167296134893
                             ],
                             tspan=(0.0, 0.25))
 
diff --git a/test/test_tree_2d_hypdiff.jl b/test/test_tree_2d_hypdiff.jl
index 8c5973cbf07..a89bbc977c4 100644
--- a/test/test_tree_2d_hypdiff.jl
+++ b/test/test_tree_2d_hypdiff.jl
@@ -15,12 +15,12 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                         l2=[
                             0.00015687751817403066,
                             0.001025986772216324,
-                            0.0010259867722164071,
+                            0.0010259867722164071
                         ],
                         linf=[
                             0.001198695637957381,
                             0.006423873515531753,
-                            0.006423873515533529,
+                            0.006423873515533529
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -38,12 +38,12 @@ end
                         l2=[
                             8.618132355121019e-8,
                             5.619399844384306e-7,
-                            5.619399844844044e-7,
+                            5.619399844844044e-7
                         ],
                         linf=[
                             1.1248618588430072e-6,
                             8.622436487026874e-6,
-                            8.622436487915053e-6,
+                            8.622436487915053e-6
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -60,12 +60,12 @@ end
                         l2=[
                             8.523077653954864e-6,
                             2.8779323653020624e-5,
-                            5.454942769125663e-5,
+                            5.454942769125663e-5
                         ],
                         linf=[
                             5.522740952468297e-5,
                             0.00014544895978971679,
-                            0.00032396328684924924,
+                            0.00032396328684924924
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -82,12 +82,12 @@ end
                         l2=[
                             5.868147556427088e-6,
                             3.80517927324465e-5,
-                            3.805179273249344e-5,
+                            3.805179273249344e-5
                         ],
                         linf=[
                             3.701965498725812e-5,
                             0.0002122422943138247,
-                            0.00021224229431116015,
+                            0.00021224229431116015
                         ],
                         atol=2.0e-12) #= required for CI on macOS =#
     # Ensure that we do not have excessive memory allocations
diff --git a/test/test_tree_2d_linearizedeuler.jl b/test/test_tree_2d_linearizedeuler.jl
index 7bdb83e328e..b1d34895a63 100644
--- a/test/test_tree_2d_linearizedeuler.jl
+++ b/test/test_tree_2d_linearizedeuler.jl
@@ -15,13 +15,13 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                             0.00020601485381444888,
                             0.00013380483421751216,
                             0.0001338048342174503,
-                            0.00020601485381444888,
+                            0.00020601485381444888
                         ],
                         linf=[
                             0.0011006084408365924,
                             0.0005788678074691855,
                             0.0005788678074701847,
-                            0.0011006084408365924,
+                            0.0011006084408365924
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -39,13 +39,13 @@ end
                             0.048185623945503485,
                             0.01941899333212175,
                             0.019510224816991825,
-                            0.048185623945503485,
+                            0.048185623945503485
                         ],
                         linf=[
                             1.0392165942153189,
                             0.18188777290819994,
                             0.1877028372108587,
-                            1.0392165942153189,
+                            1.0392165942153189
                         ])
 
     # Ensure that we do not have excessive memory allocations
diff --git a/test/test_tree_2d_mhd.jl b/test/test_tree_2d_mhd.jl
index 66b47138a44..bebab54ff09 100644
--- a/test/test_tree_2d_mhd.jl
+++ b/test/test_tree_2d_mhd.jl
@@ -21,7 +21,7 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                             1.2542675002588144e-6,
                             1.2542675002747718e-6,
                             1.8705223407238346e-6,
-                            4.651717010670585e-7,
+                            4.651717010670585e-7
                         ],
                         linf=[
                             0.00026806333988971254,
@@ -32,7 +32,7 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem")
                             8.130129322880819e-6,
                             8.130129322769797e-6,
                             1.2406302192291552e-5,
-                            2.373765544951732e-6,
+                            2.373765544951732e-6
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -55,7 +55,7 @@ end
                             1.07029565814218e-6,
                             1.0702956581404748e-6,
                             1.3291748105236525e-6,
-                            4.6172239295786824e-7,
+                            4.6172239295786824e-7
                         ],
                         linf=[
                             9.865325754310206e-6,
@@ -66,7 +66,7 @@ end
                             7.789533065905019e-6,
                             7.789533065905019e-6,
                             1.0933531593274037e-5,
-                            2.340244047768378e-6,
+                            2.340244047768378e-6
                         ],
                         volume_flux=(flux_derigs_etal, flux_nonconservative_powell))
     # Ensure that we do not have excessive memory allocations
@@ -90,7 +90,7 @@ end
                             1.456369119716533e-6,
                             1.4115666913995062e-6,
                             1.804758237422838e-6,
-                            8.320469738087189e-7,
+                            8.320469738087189e-7
                         ],
                         linf=[
                             3.670661330201774e-5,
@@ -101,7 +101,7 @@ end
                             1.0906323046233624e-5,
                             1.0603954940346938e-5,
                             1.5900499596113726e-5,
-                            5.978772247650426e-6,
+                            5.978772247650426e-6
                         ],
                         tspan=(0.0, 1.0))
     # Ensure that we do not have excessive memory allocations
@@ -125,7 +125,7 @@ end
                             0.01745369341302589,
                             0.017454552320664566,
                             0.026873190440613117,
-                            5.336243933079389e-16,
+                            5.336243933079389e-16
                         ],
                         linf=[
                             0.23623816236321427,
@@ -136,7 +136,7 @@ end
                             0.09398098096581875,
                             0.09470282020962917,
                             0.15277253978297378,
-                            4.307694418935709e-15,
+                            4.307694418935709e-15
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -159,7 +159,7 @@ end
                             0.23028914748088603,
                             0.34413527376463915,
                             0.0,
-                            0.003178793090381426,
+                            0.003178793090381426
                         ],
                         linf=[
                             1.2749969218080568,
@@ -170,7 +170,7 @@ end
                             0.6473347557712643,
                             0.9691773375490476,
                             0.0,
-                            0.05729832038724348,
+                            0.05729832038724348
                         ],
                         tspan=(0.0, 0.09))
     # Ensure that we do not have excessive memory allocations
@@ -194,7 +194,7 @@ end
                             0.15688413207147794,
                             0.24293641543490646,
                             0.0,
-                            0.003246181006326598,
+                            0.003246181006326598
                         ],
                         linf=[
                             0.560316034595759,
@@ -205,7 +205,7 @@ end
                             0.3981375420906146,
                             0.673472146198816,
                             0.0,
-                            0.04879208429337193,
+                            0.04879208429337193
                         ],
                         tspan=(0.0, 0.06),
                         surface_flux=(flux_hlle,
@@ -231,7 +231,7 @@ end
                             3.9171737639099993e-16,
                             2.445565690318772e-16,
                             3.6588423152083e-17,
-                            9.971153407737885e-17,
+                            9.971153407737885e-17
                         ],
                         linf=[
                             2.220446049250313e-16,
@@ -242,7 +242,7 @@ end
                             8.881784197001252e-16,
                             4.440892098500626e-16,
                             1.1102230246251565e-16,
-                            4.779017148551244e-16,
+                            4.779017148551244e-16
                         ],
                         maxiters=1,
                         initial_condition=initial_condition_constant,
@@ -268,7 +268,7 @@ end
                             0.2147235065899803,
                             0.23558337696054493,
                             0.0,
-                            0.0032515115395693483,
+                            0.0032515115395693483
                         ],
                         linf=[
                             11.003677581472843,
@@ -279,7 +279,7 @@ end
                             1.3283750501377847,
                             1.4365828094434892,
                             0.0,
-                            0.07886241196068537,
+                            0.07886241196068537
                         ],
                         tspan=(0.0, 0.05))
     # Ensure that we do not have excessive memory allocations
@@ -303,7 +303,7 @@ end
                             2.359493623565687,
                             1.4030741420730297,
                             0.0,
-                            0.029613599942667133,
+                            0.029613599942667133
                         ],
                         linf=[
                             1.581630420824181,
@@ -314,7 +314,7 @@ end
                             13.07679044647926,
                             9.14612176426092,
                             0.0,
-                            0.5154756722488522,
+                            0.5154756722488522
                         ],
                         tspan=(0.0, 0.003),
                         # Calling the AnalysisCallback before iteration 9 causes the interpolation
@@ -341,7 +341,7 @@ end
                             8.4091669534557805e-03,
                             5.2156364913231732e-03,
                             0.0000000000000000e+00,
-                            2.0786952301129021e-04,
+                            2.0786952301129021e-04
                         ],
                         linf=[
                             3.8778760255775635e-01,
@@ -352,7 +352,7 @@ end
                             1.0264404591009069e-01,
                             1.0655686942176350e-01,
                             0.0000000000000000e+00,
-                            6.1013422157115546e-03,
+                            6.1013422157115546e-03
                         ],
                         tspan=(0.0, 0.003))
     # Ensure that we do not have excessive memory allocations 
diff --git a/test/test_tree_2d_shallowwater.jl b/test/test_tree_2d_shallowwater.jl
index 9a3ba36c7d4..08be40d4b63 100644
--- a/test/test_tree_2d_shallowwater.jl
+++ b/test/test_tree_2d_shallowwater.jl
@@ -16,13 +16,13 @@ EXAMPLES_DIR = joinpath(examples_dir(), "tree_2d_dgsem")
                             0.9911802019934329,
                             0.7340106828033273,
                             0.7446338002084801,
-                            0.5875351036989047,
+                            0.5875351036989047
                         ],
                         linf=[
                             2.0120253138457564,
                             2.991158989293406,
                             2.6557412817714035,
-                            3.0,
+                            3.0
                         ],
                         tspan=(0.0, 0.25))
     # Ensure that we do not have excessive memory allocations
@@ -41,13 +41,13 @@ end
                             0.9130579602987144,
                             1.0602847041965408e-14,
                             1.082225645390032e-14,
-                            0.9130579602987147,
+                            0.9130579602987147
                         ],
                         linf=[
                             2.113062037615659,
                             4.6613606802974e-14,
                             5.4225772771633196e-14,
-                            2.1130620376156584,
+                            2.1130620376156584
                         ],
                         tspan=(0.0, 0.25))
     # Ensure that we do not have excessive memory allocations
@@ -67,13 +67,13 @@ end
                             0.9130579602987144,
                             1.0602847041965408e-14,
                             1.082225645390032e-14,
-                            0.9130579602987147,
+                            0.9130579602987147
                         ],
                         linf=[
                             2.113062037615659,
                             4.6613606802974e-14,
                             5.4225772771633196e-14,
-                            2.1130620376156584,
+                            2.1130620376156584
                         ],
                         tspan=(0.0, 0.25))
     # Ensure that we do not have excessive memory allocations
@@ -92,13 +92,13 @@ end
                             0.9130579602987147,
                             9.68729463970494e-15,
                             9.694538537436981e-15,
-                            0.9130579602987147,
+                            0.9130579602987147
                         ],
                         linf=[
                             2.1130620376156584,
                             2.3875905654916432e-14,
                             2.2492839032269154e-14,
-                            2.1130620376156584,
+                            2.1130620376156584
                         ],
                         surface_flux=(FluxHydrostaticReconstruction(flux_lax_friedrichs,
                                                                     hydrostatic_reconstruction_audusse_etal),
@@ -120,13 +120,13 @@ end
                             0.9130579602987146,
                             1.0323158914614244e-14,
                             1.0276096319430528e-14,
-                            0.9130579602987147,
+                            0.9130579602987147
                         ],
                         linf=[
                             2.11306203761566,
                             4.063916419044386e-14,
                             3.694484044448245e-14,
-                            2.1130620376156584,
+                            2.1130620376156584
                         ],
                         surface_flux=(flux_wintermeyer_etal,
                                       flux_nonconservative_ersing_etal),
@@ -149,13 +149,13 @@ end
                             0.001868474306068482,
                             0.01731687445878443,
                             0.017649083171490863,
-                            6.274146767717023e-5,
+                            6.274146767717023e-5
                         ],
                         linf=[
                             0.016962486402209986,
                             0.08768628853889782,
                             0.09038488750767648,
-                            0.0001819675955490041,
+                            0.0001819675955490041
                         ],
                         tspan=(0.0, 0.025))
     # Ensure that we do not have excessive memory allocations
@@ -175,13 +175,13 @@ end
                             0.0018746929418489125,
                             0.017332321628469628,
                             0.01634953679145536,
-                            6.274146767717023e-5,
+                            6.274146767717023e-5
                         ],
                         linf=[
                             0.016262353691956388,
                             0.08726160620859424,
                             0.09043621801418844,
-                            0.0001819675955490041,
+                            0.0001819675955490041
                         ],
                         tspan=(0.0, 0.025))
     # Ensure that we do not have excessive memory allocations
@@ -200,13 +200,13 @@ end
                             0.0018952610547425214,
                             0.016943425162728183,
                             0.017556784292859465,
-                            6.274146767717414e-5,
+                            6.274146767717414e-5
                         ],
                         linf=[
                             0.0151635341334182,
                             0.07967467926956129,
                             0.08400050790965174,
-                            0.0001819675955490041,
+                            0.0001819675955490041
                         ],
                         tspan=(0.0, 0.025),
                         surface_flux=(flux_hll,
@@ -227,13 +227,13 @@ end
                             0.0018957692481057034,
                             0.016943229710439864,
                             0.01755623297390675,
-                            6.274146767717414e-5,
+                            6.274146767717414e-5
                         ],
                         linf=[
                             0.015156105797771602,
                             0.07964811135780492,
                             0.0839787097210376,
-                            0.0001819675955490041,
+                            0.0001819675955490041
                         ],
                         tspan=(0.0, 0.025),
                         surface_flux=(FluxHLL(min_max_speed_naive),
@@ -254,13 +254,13 @@ end
                             0.002471853426064005,
                             0.05619168608950033,
                             0.11844727575152562,
-                            6.274146767730281e-5,
+                            6.274146767730281e-5
                         ],
                         linf=[
                             0.014332922987500218,
                             0.2141204806174546,
                             0.5392313755637872,
-                            0.0001819675955490041,
+                            0.0001819675955490041
                         ],
                         surface_flux=(flux_wintermeyer_etal,
                                       flux_nonconservative_ersing_etal),
@@ -283,13 +283,13 @@ end
                             0.1351723240085936,
                             0.20010881416550014,
                             0.2001088141654999,
-                            2.719538414346464e-7,
+                            2.719538414346464e-7
                         ],
                         linf=[
                             0.5303608302490757,
                             0.5080987791967457,
                             0.5080987791967506,
-                            1.1301675764130437e-6,
+                            1.1301675764130437e-6
                         ],
                         tspan=(0.0, 0.25))
     # Ensure that we do not have excessive memory allocations
diff --git a/test/test_tree_3d_euler.jl b/test/test_tree_3d_euler.jl
index 47669dce2fb..03ff2c53784 100644
--- a/test/test_tree_3d_euler.jl
+++ b/test/test_tree_3d_euler.jl
@@ -17,14 +17,14 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_3d_dgsem")
                             0.009776048833895767,
                             0.00977604883389591,
                             0.009776048833895733,
-                            0.01506687097416608,
+                            0.01506687097416608
                         ],
                         linf=[
                             0.03285848350791731,
                             0.0321792316408982,
                             0.032179231640894645,
                             0.032179231640895534,
-                            0.0655408023333299,
+                            0.0655408023333299
                         ],
                         # With the default `maxiters = 1` in coverage tests,
                         # there would be no time series to check against.
@@ -51,21 +51,21 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_3d_dgsem")
             1.952073047561595,
             1.9520730475615966,
             1.9520730475615953,
-            3.814390510967551,
+            3.814390510967551
         ],
         [
             2.0506452262144363,
             2.050727319703708,
             2.0507273197037073,
             2.0507273197037077,
-            4.203653999433724,
+            4.203653999433724
         ],
         [
             2.046982357537558,
             2.0463728824399654,
             2.0463728824399654,
             2.0463728824399645,
-            4.190033459318115,
+            4.190033459318115
         ]]
     @test point_data≈exact_data atol=1e-1
     @test point_data ≈ ref_data
@@ -78,14 +78,14 @@ end
                             0.032062252638283974,
                             0.032062252638283974,
                             0.03206225263828395,
-                            0.12228177813586687,
+                            0.12228177813586687
                         ],
                         linf=[
                             0.0693648413632646,
                             0.0622101894740843,
                             0.06221018947408474,
                             0.062210189474084965,
-                            0.24196451799555962,
+                            0.24196451799555962
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -104,14 +104,14 @@ end
                             0.009776048833894784,
                             0.009776048833894784,
                             0.009776048833894765,
-                            0.015066870974164096,
+                            0.015066870974164096
                         ],
                         linf=[
                             0.03285848350791687,
                             0.032179231640897754,
                             0.0321792316408942,
                             0.0321792316408982,
-                            0.06554080233333615,
+                            0.06554080233333615
                         ],
                         volume_integral=VolumeIntegralFluxDifferencing(flux_central))
     # Ensure that we do not have excessive memory allocations
@@ -129,12 +129,12 @@ end
                         l2=[
                             0.0003637241020254673, 0.00039555708663848046,
                             0.00039555708663832644, 0.0003955570866385083,
-                            0.0007811613481643962,
+                            0.0007811613481643962
                         ],
                         linf=[
                             0.0024000660244567484, 0.002963541002521053,
                             0.0029635410025201647, 0.002963541002522385,
-                            0.007191437359379549,
+                            0.007191437359379549
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -153,14 +153,14 @@ end
                             0.0018659907926698422,
                             0.0018659907926698589,
                             0.0018659907926698747,
-                            0.0034549095578444056,
+                            0.0034549095578444056
                         ],
                         linf=[
                             0.011355360771142298,
                             0.011526889155693887,
                             0.011526889155689002,
                             0.011526889155701436,
-                            0.02299726519821288,
+                            0.02299726519821288
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -179,14 +179,14 @@ end
                             0.003828192061340465,
                             0.0038281920613404694,
                             0.0038281920613404672,
-                            0.005742288092010652,
+                            0.005742288092010652
                         ],
                         linf=[
                             0.07390396464027349,
                             0.07390396464027305,
                             0.07390396464027305,
                             0.07390396464027305,
-                            0.11085594696041134,
+                            0.11085594696041134
                         ],
                         tspan=(0.0, 0.1),
                         coverage_override=(maxiters = 6, initial_refinement_level = 0,
@@ -208,14 +208,14 @@ end
                             0.03133384111621587,
                             0.03133384111621582,
                             0.04378599329988925,
-                            0.015796137903453026,
+                            0.015796137903453026
                         ],
                         linf=[
                             0.0013935237751798724,
                             0.0724080091006194,
                             0.07240800910061806,
                             0.12795921224174792,
-                            0.07677156293692633,
+                            0.07677156293692633
                         ],
                         tspan=(0.0, 0.5))
     # Ensure that we do not have excessive memory allocations
@@ -235,14 +235,14 @@ end
                             0.016179934130642552,
                             0.01617993413064253,
                             0.016172648598753545,
-                            0.09261669328795467,
+                            0.09261669328795467
                         ],
                         linf=[
                             0.3954458125573179,
                             0.26876916180359345,
                             0.26876916180359345,
                             0.26933123042178553,
-                            1.3724137121660251,
+                            1.3724137121660251
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -264,14 +264,14 @@ end
                             0.012771561294571411,
                             0.01277156129457143,
                             0.012770635779336643,
-                            0.08091898488262424,
+                            0.08091898488262424
                         ],
                         linf=[
                             0.4047819603427084,
                             0.27493532130155474,
                             0.2749353213015551,
                             0.2749304638368023,
-                            1.4053942765487641,
+                            1.4053942765487641
                         ],
                         maxiters=10,
                         coverage_override=(maxiters = 2,))
@@ -292,14 +292,14 @@ end
                             0.057196526814004715,
                             0.05719652681400473,
                             0.057196526814004736,
-                            0.08579479022100575,
+                            0.08579479022100575
                         ],
                         linf=[
                             0.27415246703018203,
                             0.2741524670301829,
                             0.2741524670301827,
                             0.27415246703018226,
-                            0.41122870054527816,
+                            0.41122870054527816
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -318,14 +318,14 @@ end
                             0.016632068583699623,
                             0.016632068583699623,
                             0.01662548715216875,
-                            0.0913477018048886,
+                            0.0913477018048886
                         ],
                         linf=[
                             0.4372549540810414,
                             0.28613118232798984,
                             0.28613118232799006,
                             0.28796686065271876,
-                            1.5072828647309124,
+                            1.5072828647309124
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -344,14 +344,14 @@ end
                             6.059779958716338e-16,
                             4.916596221090319e-16,
                             9.739943366304456e-16,
-                            3.7485908743251566e-15,
+                            3.7485908743251566e-15
                         ],
                         linf=[
                             2.4424906541753444e-15,
                             3.733124920302089e-15,
                             4.440892098500626e-15,
                             5.329070518200751e-15,
-                            2.4868995751603507e-14,
+                            2.4868995751603507e-14
                         ],
                         initial_condition=initial_condition_constant)
     # Ensure that we do not have excessive memory allocations
@@ -371,14 +371,14 @@ end
                             0.016649800693500427,
                             0.01664980069350042,
                             0.01664379306708522,
-                            0.09137248646784184,
+                            0.09137248646784184
                         ],
                         linf=[
                             0.4373399329742198,
                             0.28434487167605427,
                             0.28434487167605427,
                             0.28522678968890774,
-                            1.532471676033761,
+                            1.532471676033761
                         ],
                         surface_flux=flux_chandrashekar, volume_flux=flux_chandrashekar)
     # Ensure that we do not have excessive memory allocations
@@ -398,14 +398,14 @@ end
                             0.016675487948639846,
                             0.016675487948639853,
                             0.016668992714991282,
-                            0.091455613470441,
+                            0.091455613470441
                         ],
                         linf=[
                             0.43348628145015766,
                             0.28853549062014217,
                             0.28853549062014217,
                             0.2903943042772536,
-                            1.5236557526482426,
+                            1.5236557526482426
                         ],
                         surface_flux=flux_kennedy_gruber,
                         volume_flux=flux_kennedy_gruber)
@@ -426,14 +426,14 @@ end
                             0.016637655557848952,
                             0.01663765555784895,
                             0.01663105921013437,
-                            0.09136239054024566,
+                            0.09136239054024566
                         ],
                         linf=[
                             0.43692416928732536,
                             0.28622033209064734,
                             0.28622033209064746,
                             0.2881197143457632,
-                            1.506534270303663,
+                            1.506534270303663
                         ],
                         surface_flux=flux_shima_etal, volume_flux=flux_shima_etal)
     # Ensure that we do not have excessive memory allocations
@@ -453,14 +453,14 @@ end
                             0.2640486962336911,
                             0.0354927658652858,
                             0.03549276586528571,
-                            1.0777274757408568,
+                            1.0777274757408568
                         ],
                         linf=[
                             9.558543313792217,
                             49.4518309553356,
                             10.319859082570309,
                             10.319859082570487,
-                            195.1066220797401,
+                            195.1066220797401
                         ],
                         tspan=(0.0, 0.2),
                         # Let this test run longer to cover some lines in the positivity preserving limiter
@@ -483,14 +483,14 @@ end
                             0.0023166296394624025,
                             0.002316629639462401,
                             0.0023166296394624038,
-                            0.010200581509653256,
+                            0.010200581509653256
                         ],
                         linf=[
                             0.06344190883105805,
                             0.6292607955969378,
                             0.6292607955969377,
                             0.6292607955969377,
-                            2.397746252817731,
+                            2.397746252817731
                         ],
                         maxiters=5, max_level=6,
                         surface_flux=FluxHLL(min_max_speed_naive),
@@ -513,14 +513,14 @@ end
                             0.0037168004033428146,
                             0.0037168004033428094,
                             0.0037168004033428514,
-                            0.011119869089205635,
+                            0.011119869089205635
                         ],
                         linf=[
                             0.13982864363612468,
                             0.786004687738243,
                             0.786004687738243,
                             0.7860046877382431,
-                            1.7082524045150382,
+                            1.7082524045150382
                         ],
                         tspan=(0.0, 0.01),
                         surface_flux=flux_hlle)
diff --git a/test/test_tree_3d_eulergravity.jl b/test/test_tree_3d_eulergravity.jl
index 1b5e715f774..a1eedd14446 100644
--- a/test/test_tree_3d_eulergravity.jl
+++ b/test/test_tree_3d_eulergravity.jl
@@ -17,14 +17,14 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_3d_dgsem")
                             0.00047204222332596204,
                             0.00047204222332608705,
                             0.0004720422233259819,
-                            0.0010987026250960728,
+                            0.0010987026250960728
                         ],
                         linf=[
                             0.003496616916238704,
                             0.003764418290373106,
                             0.003764418290377103,
                             0.0037644182903766588,
-                            0.008370424899251105,
+                            0.008370424899251105
                         ],
                         resid_tol=1.0e-4, tspan=(0.0, 0.2))
     # Ensure that we do not have excessive memory allocations
diff --git a/test/test_tree_3d_fdsbp.jl b/test/test_tree_3d_fdsbp.jl
index e0e2bfe4b88..4cac6011713 100644
--- a/test/test_tree_3d_fdsbp.jl
+++ b/test/test_tree_3d_fdsbp.jl
@@ -57,14 +57,14 @@ end
                                 2.2499169224681058e-5,
                                 2.24991692246826e-5,
                                 2.2499169224684707e-5,
-                                5.814121361417382e-5,
+                                5.814121361417382e-5
                             ],
                             linf=[
                                 9.579357410749445e-5,
                                 9.544871933409027e-5,
                                 9.54487193367548e-5,
                                 9.544871933453436e-5,
-                                0.0004192294529472562,
+                                0.0004192294529472562
                             ],
                             tspan=(0.0, 0.2))
 
@@ -85,14 +85,14 @@ end
                                 4.1320630860402814e-5,
                                 4.132063086040211e-5,
                                 4.132063086039092e-5,
-                                8.502518355874354e-5,
+                                8.502518355874354e-5
                             ],
                             linf=[
                                 0.0001963934848161486,
                                 0.00020239883896255861,
                                 0.0002023988389729947,
                                 0.00020239883896766564,
-                                0.00052605624510349,
+                                0.00052605624510349
                             ],
                             tspan=(0.0, 0.2),
                             solver=DG(D_upw.central, nothing, SurfaceIntegralStrongForm(),
@@ -115,14 +115,14 @@ end
                                 0.0004691301922633193,
                                 0.00046913019226332234,
                                 0.0006630180220973541,
-                                0.0015732759680929076,
+                                0.0015732759680929076
                             ],
                             linf=[
                                 3.4253965106145756e-5,
                                 0.0010033197685090707,
                                 0.0010033197685091054,
                                 0.0018655642702542635,
-                                0.008479800046757191,
+                                0.008479800046757191
                             ],
                             tspan=(0.0, 0.0075), abstol=1.0e-9, reltol=1.0e-9)
 
diff --git a/test/test_tree_3d_hypdiff.jl b/test/test_tree_3d_hypdiff.jl
index 5c9dacbd87d..921047ff4bf 100644
--- a/test/test_tree_3d_hypdiff.jl
+++ b/test/test_tree_3d_hypdiff.jl
@@ -16,13 +16,13 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_3d_dgsem")
                             0.001530331609036682,
                             0.011314177033289238,
                             0.011314177033289402,
-                            0.011314177033289631,
+                            0.011314177033289631
                         ],
                         linf=[
                             0.02263459033909354,
                             0.10139777904683545,
                             0.10139777904683545,
-                            0.10139777904683545,
+                            0.10139777904683545
                         ],
                         initial_refinement_level=2)
     # Ensure that we do not have excessive memory allocations
@@ -41,13 +41,13 @@ end
                             0.0015377731806850128,
                             0.01137685274151801,
                             0.011376852741518175,
-                            0.011376852741518494,
+                            0.011376852741518494
                         ],
                         linf=[
                             0.022715420630041172,
                             0.10183745338964201,
                             0.10183745338964201,
-                            0.1018374533896429,
+                            0.1018374533896429
                         ],
                         initial_refinement_level=2, surface_flux=flux_godunov)
     # Ensure that we do not have excessive memory allocations
@@ -66,13 +66,13 @@ end
                             0.00022868320512754316,
                             0.0007974309948540525,
                             0.0015035143230654987,
-                            0.0015035143230655293,
+                            0.0015035143230655293
                         ],
                         linf=[
                             0.0016405001653623241,
                             0.0029870057159104594,
                             0.009410031618285686,
-                            0.009410031618287462,
+                            0.009410031618287462
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_tree_3d_linearizedeuler.jl b/test/test_tree_3d_linearizedeuler.jl
index 00f8d62dad9..0390b0cbcf8 100644
--- a/test/test_tree_3d_linearizedeuler.jl
+++ b/test/test_tree_3d_linearizedeuler.jl
@@ -14,12 +14,12 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_3d_dgsem")
                         l2=[
                             0.020380328336745232, 0.027122442311921492,
                             0.02712244231192152, 8.273108096127844e-17,
-                            0.020380328336745232,
+                            0.020380328336745232
                         ],
                         linf=[
                             0.2916021983572774, 0.32763703462270843,
                             0.32763703462270855, 1.641012595221666e-15,
-                            0.2916021983572774,
+                            0.2916021983572774
                         ],
                         tspan=(0.0, 1.0))
 
diff --git a/test/test_tree_3d_mhd.jl b/test/test_tree_3d_mhd.jl
index 74107d462de..98016cb5196 100644
--- a/test/test_tree_3d_mhd.jl
+++ b/test/test_tree_3d_mhd.jl
@@ -21,7 +21,7 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_3d_dgsem")
                             0.010391801950005755,
                             0.010391801950005759,
                             0.010393502246627087,
-                            2.524766553484067e-16,
+                            2.524766553484067e-16
                         ],
                         linf=[
                             0.28173002819718196,
@@ -32,7 +32,7 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_3d_dgsem")
                             0.10950981489747313,
                             0.10950981489747136,
                             0.11517234329681891,
-                            2.0816911067714202e-15,
+                            2.0816911067714202e-15
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -55,7 +55,7 @@ end
                             1.0340110783830874e-15,
                             1.1779095371939702e-15,
                             9.961878521814573e-16,
-                            8.1201730630719145e-16,
+                            8.1201730630719145e-16
                         ],
                         linf=[
                             2.4424906541753444e-15,
@@ -66,7 +66,7 @@ end
                             1.7763568394002505e-14,
                             1.0436096431476471e-14,
                             2.042810365310288e-14,
-                            7.057203733035201e-15,
+                            7.057203733035201e-15
                         ],
                         atol=1000 * eps(),
                         initial_condition=initial_condition_constant)
@@ -91,7 +91,7 @@ end
                             0.00916500047763897,
                             0.005069863732625444,
                             0.011503011541926135,
-                            0.003988175543749985,
+                            0.003988175543749985
                         ],
                         linf=[
                             0.01188593784273051,
@@ -102,7 +102,7 @@ end
                             0.03316343064943483,
                             0.011539436992528018,
                             0.04896687646520839,
-                            0.018714054039927555,
+                            0.018714054039927555
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -125,7 +125,7 @@ end
                             0.00900886245212482,
                             0.004926537542780259,
                             0.01153285554590683,
-                            0.0037842060148666886,
+                            0.0037842060148666886
                         ],
                         linf=[
                             0.012982853115883541,
@@ -136,7 +136,7 @@ end
                             0.03198699034954189,
                             0.009761077061886558,
                             0.04433669321441455,
-                            0.01618905441148782,
+                            0.01618905441148782
                         ],
                         volume_flux=(flux_derigs_etal, flux_nonconservative_powell))
     # Ensure that we do not have excessive memory allocations
@@ -160,7 +160,7 @@ end
                             0.007328739509868727,
                             0.00309794018112387,
                             0.009026356949274878,
-                            0.0035732583778049776,
+                            0.0035732583778049776
                         ],
                         linf=[
                             0.013734346970999622,
@@ -171,7 +171,7 @@ end
                             0.055120532123884625,
                             0.018202716205672487,
                             0.06133688282205586,
-                            0.019888161885935608,
+                            0.019888161885935608
                         ],
                         tspan=(0.0, 0.25))
     # Ensure that we do not have excessive memory allocations
@@ -197,7 +197,7 @@ end
                             0.021125605214031118,
                             0.03295607553556973,
                             0.03296235755245784,
-                            7.16035229384135e-6,
+                            7.16035229384135e-6
                         ],
                         linf=[
                             0.017894703320895378,
@@ -208,7 +208,7 @@ end
                             0.05381260695579509,
                             0.0884774018719996,
                             0.07784546966765199,
-                            7.71609149516089e-5,
+                            7.71609149516089e-5
                         ],
                         initial_condition=function initial_condition_orszag_tang(x, t,
                                                                                  equations::IdealGlmMhdEquations3D)
@@ -269,7 +269,7 @@ end
                             0.007355137041002365,
                             0.0073551370410023425,
                             0.00735520932001833,
-                            0.000506140942330923,
+                            0.000506140942330923
                         ],
                         linf=[
                             0.28040713666979633,
@@ -280,7 +280,7 @@ end
                             0.08770240288089526,
                             0.08770240288089792,
                             0.08773409387876674,
-                            0.050221095224119834,
+                            0.050221095224119834
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
diff --git a/test/test_unit.jl b/test/test_unit.jl
index d7ec2084361..47049013555 100644
--- a/test/test_unit.jl
+++ b/test/test_unit.jl
@@ -1282,7 +1282,7 @@ end
         0.5011914484393387,
         0.8829127712445113,
         0.43024132987932817,
-        0.7560616633050348,
+        0.7560616633050348
     ]
 
     equations = CompressibleEulerEquations2D(1.4)
@@ -1440,7 +1440,7 @@ end
             SVector(1.5, -0.2, 0.1, 5.0)]
         fluxes = [flux_central, flux_ranocha, flux_shima_etal, flux_kennedy_gruber,
             FluxLMARS(340), flux_hll, FluxHLL(min_max_speed_davis), flux_hlle,
-            flux_hllc, flux_chandrashekar,
+            flux_hllc, flux_chandrashekar
         ]
 
         for f_std in fluxes
@@ -1465,7 +1465,7 @@ end
             SVector(1.5, -0.2, 0.1, 0.2, 5.0)]
         fluxes = [flux_central, flux_ranocha, flux_shima_etal, flux_kennedy_gruber,
             FluxLMARS(340), flux_hll, FluxHLL(min_max_speed_davis), flux_hlle,
-            flux_hllc, flux_chandrashekar,
+            flux_hllc, flux_chandrashekar
         ]
 
         for f_std in fluxes
@@ -1504,7 +1504,7 @@ end
             flux_central,
             flux_hindenlang_gassner,
             FluxHLL(min_max_speed_davis),
-            flux_hlle,
+            flux_hlle
         ]
 
         for f_std in fluxes
@@ -1531,7 +1531,7 @@ end
             flux_central,
             flux_hindenlang_gassner,
             FluxHLL(min_max_speed_davis),
-            flux_hlle,
+            flux_hlle
         ]
 
         for f_std in fluxes
diff --git a/test/test_unstructured_2d.jl b/test/test_unstructured_2d.jl
index 5c228d1e04c..c87abfa0b35 100644
--- a/test/test_unstructured_2d.jl
+++ b/test/test_unstructured_2d.jl
@@ -18,11 +18,11 @@ isdir(outdir) && rm(outdir, recursive = true)
     @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_periodic.jl"),
                         l2=[
                             0.0001099216141882387, 0.0001303795774982892,
-                            0.00013037957749794242, 0.0002993727892598759,
+                            0.00013037957749794242, 0.0002993727892598759
                         ],
                         linf=[
                             0.006407280810928562, 0.009836067015418948,
-                            0.009836067015398076, 0.021903519038095176,
+                            0.009836067015398076, 0.021903519038095176
                         ])
     # Ensure that we do not have excessive memory allocations
     # (e.g., from type instabilities)
@@ -38,11 +38,11 @@ end
     @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_free_stream.jl"),
                         l2=[
                             3.3937365073416665e-14, 2.44759188939065e-13,
-                            1.4585198700082895e-13, 4.716940764877479e-13,
+                            1.4585198700082895e-13, 4.716940764877479e-13
                         ],
                         linf=[
                             7.774003663030271e-12, 9.183176441496244e-11,
-                            4.5685344396417804e-11, 1.0534506600379245e-10,
+                            4.5685344396417804e-11, 1.0534506600379245e-10
                         ],
                         tspan=(0.0, 0.1),
                         atol=3.0e-13)
@@ -62,13 +62,13 @@ end
                             0.040189107976346644,
                             0.04256154998030852,
                             0.03734120743842209,
-                            0.10057425897733507,
+                            0.10057425897733507
                         ],
                         linf=[
                             0.24455374304626365,
                             0.2970686406973577,
                             0.29339040847600434,
-                            0.5915610037764794,
+                            0.5915610037764794
                         ],
                         tspan=(0.0, 0.25),
                         surface_flux=FluxHLL(min_max_speed_naive))
@@ -88,13 +88,13 @@ end
                             0.0007213418215265047,
                             0.0006752337675043779,
                             0.0006437485997536973,
-                            0.0014782883071363362,
+                            0.0014782883071363362
                         ],
                         linf=[
                             0.004301288971032324,
                             0.005243995459478956,
                             0.004685630332338153,
-                            0.01750217718347713,
+                            0.01750217718347713
                         ],
                         tspan=(0.0, 1.0))
     # Ensure that we do not have excessive memory allocations
@@ -113,13 +113,13 @@ end
                             0.0007213418215265047,
                             0.0006752337675043779,
                             0.0006437485997536973,
-                            0.0014782883071363362,
+                            0.0014782883071363362
                         ],
                         linf=[
                             0.004301288971032324,
                             0.005243995459478956,
                             0.004685630332338153,
-                            0.01750217718347713,
+                            0.01750217718347713
                         ],
                         # With the default `maxiters = 1` in coverage tests,
                         # there would be no time steps after the restart.
@@ -140,13 +140,13 @@ end
                             0.06594600495903137,
                             0.10803914821786433,
                             0.10805946357846291,
-                            0.1738171782368222,
+                            0.1738171782368222
                         ],
                         linf=[
                             0.31880214280781305,
                             0.3468488554333352,
                             0.34592958184413264,
-                            0.784555926860546,
+                            0.784555926860546
                         ],
                         tspan=(0.0, 1.0))
     # Ensure that we do not have excessive memory allocations
@@ -179,13 +179,13 @@ end
                             2.19945600e-01,
                             1.71050453e-01,
                             1.71050453e-01,
-                            1.21719195e+00,
+                            1.21719195e+00
                         ],
                         linf=[
                             7.44218635e-01,
                             7.02887039e-01,
                             7.02887039e-01,
-                            6.11732719e+00,
+                            6.11732719e+00
                         ],
                         tspan=(0.0, 0.3))
     # Ensure that we do not have excessive memory allocations
@@ -204,13 +204,13 @@ end
                             6.984024099236519e-5,
                             6.289022520363763e-5,
                             6.550951878107466e-5,
-                            0.00016222767700879948,
+                            0.00016222767700879948
                         ],
                         linf=[
                             0.0005367823248620951,
                             0.000671293180158461,
                             0.0005656680962440319,
-                            0.0013910024779804075,
+                            0.0013910024779804075
                         ],
                         tspan=(0.0, 0.2),
                         # With the default `maxiters = 1` in coverage tests,
@@ -304,13 +304,13 @@ end
                             0.6107326269462766,
                             0.48666631722018877,
                             0.48309775159067053,
-                            0.29467422718511704,
+                            0.29467422718511704
                         ],
                         linf=[
                             2.776782342826098,
                             3.2158378644333707,
                             3.652920889487258,
-                            2.052861364219655,
+                            2.052861364219655
                         ],
                         tspan=(0.0, 0.25))
     # Ensure that we do not have excessive memory allocations
@@ -329,13 +329,13 @@ end
                             1.2164292510839076,
                             2.6118925543469468e-12,
                             2.459878823146057e-12,
-                            1.2164292510839079,
+                            1.2164292510839079
                         ],
                         linf=[
                             1.5138512282315846,
                             4.706289937431355e-11,
                             4.913910192312011e-11,
-                            1.513851228231574,
+                            1.513851228231574
                         ],
                         tspan=(0.0, 0.25))
     # Ensure that we do not have excessive memory allocations
@@ -354,13 +354,13 @@ end
                             1.2164292510839085,
                             1.2643106818778908e-12,
                             1.269230436589819e-12,
-                            1.2164292510839079,
+                            1.2164292510839079
                         ],
                         linf=[
                             1.513851228231562,
                             1.6670644673575802e-11,
                             1.8426585188623954e-11,
-                            1.513851228231574,
+                            1.513851228231574
                         ],
                         surface_flux=(FluxHydrostaticReconstruction(flux_lax_friedrichs,
                                                                     hydrostatic_reconstruction_audusse_etal),
@@ -382,13 +382,13 @@ end
                             1.2164292510839083,
                             2.590643638636187e-12,
                             2.388742604639019e-12,
-                            1.2164292510839079,
+                            1.2164292510839079
                         ],
                         linf=[
                             1.5138512282315792,
                             4.761278694199934e-11,
                             4.910549479958249e-11,
-                            1.513851228231574,
+                            1.513851228231574
                         ],
                         surface_flux=(flux_wintermeyer_etal,
                                       flux_nonconservative_ersing_etal),
@@ -411,13 +411,13 @@ end
                             0.001118134082248467,
                             0.044560486817464634,
                             0.01430926600634214,
-                            5.089218476759981e-6,
+                            5.089218476759981e-6
                         ],
                         linf=[
                             0.007798727223654822,
                             0.34782952734839157,
                             0.11161614702628064,
-                            2.6407324614341476e-5,
+                            2.6407324614341476e-5
                         ],
                         tspan=(0.0, 0.025))
     # Ensure that we do not have excessive memory allocations
@@ -436,13 +436,13 @@ end
                             0.0011196838135485918,
                             0.01542895635133927,
                             0.017082803023121197,
-                            5.089218476759981e-6,
+                            5.089218476759981e-6
                         ],
                         linf=[
                             0.014299541415654371,
                             0.12783948113206955,
                             0.17626489583921323,
-                            2.6407324614341476e-5,
+                            2.6407324614341476e-5
                         ],
                         surface_flux=(FluxHydrostaticReconstruction(flux_hll,
                                                                     hydrostatic_reconstruction_audusse_etal),
@@ -464,13 +464,13 @@ end
                             0.001118046975499805,
                             0.04455969246244461,
                             0.014298120235633432,
-                            5.089218476759981e-6,
+                            5.089218476759981e-6
                         ],
                         linf=[
                             0.007776521213640031,
                             0.34768318303226353,
                             0.11075311228066198,
-                            2.6407324614341476e-5,
+                            2.6407324614341476e-5
                         ],
                         surface_flux=(flux_wintermeyer_etal,
                                       flux_nonconservative_ersing_etal),
@@ -493,13 +493,13 @@ end
                             0.0011196838135486059,
                             0.015428956351339451,
                             0.017082803023120943,
-                            5.089218476759981e-6,
+                            5.089218476759981e-6
                         ],
                         linf=[
                             0.01429954141565526,
                             0.12783948113205668,
                             0.176264895839215,
-                            2.6407324614341476e-5,
+                            2.6407324614341476e-5
                         ],
                         surface_flux=(flux_hll,
                                       flux_nonconservative_fjordholm_etal),
@@ -518,11 +518,11 @@ end
     @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_shallowwater_dirichlet.jl"),
                         l2=[
                             1.1577518608938916e-5, 4.859252379740366e-13,
-                            4.639600837197925e-13, 1.1577518608952174e-5,
+                            4.639600837197925e-13, 1.1577518608952174e-5
                         ],
                         linf=[
                             8.3940638787805e-5, 1.1446362498574484e-10,
-                            1.1124515748367981e-10, 8.39406387962427e-5,
+                            1.1124515748367981e-10, 8.39406387962427e-5
                         ],
                         tspan=(0.0, 2.0))
     # Ensure that we do not have excessive memory allocations
@@ -540,11 +540,11 @@ end
                                  "elixir_shallowwater_wall_bc_shockcapturing.jl"),
                         l2=[
                             0.0442113635677511, 0.1537465759364839, 0.16003586586203947,
-                            6.225080477067782e-8,
+                            6.225080477067782e-8
                         ],
                         linf=[
                             0.6347820607387928, 2.0078125433846736, 2.530726684667019,
-                            3.982097165344811e-7,
+                            3.982097165344811e-7
                         ],
                         tspan=(0.0, 0.05))
     # Ensure that we do not have excessive memory allocations
@@ -564,13 +564,13 @@ end
                             0.612551520607341,
                             0.5039173660221961,
                             0.49136517934903523,
-                            0.29467422718511704,
+                            0.29467422718511704
                         ],
                         linf=[
                             2.7636771472622197,
                             3.236168963021072,
                             3.3363936775653826,
-                            2.052861364219655,
+                            2.052861364219655
                         ],
                         tspan=(0.0, 0.25))
     # Ensure that we do not have excessive memory allocations

From d3ecf34664e6d347ecf8742fed6d8c1eb307555c Mon Sep 17 00:00:00 2001
From: Marco Artiano <57838732+MarcoArtiano@users.noreply.github.com>
Date: Tue, 2 Jul 2024 13:32:27 +0200
Subject: [PATCH 11/13] Update src/time_integration/methods_IMEXJinXin.jl

Co-authored-by: Hendrik Ranocha <ranocha@users.noreply.github.com>
---
 src/time_integration/methods_IMEXJinXin.jl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/time_integration/methods_IMEXJinXin.jl b/src/time_integration/methods_IMEXJinXin.jl
index d8234d0ce59..268d70ec0bb 100644
--- a/src/time_integration/methods_IMEXJinXin.jl
+++ b/src/time_integration/methods_IMEXJinXin.jl
@@ -16,7 +16,7 @@ abstract type SimpleAlgorithmIMEX end
 
 ## References
 
-- missing
+- TODO: missing
 
 !!! warning "Experimental implementation"
     This is an experimental feature and may change in future releases.

From a2fba8884d6cdddb12d1862a83e3090197f66729 Mon Sep 17 00:00:00 2001
From: Marco Artiano <57838732+MarcoArtiano@users.noreply.github.com>
Date: Tue, 2 Jul 2024 13:32:36 +0200
Subject: [PATCH 12/13] Update src/time_integration/methods_IMEXJinXin.jl

Co-authored-by: Hendrik Ranocha <ranocha@users.noreply.github.com>
---
 src/time_integration/methods_IMEXJinXin.jl | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/src/time_integration/methods_IMEXJinXin.jl b/src/time_integration/methods_IMEXJinXin.jl
index 268d70ec0bb..8e8979115ac 100644
--- a/src/time_integration/methods_IMEXJinXin.jl
+++ b/src/time_integration/methods_IMEXJinXin.jl
@@ -30,11 +30,6 @@ struct SimpleIMEX{StageCallbacks} <: SimpleAlgorithmIMEX
     stage_callbacks::StageCallbacks
 
     function SimpleIMEX(; stage_callbacks = ())
-        # Mathematically speaking, it is not necessary for the algorithm to split the factors
-        # into numerator and denominator. Otherwise, however, rounding errors of the order of
-        # the machine accuracy will occur, which will add up over time and thus endanger the
-        # conservation of the simulation.
-        # See also https://github.com/trixi-framework/Trixi.jl/pull/1640.
         A1 = zeros(3, 3)
         A2 = zeros(3, 3)
         A1[2, 1] = 0.5

From c9b21a589aeb510295b23f1af0e9ee2014d62c9a Mon Sep 17 00:00:00 2001
From: Marco Artiano <57838732+MarcoArtiano@users.noreply.github.com>
Date: Tue, 2 Jul 2024 13:32:51 +0200
Subject: [PATCH 13/13] Update src/time_integration/methods_IMEXJinXin.jl

Co-authored-by: Hendrik Ranocha <ranocha@users.noreply.github.com>
---
 src/time_integration/methods_IMEXJinXin.jl | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/src/time_integration/methods_IMEXJinXin.jl b/src/time_integration/methods_IMEXJinXin.jl
index 8e8979115ac..776ceff41de 100644
--- a/src/time_integration/methods_IMEXJinXin.jl
+++ b/src/time_integration/methods_IMEXJinXin.jl
@@ -146,15 +146,6 @@ function Base.getproperty(integrator::SimpleIntegratorIMEX, field::Symbol)
     return getfield(integrator, field)
 end
 
-"""
-    solve(ode, alg; dt, callbacks, kwargs...)
-
-The following structures and methods provide the infrastructure for SSP Runge-Kutta methods
-of type `SimpleAlgorithmSSP`.
-
-!!! warning "Experimental implementation"
-    This is an experimental feature and may change in future releases.
-"""
 function solve(ode::ODEProblem, alg::SimpleAlgorithmIMEX;
                dt, callback = nothing, kwargs...)
     u = copy(ode.u0)