From a42b7092f4b7bb3fb434ba2e4ee693fd74509244 Mon Sep 17 00:00:00 2001 From: bennibolm Date: Fri, 20 Sep 2024 10:21:23 +0200 Subject: [PATCH] Merge main --- .github/workflows/FormatCheck.yml | 2 +- .github/workflows/SpellCheck.yml | 2 +- Project.toml | 14 +- README.md | 22 -- .../src/files/subcell_shock_capturing.jl | 8 +- docs/src/styleguide.md | 2 +- ...lixir_euler_sedov_blast_wave_sc_subcell.jl | 6 +- ...euler_blast_wave_sc_subcell_nonperiodic.jl | 5 +- ...lixir_euler_sedov_blast_wave_sc_subcell.jl | 8 +- .../tree_2d_dgsem/elixir_euler_vortex_amr.jl | 6 +- src/Trixi.jl | 1 + src/auxiliary/math.jl | 5 + src/callbacks_step/alive.jl | 2 +- src/callbacks_step/amr.jl | 2 + src/callbacks_step/analysis.jl | 3 +- src/callbacks_step/analysis_dg2d.jl | 33 ++- src/callbacks_step/analysis_dg2d_parallel.jl | 3 +- src/callbacks_step/analysis_dg3d.jl | 46 +++- src/callbacks_step/analysis_dg3d_parallel.jl | 3 +- src/callbacks_step/averaging.jl | 2 +- src/callbacks_step/glm_speed.jl | 7 +- 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/stepsize_dg2d.jl | 18 +- src/callbacks_step/stepsize_dg3d.jl | 12 +- src/callbacks_step/time_series.jl | 2 +- src/callbacks_step/visualization.jl | 2 +- src/equations/ideal_glm_mhd_2d.jl | 9 +- src/equations/ideal_glm_mhd_3d.jl | 9 +- .../ideal_glm_mhd_multicomponent_1d.jl | 9 +- .../ideal_glm_mhd_multicomponent_2d.jl | 42 ++- src/meshes/p4est_mesh.jl | 41 ++- src/meshes/parallel_tree.jl | 2 +- src/meshes/parallel_tree_mesh.jl | 30 +- src/meshes/t8code_mesh.jl | 10 +- src/meshes/tree_mesh.jl | 2 +- .../semidiscretization_coupled.jl | 8 +- .../semidiscretization_euler_gravity.jl | 2 +- .../semidiscretization_hyperbolic.jl | 8 +- src/solvers/dg.jl | 12 +- src/solvers/dgsem_p4est/containers.jl | 3 +- src/solvers/dgsem_p4est/containers_2d.jl | 7 +- src/solvers/dgsem_p4est/dg_parallel.jl | 65 ++--- src/solvers/dgsem_t8code/dg_parallel.jl | 6 +- src/solvers/dgsem_tree/containers_2d.jl | 6 + src/solvers/dgsem_tree/dg_2d_parallel.jl | 42 +-- src/solvers/dgsem_tree/indicators.jl | 6 +- src/solvers/dgsem_tree/subcell_limiters.jl | 6 +- src/solvers/dgsem_tree/subcell_limiters_2d.jl | 3 - test/test_dgmulti_1d.jl | 28 +- test/test_dgmulti_2d.jl | 122 ++++----- test/test_dgmulti_3d.jl | 63 +++-- 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 | 138 ++++++---- test/test_p4est_3d.jl | 68 ++--- ...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 | 14 +- test/test_structured_2d.jl | 228 +++++++++------ test/test_structured_3d.jl | 24 +- test/test_t8code_2d.jl | 22 +- test/test_t8code_3d.jl | 32 +-- test/test_threaded.jl | 44 +-- test/test_tree_1d_advection.jl | 8 + 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_hypdiff.jl | 4 + 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_advection.jl | 24 ++ test/test_tree_2d_euler.jl | 259 +++++++++++------- test/test_tree_2d_euleracoustics.jl | 4 +- test/test_tree_2d_eulermulti.jl | 40 +-- test/test_tree_2d_eulerpolytropic.jl | 4 +- test/test_tree_2d_fdsbp.jl | 20 +- test/test_tree_2d_hypdiff.jl | 20 +- test/test_tree_2d_linearizedeuler.jl | 8 +- test/test_tree_2d_mhd.jl | 48 ++-- 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 | 24 +- test/test_tree_3d_linearizedeuler.jl | 4 +- test/test_tree_3d_mhd.jl | 28 +- test/test_unit.jl | 10 +- test/test_unstructured_2d.jl | 80 +++--- utils/trixi-format-file.jl | 2 +- utils/trixi-format.jl | 2 +- 101 files changed, 1461 insertions(+), 1093 deletions(-) diff --git a/.github/workflows/FormatCheck.yml b/.github/workflows/FormatCheck.yml index 7297f1c3ff5..26006b9555f 100644 --- a/.github/workflows/FormatCheck.yml +++ b/.github/workflows/FormatCheck.yml @@ -29,7 +29,7 @@ jobs: # TODO: Change the call below to # format(".") run: | - julia -e 'using Pkg; Pkg.add(PackageSpec(name = "JuliaFormatter", version="1.0.45"))' + julia -e 'using Pkg; Pkg.add(PackageSpec(name = "JuliaFormatter", version="1.0.60"))' julia -e 'using JuliaFormatter; format(["benchmark", "examples", "ext", "src", "test", "utils"])' - name: Format check run: | diff --git a/.github/workflows/SpellCheck.yml b/.github/workflows/SpellCheck.yml index 71eea717691..fedf097ec7e 100644 --- a/.github/workflows/SpellCheck.yml +++ b/.github/workflows/SpellCheck.yml @@ -10,4 +10,4 @@ jobs: - name: Checkout Actions Repository uses: actions/checkout@v4 - name: Check spelling - uses: crate-ci/typos@v1.23.6 + uses: crate-ci/typos@v1.24.3 diff --git a/Project.toml b/Project.toml index f8be84e0ce3..612b65ec6f0 100644 --- a/Project.toml +++ b/Project.toml @@ -1,9 +1,10 @@ name = "Trixi" uuid = "a7f1ee26-1774-49b1-8366-f1abc58fbfcb" authors = ["Michael Schlottke-Lakemper ", "Gregor Gassner ", "Hendrik Ranocha ", "Andrew R. Winters ", "Jesse Chan "] -version = "0.8.9-DEV" +version = "0.8.11-DEV" [deps] +Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" CodeTracking = "da1fd8a2-8d9e-5ec2-8556-3022fb5608a2" ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" @@ -29,6 +30,7 @@ PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a" Preferences = "21216c6a-2e73-6563-6e65-726566657250" Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" Requires = "ae029012-a4dd-5104-9daa-d747884805df" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" @@ -50,15 +52,16 @@ TrixiBase = "9a0f1c46-06d5-4909-a5a3-ce25d3fa3284" UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" [weakdeps] -Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" Convex = "f65535da-76fb-5f13-bab9-19810c17039a" ECOS = "e2685f51-7e38-5353-a97d-a921fd2c8199" +Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" [extensions] -TrixiMakieExt = "Makie" TrixiConvexECOSExt = ["Convex", "ECOS"] +TrixiMakieExt = "Makie" [compat] +Accessors = "0.1.12" CodeTracking = "1.0.5" ConstructionBase = "1.3" Convex = "0.16" @@ -87,12 +90,13 @@ PrecompileTools = "1.1" Preferences = "1.3" Printf = "1" RecipesBase = "1.1" +RecursiveArrayTools = "2.38.10" Reexport = "1.0" Requires = "1.1" SciMLBase = "1.90, 2" SimpleUnPack = "1.1" SparseArrays = "1" -StartUpDG = "0.17.7" +StartUpDG = "0.17.7, 1.1.5" Static = "0.8.7" StaticArrayInterface = "1.4" StaticArrays = "1.5" @@ -109,6 +113,6 @@ UUIDs = "1.6" julia = "1.8" [extras] -Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" Convex = "f65535da-76fb-5f13-bab9-19810c17039a" ECOS = "e2685f51-7e38-5353-a97d-a921fd2c8199" +Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" diff --git a/README.md b/README.md index a76fa268437..5cda16118e0 100644 --- a/README.md +++ b/README.md @@ -19,28 +19,6 @@

-*** -**Trixi.jl at JuliaCon 2024**
-At this year's JuliaCon in Eindhoven, Netherlands, we will be present with several contributions -from the Trixi Framework ecosystem: - -* [**Julia for Particle-Based Multiphysics with TrixiParticles.jl**](https://pretalx.com/juliacon2024/talk/TPFF8L/),
- [*Erik Faulhaber*](https://github.com/efaulhaber/), [*Niklas Neher*](https://github.com/lasnikas/), - 10th July 2024, 11:00–11:30, Function (4.1) -* [**Towards Aerodynamic Simulations in Julia with Trixi.jl**](https://pretalx.com/juliacon2024/talk/XH8KBG/),
- [*Daniel Doehring*](https://github.com/danieldoehring/), - 10th July 2024, 15:30–16:00, While Loop (4.2) -* [**libtrixi: serving legacy codes in earth system modeling with fresh Julia CFD**](https://pretalx.com/juliacon2024/talk/SXC7LA/),
- [*Benedict Geihe*](https://github.com/benegee/), - 12th July 2024, 14:00–17:00, Function (4.1) - -The last talk is part of the -[Julia for High-Performance Computing](https://juliacon.org/2024/minisymposia/hpc/) -minisymposium, which this year is hosted by our own [*Hendrik Ranocha*](https://github.com/ranocha/). - -We are looking forward to seeing you there ♥️ -*** - **Trixi.jl** is a numerical simulation framework for conservation laws written in [Julia](https://julialang.org). A key objective for the framework is to be useful to both scientists and students. Therefore, next to diff --git a/docs/literate/src/files/subcell_shock_capturing.jl b/docs/literate/src/files/subcell_shock_capturing.jl index 1b6b19757db..fbc397f4c85 100644 --- a/docs/literate/src/files/subcell_shock_capturing.jl +++ b/docs/literate/src/files/subcell_shock_capturing.jl @@ -51,7 +51,11 @@ # The Newton-bisection algorithm is an iterative method and requires some parameters. # It uses a fixed maximum number of iteration steps (`max_iterations_newton = 10`) and # relative/absolute tolerances (`newton_tolerances = (1.0e-12, 1.0e-14)`). The given values are -# sufficient in most cases and therefore used as default. Additionally, there is the parameter +# sufficient in most cases and therefore used as default. If the implemented bounds checking +# functionality indicates problems with the limiting (see [below](@ref subcell_bounds_check)) +# the Newton method with the chosen parameters might not manage to converge. If so, adapting +# the mentioned parameters helps fix that. +# Additionally, there is the parameter # `gamma_constant_newton`, which can be used to scale the antidiffusive flux for the computation # of the blending coefficients of nonlinear variables. The default value is `2 * ndims(equations)`, # as it was shown by [Pazner (2020)](https://doi.org/10.1016/j.cma.2021.113876) [Section 4.2.2.] @@ -245,7 +249,7 @@ plot(sol) # ![blast_wave_paraview_reinterpolate=false](https://github.com/trixi-framework/Trixi.jl/assets/74359358/39274f18-0064-469c-b4da-bac4b843e116) -# ## Bounds checking +# ## [Bounds checking](@id subcell_bounds_check) # Subcell limiting is based on the fulfillment of target bounds - either global or local. # Although the implementation works and has been thoroughly tested, there are some cases where # these bounds are not met. diff --git a/docs/src/styleguide.md b/docs/src/styleguide.md index 83d4dfee1bb..b192d6288c4 100644 --- a/docs/src/styleguide.md +++ b/docs/src/styleguide.md @@ -51,7 +51,7 @@ PRs that verify that running JuliaFormatter.jl again will not change the source To format your contributions before created a PR (or, at least, before requesting a review of your PR), you need to install JuliaFormatter.jl first by running ```shell -julia -e 'using Pkg; Pkg.add(PackageSpec(name = "JuliaFormatter", version="1.0.45"))' +julia -e 'using Pkg; Pkg.add(PackageSpec(name = "JuliaFormatter", version="1.0.60"))' ``` You can then recursively format the core Julia files in the Trixi.jl repo by executing ```shell diff --git a/examples/structured_2d_dgsem/elixir_euler_sedov_blast_wave_sc_subcell.jl b/examples/structured_2d_dgsem/elixir_euler_sedov_blast_wave_sc_subcell.jl index 2f098037a3e..c060fef8ebb 100644 --- a/examples/structured_2d_dgsem/elixir_euler_sedov_blast_wave_sc_subcell.jl +++ b/examples/structured_2d_dgsem/elixir_euler_sedov_blast_wave_sc_subcell.jl @@ -51,7 +51,9 @@ limiter_idp = SubcellLimiterIDP(equations, basis; local_twosided_variables_cons = ["rho"], local_onesided_variables_nonlinear = [(Trixi.entropy_guermond_etal, min)], - max_iterations_newton = 40, # Default value of 10 iterations is too low to fulfill bounds. + # Default parameters are not sufficient to fulfill bounds properly. + max_iterations_newton = 40, + newton_tolerances = (1.0e-13, 1.0e-15), positivity_variables_cons = [], positivity_variables_nonlinear = [], bar_states = false) @@ -97,7 +99,7 @@ save_solution = SaveSolutionCallback(interval = 100, save_final_solution = true, solution_variables = cons2prim) -stepsize_callback = StepsizeCallback(cfl = 0.7) +stepsize_callback = StepsizeCallback(cfl = 0.6) callbacks = CallbackSet(summary_callback, analysis_callback, alive_callback, diff --git a/examples/tree_2d_dgsem/elixir_euler_blast_wave_sc_subcell_nonperiodic.jl b/examples/tree_2d_dgsem/elixir_euler_blast_wave_sc_subcell_nonperiodic.jl index d40a6d2b3d3..70ee6eaa963 100644 --- a/examples/tree_2d_dgsem/elixir_euler_blast_wave_sc_subcell_nonperiodic.jl +++ b/examples/tree_2d_dgsem/elixir_euler_blast_wave_sc_subcell_nonperiodic.jl @@ -44,7 +44,10 @@ limiter_idp = SubcellLimiterIDP(equations, basis; local_twosided_variables_cons = ["rho"], local_onesided_variables_nonlinear = [(Trixi.entropy_math, max)], - bar_states = false) + bar_states = false, + # Default parameters are not sufficient to fulfill bounds properly. + max_iterations_newton = 70, + newton_tolerances = (1.0e-13, 1.0e-14)) volume_integral = VolumeIntegralSubcellLimiting(limiter_idp; volume_flux_dg = volume_flux, volume_flux_fv = surface_flux) diff --git a/examples/tree_2d_dgsem/elixir_euler_sedov_blast_wave_sc_subcell.jl b/examples/tree_2d_dgsem/elixir_euler_sedov_blast_wave_sc_subcell.jl index d00303fe04e..8300c36d7ef 100644 --- a/examples/tree_2d_dgsem/elixir_euler_sedov_blast_wave_sc_subcell.jl +++ b/examples/tree_2d_dgsem/elixir_euler_sedov_blast_wave_sc_subcell.jl @@ -45,7 +45,11 @@ limiter_idp = SubcellLimiterIDP(equations, basis; local_twosided_variables_cons = ["rho"], local_onesided_variables_nonlinear = [(Trixi.entropy_guermond_etal, min)], - bar_states = true) + positivity_variables_nonlinear = [pressure], + bar_states = true, + # Default parameters are not sufficient to fulfill bounds properly. + max_iterations_newton = 60) + volume_integral = VolumeIntegralSubcellLimiting(limiter_idp; volume_flux_dg = volume_flux, volume_flux_fv = surface_flux) @@ -54,7 +58,7 @@ solver = DGSEM(basis, surface_flux, volume_integral) coordinates_min = (-2.0, -2.0) coordinates_max = (2.0, 2.0) mesh = TreeMesh(coordinates_min, coordinates_max, - initial_refinement_level = 3, + initial_refinement_level = 5, n_cells_max = 100_000) semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition, solver) diff --git a/examples/tree_2d_dgsem/elixir_euler_vortex_amr.jl b/examples/tree_2d_dgsem/elixir_euler_vortex_amr.jl index e9831c95526..fd25defd417 100644 --- a/examples/tree_2d_dgsem/elixir_euler_vortex_amr.jl +++ b/examples/tree_2d_dgsem/elixir_euler_vortex_amr.jl @@ -27,7 +27,6 @@ function (indicator_vortex::IndicatorVortex)(u::AbstractArray{<:Any, 4}, t, kwargs...) mesh = indicator_vortex.cache.mesh alpha = indicator_vortex.cache.alpha - indicator_threaded = indicator_vortex.cache.indicator_threaded resize!(alpha, nelements(dg, cache)) # get analytical vortex center (based on assumption that center=[0.0,0.0] @@ -57,6 +56,11 @@ function periodic_distance_2d(coordinates, center, domain_length) return sqrt(sum(abs2, dx_periodic)) end +# Optional: Nicer display of the indicator +function Base.show(io::IO, ::MIME"text/plain", indicator::IndicatorVortex) + Trixi.summary_box(io, "IndicatorVortex") +end + end # module TrixiExtension import .TrixiExtension diff --git a/src/Trixi.jl b/src/Trixi.jl index b6494d797ae..6d2b7b74d9f 100644 --- a/src/Trixi.jl +++ b/src/Trixi.jl @@ -18,6 +18,7 @@ module Trixi # Include other packages that are used in Trixi.jl # (standard library packages first, other packages next, all of them sorted alphabetically) +using Accessors: @reset using LinearAlgebra: LinearAlgebra, Diagonal, diag, dot, mul!, norm, cross, normalize, I, UniformScaling, det using Printf: @printf, @sprintf, println diff --git a/src/auxiliary/math.jl b/src/auxiliary/math.jl index fa816da9a1e..6ae09588861 100644 --- a/src/auxiliary/math.jl +++ b/src/auxiliary/math.jl @@ -284,6 +284,11 @@ end # when using `@fastmath`, which we also get from # [Fortran](https://godbolt.org/z/Yrsa1js7P) # or [C++](https://godbolt.org/z/674G7Pccv). +# +# Note however that such a custom reimplementation can cause incompatibilities with other +# packages. Currently we are affected by an issue with MPI.jl on ARM, see +# https://github.com/trixi-framework/Trixi.jl/issues/1922 +# The workaround is to resort to Base.min / Base.max when using MPI reductions. """ Trixi.max(x, y, ...) diff --git a/src/callbacks_step/alive.jl b/src/callbacks_step/alive.jl index 9700f7e4cdc..fe2234166cd 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/amr.jl b/src/callbacks_step/amr.jl index b0afd02aff8..155e909e292 100644 --- a/src/callbacks_step/amr.jl +++ b/src/callbacks_step/amr.jl @@ -243,6 +243,7 @@ function (amr_callback::AMRCallback)(u_ode::AbstractVector, mesh::TreeMesh, @unpack to_refine, to_coarsen = amr_callback.amr_cache empty!(to_refine) empty!(to_coarsen) + # Note: This assumes that the entries of `lambda` are sorted with ascending cell ids for element in eachindex(lambda) controller_value = lambda[element] if controller_value > 0 @@ -395,6 +396,7 @@ function (amr_callback::AMRCallback)(u_ode::AbstractVector, mesh::TreeMesh, @unpack to_refine, to_coarsen = amr_callback.amr_cache empty!(to_refine) empty!(to_coarsen) + # Note: This assumes that the entries of `lambda` are sorted with ascending cell ids for element in eachindex(lambda) controller_value = lambda[element] if controller_value > 0 diff --git a/src/callbacks_step/analysis.jl b/src/callbacks_step/analysis.jl index 860e3fa21d3..06110d08d28 100644 --- a/src/callbacks_step/analysis.jl +++ b/src/callbacks_step/analysis.jl @@ -434,7 +434,8 @@ function (analysis_callback::AnalysisCallback)(io, du, u, u_ode, t, semi) res = maximum(abs, view(du, v, ..)) if mpi_isparallel() # TODO: Debugging, here is a type instability - global_res = MPI.Reduce!(Ref(res), max, mpi_root(), mpi_comm()) + # Base.max instead of max needed, see comment in src/auxiliary/math.jl + global_res = MPI.Reduce!(Ref(res), Base.max, mpi_root(), mpi_comm()) if mpi_isroot() res::eltype(du) = global_res[] end diff --git a/src/callbacks_step/analysis_dg2d.jl b/src/callbacks_step/analysis_dg2d.jl index de6b9a2a4a6..4cd92ce7c5f 100644 --- a/src/callbacks_step/analysis_dg2d.jl +++ b/src/callbacks_step/analysis_dg2d.jl @@ -29,10 +29,39 @@ function create_cache_analysis(analyzer, mesh::TreeMesh{2}, return (; u_local, u_tmp1, x_local, x_tmp1) end +# Specialized cache for P4estMesh to allow for different ambient dimension from mesh dimension +function create_cache_analysis(analyzer, mesh::P4estMesh{2, NDIMS_AMBIENT}, + equations, dg::DG, cache, + RealT, uEltype) where {NDIMS_AMBIENT} + + # pre-allocate buffers + # We use `StrideArray`s here since these buffers are used in performance-critical + # places and the additional information passed to the compiler makes them faster + # than native `Array`s. + u_local = StrideArray(undef, uEltype, + StaticInt(nvariables(equations)), StaticInt(nnodes(analyzer)), + StaticInt(nnodes(analyzer))) + u_tmp1 = StrideArray(undef, uEltype, + StaticInt(nvariables(equations)), StaticInt(nnodes(analyzer)), + StaticInt(nnodes(dg))) + x_local = StrideArray(undef, RealT, + StaticInt(NDIMS_AMBIENT), StaticInt(nnodes(analyzer)), + StaticInt(nnodes(analyzer))) + x_tmp1 = StrideArray(undef, RealT, + StaticInt(NDIMS_AMBIENT), StaticInt(nnodes(analyzer)), + StaticInt(nnodes(dg))) + jacobian_local = StrideArray(undef, RealT, + StaticInt(nnodes(analyzer)), + StaticInt(nnodes(analyzer))) + jacobian_tmp1 = StrideArray(undef, RealT, + StaticInt(nnodes(analyzer)), StaticInt(nnodes(dg))) + + return (; u_local, u_tmp1, x_local, x_tmp1, jacobian_local, jacobian_tmp1) +end + function create_cache_analysis(analyzer, mesh::Union{StructuredMesh{2}, StructuredMeshView{2}, - UnstructuredMesh2D, - P4estMesh{2}, T8codeMesh{2}}, + UnstructuredMesh2D, T8codeMesh{2}}, equations, dg::DG, cache, RealT, uEltype) diff --git a/src/callbacks_step/analysis_dg2d_parallel.jl b/src/callbacks_step/analysis_dg2d_parallel.jl index 000daa015dc..5b3ae858ab7 100644 --- a/src/callbacks_step/analysis_dg2d_parallel.jl +++ b/src/callbacks_step/analysis_dg2d_parallel.jl @@ -131,7 +131,8 @@ function calc_error_norms(func, u, t, analyzer, global_l2_error = Vector(l2_error) global_linf_error = Vector(linf_error) MPI.Reduce!(global_l2_error, +, mpi_root(), mpi_comm()) - MPI.Reduce!(global_linf_error, max, mpi_root(), mpi_comm()) + # Base.max instead of max needed, see comment in src/auxiliary/math.jl + MPI.Reduce!(global_linf_error, Base.max, mpi_root(), mpi_comm()) total_volume = MPI.Reduce(volume, +, mpi_root(), mpi_comm()) if mpi_isroot() l2_error = convert(typeof(l2_error), global_l2_error) diff --git a/src/callbacks_step/analysis_dg3d.jl b/src/callbacks_step/analysis_dg3d.jl index 27e8a2b722f..fd501a7257c 100644 --- a/src/callbacks_step/analysis_dg3d.jl +++ b/src/callbacks_step/analysis_dg3d.jl @@ -35,9 +35,51 @@ function create_cache_analysis(analyzer, mesh::TreeMesh{3}, return (; u_local, u_tmp1, u_tmp2, x_local, x_tmp1, x_tmp2) end +# Specialized cache for P4estMesh to allow for different ambient dimension from mesh dimension function create_cache_analysis(analyzer, - mesh::Union{StructuredMesh{3}, P4estMesh{3}, - T8codeMesh{3}}, + mesh::P4estMesh{3, NDIMS_AMBIENT}, + equations, dg::DG, cache, + RealT, uEltype) where {NDIMS_AMBIENT} + + # pre-allocate buffers + # We use `StrideArray`s here since these buffers are used in performance-critical + # places and the additional information passed to the compiler makes them faster + # than native `Array`s. + u_local = StrideArray(undef, uEltype, + StaticInt(nvariables(equations)), StaticInt(nnodes(analyzer)), + StaticInt(nnodes(analyzer)), StaticInt(nnodes(analyzer))) + u_tmp1 = StrideArray(undef, uEltype, + StaticInt(nvariables(equations)), StaticInt(nnodes(analyzer)), + StaticInt(nnodes(dg)), StaticInt(nnodes(dg))) + u_tmp2 = StrideArray(undef, uEltype, + StaticInt(nvariables(equations)), StaticInt(nnodes(analyzer)), + StaticInt(nnodes(analyzer)), StaticInt(nnodes(dg))) + x_local = StrideArray(undef, RealT, + StaticInt(NDIMS_AMBIENT), StaticInt(nnodes(analyzer)), + StaticInt(nnodes(analyzer)), StaticInt(nnodes(analyzer))) + x_tmp1 = StrideArray(undef, RealT, + StaticInt(NDIMS_AMBIENT), StaticInt(nnodes(analyzer)), + StaticInt(nnodes(dg)), StaticInt(nnodes(dg))) + x_tmp2 = StrideArray(undef, RealT, + StaticInt(NDIMS_AMBIENT), StaticInt(nnodes(analyzer)), + StaticInt(nnodes(analyzer)), StaticInt(nnodes(dg))) + jacobian_local = StrideArray(undef, RealT, + StaticInt(nnodes(analyzer)), + StaticInt(nnodes(analyzer)), + StaticInt(nnodes(analyzer))) + jacobian_tmp1 = StrideArray(undef, RealT, + StaticInt(nnodes(analyzer)), StaticInt(nnodes(dg)), + StaticInt(nnodes(dg))) + jacobian_tmp2 = StrideArray(undef, RealT, + StaticInt(nnodes(analyzer)), + StaticInt(nnodes(analyzer)), StaticInt(nnodes(dg))) + + return (; u_local, u_tmp1, u_tmp2, x_local, x_tmp1, x_tmp2, jacobian_local, + jacobian_tmp1, jacobian_tmp2) +end + +function create_cache_analysis(analyzer, + mesh::Union{StructuredMesh{3}, T8codeMesh{3}}, equations, dg::DG, cache, RealT, uEltype) diff --git a/src/callbacks_step/analysis_dg3d_parallel.jl b/src/callbacks_step/analysis_dg3d_parallel.jl index de777be406d..70a616367cd 100644 --- a/src/callbacks_step/analysis_dg3d_parallel.jl +++ b/src/callbacks_step/analysis_dg3d_parallel.jl @@ -49,7 +49,8 @@ function calc_error_norms(func, u, t, analyzer, global_l2_error = Vector(l2_error) global_linf_error = Vector(linf_error) MPI.Reduce!(global_l2_error, +, mpi_root(), mpi_comm()) - MPI.Reduce!(global_linf_error, max, mpi_root(), mpi_comm()) + # Base.max instead of max needed, see comment in src/auxiliary/math.jl + MPI.Reduce!(global_linf_error, Base.max, mpi_root(), mpi_comm()) total_volume = MPI.Reduce(volume, +, mpi_root(), mpi_comm()) if mpi_isroot() l2_error = convert(typeof(l2_error), global_l2_error) 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..0bd87c189bc 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 @@ -83,7 +83,10 @@ function update_cleaning_speed!(semi, glm_speed_callback, dt) c_h_deltat = calc_dt_for_cleaning_speed(cfl, mesh, equations, solver, cache) # c_h is proportional to its own time step divided by the complete MHD time step - equations.c_h = glm_scale * c_h_deltat / dt + # We use @reset here since the equations are immutable (to work on GPUs etc.). + # Thus, we need to modify the equations field of the semidiscretization. + @reset equations.c_h = glm_scale * c_h_deltat / dt + semi.equations = equations return semi end diff --git a/src/callbacks_step/save_restart.jl b/src/callbacks_step/save_restart.jl index 0b0d2420c7a..181d985a682 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 870cea0b9f5..3f9abef7f33 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 5c11494ac98..75faa400de8 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/stepsize_dg2d.jl b/src/callbacks_step/stepsize_dg2d.jl index 709f3cee13f..9eb6f2e81e9 100644 --- a/src/callbacks_step/stepsize_dg2d.jl +++ b/src/callbacks_step/stepsize_dg2d.jl @@ -156,7 +156,8 @@ function max_dt(u, t, mesh::ParallelTreeMesh{2}, typeof(constant_speed), typeof(equations), typeof(dg), typeof(cache)}, u, t, mesh, constant_speed, equations, dg, cache) - dt = MPI.Allreduce!(Ref(dt), min, mpi_comm())[] + # Base.min instead of min needed, see comment in src/auxiliary/math.jl + dt = MPI.Allreduce!(Ref(dt), Base.min, mpi_comm())[] return dt end @@ -172,7 +173,8 @@ function max_dt(u, t, mesh::ParallelTreeMesh{2}, typeof(constant_speed), typeof(equations), typeof(dg), typeof(cache)}, u, t, mesh, constant_speed, equations, dg, cache) - dt = MPI.Allreduce!(Ref(dt), min, mpi_comm())[] + # Base.min instead of min needed, see comment in src/auxiliary/math.jl + dt = MPI.Allreduce!(Ref(dt), Base.min, mpi_comm())[] return dt end @@ -256,7 +258,8 @@ function max_dt(u, t, mesh::ParallelP4estMesh{2}, typeof(constant_speed), typeof(equations), typeof(dg), typeof(cache)}, u, t, mesh, constant_speed, equations, dg, cache) - dt = MPI.Allreduce!(Ref(dt), min, mpi_comm())[] + # Base.min instead of min needed, see comment in src/auxiliary/math.jl + dt = MPI.Allreduce!(Ref(dt), Base.min, mpi_comm())[] return dt end @@ -272,7 +275,8 @@ function max_dt(u, t, mesh::ParallelP4estMesh{2}, typeof(constant_speed), typeof(equations), typeof(dg), typeof(cache)}, u, t, mesh, constant_speed, equations, dg, cache) - dt = MPI.Allreduce!(Ref(dt), min, mpi_comm())[] + # Base.min instead of min needed, see comment in src/auxiliary/math.jl + dt = MPI.Allreduce!(Ref(dt), Base.min, mpi_comm())[] return dt end @@ -288,7 +292,8 @@ function max_dt(u, t, mesh::ParallelT8codeMesh{2}, typeof(constant_speed), typeof(equations), typeof(dg), typeof(cache)}, u, t, mesh, constant_speed, equations, dg, cache) - dt = MPI.Allreduce!(Ref(dt), min, mpi_comm())[] + # Base.min instead of min needed, see comment in src/auxiliary/math.jl + dt = MPI.Allreduce!(Ref(dt), Base.min, mpi_comm())[] return dt end @@ -304,7 +309,8 @@ function max_dt(u, t, mesh::ParallelT8codeMesh{2}, typeof(constant_speed), typeof(equations), typeof(dg), typeof(cache)}, u, t, mesh, constant_speed, equations, dg, cache) - dt = MPI.Allreduce!(Ref(dt), min, mpi_comm())[] + # Base.min instead of min needed, see comment in src/auxiliary/math.jl + dt = MPI.Allreduce!(Ref(dt), Base.min, mpi_comm())[] return dt end diff --git a/src/callbacks_step/stepsize_dg3d.jl b/src/callbacks_step/stepsize_dg3d.jl index 664596f989e..49976de6505 100644 --- a/src/callbacks_step/stepsize_dg3d.jl +++ b/src/callbacks_step/stepsize_dg3d.jl @@ -130,7 +130,8 @@ function max_dt(u, t, mesh::ParallelP4estMesh{3}, typeof(constant_speed), typeof(equations), typeof(dg), typeof(cache)}, u, t, mesh, constant_speed, equations, dg, cache) - dt = MPI.Allreduce!(Ref(dt), min, mpi_comm())[] + # Base.min instead of min needed, see comment in src/auxiliary/math.jl + dt = MPI.Allreduce!(Ref(dt), Base.min, mpi_comm())[] return dt end @@ -146,7 +147,8 @@ function max_dt(u, t, mesh::ParallelP4estMesh{3}, typeof(constant_speed), typeof(equations), typeof(dg), typeof(cache)}, u, t, mesh, constant_speed, equations, dg, cache) - dt = MPI.Allreduce!(Ref(dt), min, mpi_comm())[] + # Base.min instead of min needed, see comment in src/auxiliary/math.jl + dt = MPI.Allreduce!(Ref(dt), Base.min, mpi_comm())[] return dt end @@ -162,7 +164,8 @@ function max_dt(u, t, mesh::ParallelT8codeMesh{3}, typeof(constant_speed), typeof(equations), typeof(dg), typeof(cache)}, u, t, mesh, constant_speed, equations, dg, cache) - dt = MPI.Allreduce!(Ref(dt), min, mpi_comm())[] + # Base.min instead of min needed, see comment in src/auxiliary/math.jl + dt = MPI.Allreduce!(Ref(dt), Base.min, mpi_comm())[] return dt end @@ -178,7 +181,8 @@ function max_dt(u, t, mesh::ParallelT8codeMesh{3}, typeof(constant_speed), typeof(equations), typeof(dg), typeof(cache)}, u, t, mesh, constant_speed, equations, dg, cache) - dt = MPI.Allreduce!(Ref(dt), min, mpi_comm())[] + # Base.min instead of min needed, see comment in src/auxiliary/math.jl + dt = MPI.Allreduce!(Ref(dt), Base.min, mpi_comm())[] return dt 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 f91fe27bd33..302e7e4462a 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/ideal_glm_mhd_2d.jl b/src/equations/ideal_glm_mhd_2d.jl index ab2a4b066a1..7a6d19facd1 100644 --- a/src/equations/ideal_glm_mhd_2d.jl +++ b/src/equations/ideal_glm_mhd_2d.jl @@ -11,8 +11,8 @@ The ideal compressible GLM-MHD equations for an ideal gas with ratio of specific heats `gamma` in two space dimensions. """ -mutable struct IdealGlmMhdEquations2D{RealT <: Real} <: - AbstractIdealGlmMhdEquations{2, 9} +struct IdealGlmMhdEquations2D{RealT <: Real} <: + AbstractIdealGlmMhdEquations{2, 9} gamma::RealT # ratio of specific heats inv_gamma_minus_one::RealT # = inv(gamma - 1); can be used to write slow divisions as fast multiplications c_h::RealT # GLM cleaning speed @@ -28,6 +28,11 @@ function IdealGlmMhdEquations2D(gamma; initial_c_h = convert(typeof(gamma), NaN) IdealGlmMhdEquations2D(promote(gamma, initial_c_h)...) end +# Outer constructor for `@reset` works correctly +function IdealGlmMhdEquations2D(gamma, inv_gamma_minus_one, c_h) + IdealGlmMhdEquations2D(gamma, c_h) +end + have_nonconservative_terms(::IdealGlmMhdEquations2D) = True() n_nonconservative_terms(::IdealGlmMhdEquations2D) = 2 diff --git a/src/equations/ideal_glm_mhd_3d.jl b/src/equations/ideal_glm_mhd_3d.jl index 2ffaa575243..e922a2e6fd6 100644 --- a/src/equations/ideal_glm_mhd_3d.jl +++ b/src/equations/ideal_glm_mhd_3d.jl @@ -11,8 +11,8 @@ The ideal compressible GLM-MHD equations for an ideal gas with ratio of specific heats `gamma` in three space dimensions. """ -mutable struct IdealGlmMhdEquations3D{RealT <: Real} <: - AbstractIdealGlmMhdEquations{3, 9} +struct IdealGlmMhdEquations3D{RealT <: Real} <: + AbstractIdealGlmMhdEquations{3, 9} gamma::RealT # ratio of specific heats inv_gamma_minus_one::RealT # = inv(gamma - 1); can be used to write slow divisions as fast multiplications c_h::RealT # GLM cleaning speed @@ -28,6 +28,11 @@ function IdealGlmMhdEquations3D(gamma; initial_c_h = convert(typeof(gamma), NaN) IdealGlmMhdEquations3D(promote(gamma, initial_c_h)...) end +# Outer constructor for `@reset` works correctly +function IdealGlmMhdEquations3D(gamma, inv_gamma_minus_one, c_h) + IdealGlmMhdEquations3D(gamma, c_h) +end + have_nonconservative_terms(::IdealGlmMhdEquations3D) = True() function varnames(::typeof(cons2cons), ::IdealGlmMhdEquations3D) ("rho", "rho_v1", "rho_v2", "rho_v3", "rho_e", "B1", "B2", "B3", "psi") diff --git a/src/equations/ideal_glm_mhd_multicomponent_1d.jl b/src/equations/ideal_glm_mhd_multicomponent_1d.jl index b2ed06e53ea..86a69e9fe10 100644 --- a/src/equations/ideal_glm_mhd_multicomponent_1d.jl +++ b/src/equations/ideal_glm_mhd_multicomponent_1d.jl @@ -10,8 +10,8 @@ The ideal compressible multicomponent GLM-MHD equations in one space dimension. """ -mutable struct IdealGlmMhdMulticomponentEquations1D{NVARS, NCOMP, RealT <: Real} <: - AbstractIdealGlmMhdMulticomponentEquations{1, NVARS, NCOMP} +struct IdealGlmMhdMulticomponentEquations1D{NVARS, NCOMP, RealT <: Real} <: + AbstractIdealGlmMhdMulticomponentEquations{1, NVARS, NCOMP} gammas::SVector{NCOMP, RealT} gas_constants::SVector{NCOMP, RealT} cv::SVector{NCOMP, RealT} @@ -51,6 +51,11 @@ function IdealGlmMhdMulticomponentEquations1D(; gammas, gas_constants) __gas_constants) end +# Outer constructor for `@reset` works correctly +function IdealGlmMhdMulticomponentEquations1D(gammas, gas_constants, cv, cp, c_h) + IdealGlmMhdMulticomponentEquations1D(gammas = gammas, gas_constants = gas_constants) +end + @inline function Base.real(::IdealGlmMhdMulticomponentEquations1D{NVARS, NCOMP, RealT}) where { NVARS, NCOMP, diff --git a/src/equations/ideal_glm_mhd_multicomponent_2d.jl b/src/equations/ideal_glm_mhd_multicomponent_2d.jl index 3aab048bd99..c56294b6643 100644 --- a/src/equations/ideal_glm_mhd_multicomponent_2d.jl +++ b/src/equations/ideal_glm_mhd_multicomponent_2d.jl @@ -10,8 +10,8 @@ The ideal compressible multicomponent GLM-MHD equations in two space dimensions. """ -mutable struct IdealGlmMhdMulticomponentEquations2D{NVARS, NCOMP, RealT <: Real} <: - AbstractIdealGlmMhdMulticomponentEquations{2, NVARS, NCOMP} +struct IdealGlmMhdMulticomponentEquations2D{NVARS, NCOMP, RealT <: Real} <: + AbstractIdealGlmMhdMulticomponentEquations{2, NVARS, NCOMP} gammas::SVector{NCOMP, RealT} gas_constants::SVector{NCOMP, RealT} cv::SVector{NCOMP, RealT} @@ -21,18 +21,18 @@ mutable struct IdealGlmMhdMulticomponentEquations2D{NVARS, NCOMP, RealT <: Real} function IdealGlmMhdMulticomponentEquations2D{NVARS, NCOMP, RealT}(gammas::SVector{NCOMP, RealT}, gas_constants::SVector{NCOMP, - RealT}) where { - NVARS, - NCOMP, - RealT <: - Real - } + RealT}, + c_h::RealT) where { + NVARS, + NCOMP, + RealT <: + Real + } NCOMP >= 1 || throw(DimensionMismatch("`gammas` and `gas_constants` have to be filled with at least one value")) cv = gas_constants ./ (gammas .- 1) cp = gas_constants + gas_constants ./ (gammas .- 1) - c_h = convert(eltype(gammas), NaN) new(gammas, gas_constants, cv, cp, c_h) end @@ -49,8 +49,30 @@ function IdealGlmMhdMulticomponentEquations2D(; gammas, gas_constants) __gammas = SVector(map(RealT, _gammas)) __gas_constants = SVector(map(RealT, _gas_constants)) + c_h = convert(RealT, NaN) + + return IdealGlmMhdMulticomponentEquations2D{NVARS, NCOMP, RealT}(__gammas, + __gas_constants, + c_h) +end + +# Outer constructor for `@reset` works correctly +function IdealGlmMhdMulticomponentEquations2D(gammas, gas_constants, cv, cp, c_h) + _gammas = promote(gammas...) + _gas_constants = promote(gas_constants...) + RealT = promote_type(eltype(_gammas), eltype(_gas_constants)) + + NVARS = length(_gammas) + 8 + NCOMP = length(_gammas) + + __gammas = SVector(map(RealT, _gammas)) + __gas_constants = SVector(map(RealT, _gas_constants)) + + c_h = convert(RealT, c_h) + return IdealGlmMhdMulticomponentEquations2D{NVARS, NCOMP, RealT}(__gammas, - __gas_constants) + __gas_constants, + c_h) end @inline function Base.real(::IdealGlmMhdMulticomponentEquations2D{NVARS, NCOMP, RealT}) where { diff --git a/src/meshes/p4est_mesh.jl b/src/meshes/p4est_mesh.jl index 526f5d9f23b..65c0a431b29 100644 --- a/src/meshes/p4est_mesh.jl +++ b/src/meshes/p4est_mesh.jl @@ -6,12 +6,23 @@ #! format: noindent """ - P4estMesh{NDIMS} <: AbstractMesh{NDIMS} + P4estMesh{NDIMS, NDIMS_AMBIENT} <: AbstractMesh{NDIMS} An unstructured curved mesh based on trees that uses the C library `p4est` to manage trees and mesh refinement. + +The parameter `NDIMS` denotes the dimension of the spatial domain or manifold represented +by the mesh itself, while `NDIMS_AMBIENT` denotes the dimension of the ambient space in +which the mesh is embedded. For example, the type `P4estMesh{3, 3}` corresponds to a +standard mesh for a three-dimensional volume, whereas `P4estMesh{2, 3}` corresponds to a +mesh for a two-dimensional surface or shell in three-dimensional space. + +!!! warning "Experimental implementation" + The use of `NDIMS != NDIMS_AMBIENT` is an experimental feature and may change in future + releases. """ -mutable struct P4estMesh{NDIMS, RealT <: Real, IsParallel, P, Ghost, NDIMSP2, NNODES} <: +mutable struct P4estMesh{NDIMS, NDIMS_AMBIENT, RealT <: Real, IsParallel, P, Ghost, + NDIMSP2, NNODES} <: AbstractMesh{NDIMS} p4est :: P # Either PointerWrapper{p4est_t} or PointerWrapper{p8est_t} is_parallel :: IsParallel @@ -48,7 +59,14 @@ mutable struct P4estMesh{NDIMS, RealT <: Real, IsParallel, P, Ghost, NDIMSP2, NN ghost = ghost_new_p4est(p4est) ghost_pw = PointerWrapper(ghost) - mesh = new{NDIMS, eltype(tree_node_coordinates), typeof(is_parallel), + # To enable the treatment of a manifold of dimension NDIMS embedded within an + # ambient space of dimension NDIMS_AMBIENT, we store both as type parameters and + # allow them to differ in the general case. This functionality is used for + # constructing discretizations on spherical shell domains for applications in + # global atmospheric modelling. The ambient dimension NDIMS_AMBIENT is therefore + # set here in the inner constructor to size(tree_node_coordinates, 1). + mesh = new{NDIMS, size(tree_node_coordinates, 1), + eltype(tree_node_coordinates), typeof(is_parallel), typeof(p4est_pw), typeof(ghost_pw), NDIMS + 2, length(nodes)}(p4est_pw, is_parallel, ghost_pw, @@ -66,8 +84,8 @@ mutable struct P4estMesh{NDIMS, RealT <: Real, IsParallel, P, Ghost, NDIMSP2, NN end end -const SerialP4estMesh{NDIMS} = P4estMesh{NDIMS, <:Real, <:False} -const ParallelP4estMesh{NDIMS} = P4estMesh{NDIMS, <:Real, <:True} +const SerialP4estMesh{NDIMS} = P4estMesh{NDIMS, <:Any, <:Real, <:False} +const ParallelP4estMesh{NDIMS} = P4estMesh{NDIMS, <:Any, <:Real, <:True} @inline mpi_parallel(mesh::SerialP4estMesh) = False() @inline mpi_parallel(mesh::ParallelP4estMesh) = True() @@ -87,7 +105,8 @@ function destroy_mesh(mesh::P4estMesh{3}) end @inline Base.ndims(::P4estMesh{NDIMS}) where {NDIMS} = NDIMS -@inline Base.real(::P4estMesh{NDIMS, RealT}) where {NDIMS, RealT} = RealT +@inline Base.real(::P4estMesh{NDIMS, NDIMS_AMBIENT, RealT}) where {NDIMS, NDIMS_AMBIENT, RealT} = RealT +@inline ndims_ambient(::P4estMesh{NDIMS, NDIMS_AMBIENT}) where {NDIMS, NDIMS_AMBIENT} = NDIMS_AMBIENT @inline function ntrees(mesh::P4estMesh) return mesh.p4est.trees.elem_count[] @@ -97,7 +116,8 @@ end @inline ncellsglobal(mesh::P4estMesh) = Int(mesh.p4est.global_num_quadrants[]) function Base.show(io::IO, mesh::P4estMesh) - print(io, "P4estMesh{", ndims(mesh), ", ", real(mesh), "}") + print(io, "P4estMesh{", ndims(mesh), ", ", ndims_ambient(mesh), ", ", real(mesh), + "}") end function Base.show(io::IO, ::MIME"text/plain", mesh::P4estMesh) @@ -107,11 +127,12 @@ function Base.show(io::IO, ::MIME"text/plain", mesh::P4estMesh) setup = [ "#trees" => ntrees(mesh), "current #cells" => ncellsglobal(mesh), - "polydeg" => length(mesh.nodes) - 1, + "polydeg" => length(mesh.nodes) - 1 ] summary_box(io, - "P4estMesh{" * string(ndims(mesh)) * ", " * string(real(mesh)) * - "}", setup) + "P4estMesh{" * string(ndims(mesh)) * ", " * + string(ndims_ambient(mesh)) * + ", " * string(real(mesh)) * "}", setup) end end diff --git a/src/meshes/parallel_tree.jl b/src/meshes/parallel_tree.jl index 83d99c4d110..7175ed47743 100644 --- a/src/meshes/parallel_tree.jl +++ b/src/meshes/parallel_tree.jl @@ -23,7 +23,7 @@ # # An exception to the 2:1 rule exists for the low-level `refine_unbalanced!` # function, which is required for implementing level-wise refinement in a sane -# way. Also, depth-first ordering *might* not by guaranteed during +# way. Also, depth-first ordering *might* not be guaranteed during # refinement/coarsening operations. mutable struct ParallelTree{NDIMS} <: AbstractTree{NDIMS} parent_ids::Vector{Int} diff --git a/src/meshes/parallel_tree_mesh.jl b/src/meshes/parallel_tree_mesh.jl index 050e419680c..2b1f1377553 100644 --- a/src/meshes/parallel_tree_mesh.jl +++ b/src/meshes/parallel_tree_mesh.jl @@ -20,8 +20,8 @@ function partition!(mesh::ParallelTreeMesh; allow_coarsening = true) n_leaves_per_rank = OffsetArray(fill(div(length(leaves), mpi_nranks()), mpi_nranks()), 0:(mpi_nranks() - 1)) - for d in 0:(rem(length(leaves), mpi_nranks()) - 1) - n_leaves_per_rank[d] += 1 + for rank in 0:(rem(length(leaves), mpi_nranks()) - 1) + n_leaves_per_rank[rank] += 1 end @assert sum(n_leaves_per_rank) == length(leaves) @@ -31,17 +31,20 @@ function partition!(mesh::ParallelTreeMesh; allow_coarsening = true) mesh.n_cells_by_rank = similar(n_leaves_per_rank) leaf_count = 0 + # Assign first cell to rank 0 (employ depth-first indexing of cells) mesh.first_cell_by_rank[0] = 1 # Iterate over all ranks - for d in 0:(mpi_nranks() - 1) - leaf_count += n_leaves_per_rank[d] + for rank in 0:(mpi_nranks() - 1) + leaf_count += n_leaves_per_rank[rank] last_id = leaves[leaf_count] parent_id = mesh.tree.parent_ids[last_id] - # Check if all children of the last parent are leaves + # If coarsening is allowed, we need to make sure that parents of leaves + # are on the same rank as the leaves when coarsened. if allow_coarsening && + # Check if all children of the last parent are leaves all(id -> is_leaf(mesh.tree, id), @view mesh.tree.child_ids[:, parent_id]) && - d < length(n_leaves_per_rank) - 1 + rank < length(n_leaves_per_rank) - 1 # Make sure there is another rank # To keep children of parent together if they are all leaves, # all children are added to this rank @@ -53,20 +56,21 @@ function partition!(mesh::ParallelTreeMesh; allow_coarsening = true) additional_cells) leaf_count += additional_leaves # Add leaves to this rank, remove from next rank - n_leaves_per_rank[d] += additional_leaves - n_leaves_per_rank[d + 1] -= additional_leaves + n_leaves_per_rank[rank] += additional_leaves + n_leaves_per_rank[rank + 1] -= additional_leaves end end @assert all(n -> n > 0, n_leaves_per_rank) "Too many ranks to properly partition the mesh!" - mesh.n_cells_by_rank[d] = last_id - mesh.first_cell_by_rank[d] + 1 - mesh.tree.mpi_ranks[mesh.first_cell_by_rank[d]:last_id] .= d + mesh.n_cells_by_rank[rank] = last_id - mesh.first_cell_by_rank[rank] + 1 + # Use depth-first indexing of cells again to assign also non leaf cells + mesh.tree.mpi_ranks[mesh.first_cell_by_rank[rank]:last_id] .= rank # Set first cell of next rank - if d < length(n_leaves_per_rank) - 1 - mesh.first_cell_by_rank[d + 1] = mesh.first_cell_by_rank[d] + - mesh.n_cells_by_rank[d] + if rank < length(n_leaves_per_rank) - 1 # Make sure there is another rank + mesh.first_cell_by_rank[rank + 1] = mesh.first_cell_by_rank[rank] + + mesh.n_cells_by_rank[rank] end end diff --git a/src/meshes/t8code_mesh.jl b/src/meshes/t8code_mesh.jl index 9b0e0b741a4..231e2965664 100644 --- a/src/meshes/t8code_mesh.jl +++ b/src/meshes/t8code_mesh.jl @@ -93,7 +93,7 @@ function Base.show(io::IO, ::MIME"text/plain", mesh::T8codeMesh) setup = [ "#trees" => ntrees(mesh), "current #cells" => ncellsglobal(mesh), - "polydeg" => length(mesh.nodes) - 1, + "polydeg" => length(mesh.nodes) - 1 ] summary_box(io, "T8codeMesh{" * string(ndims(mesh)) * ", " * string(real(mesh)) * "}", @@ -982,7 +982,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. @@ -1235,10 +1235,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]), @@ -1246,7 +1246,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_coupled.jl b/src/semidiscretization/semidiscretization_coupled.jl index 7c1fbef972b..745a8d3f6f8 100644 --- a/src/semidiscretization/semidiscretization_coupled.jl +++ b/src/semidiscretization/semidiscretization_coupled.jl @@ -16,7 +16,8 @@ The semidiscretizations can be coupled by gluing meshes together using [`Boundar !!! warning "Experimental code" This is an experimental feature and can change any time. """ -struct SemidiscretizationCoupled{S, Indices, EquationList} <: AbstractSemidiscretization +mutable struct SemidiscretizationCoupled{S, Indices, EquationList} <: + AbstractSemidiscretization semis::S u_indices::Indices # u_ode[u_indices[i]] is the part of u_ode corresponding to semis[i] performance_counter::PerformanceCounter @@ -383,7 +384,10 @@ function update_cleaning_speed!(semi_coupled::SemidiscretizationCoupled, c_h_deltat = calc_dt_for_cleaning_speed(cfl, mesh, equations, solver, cache) # c_h is proportional to its own time step divided by the complete MHD time step - equations.c_h = glm_scale * c_h_deltat / dt + # We use @reset here since the equations are immutable (to work on GPUs etc.). + # Thus, we need to modify the equations field of the semidiscretization. + @reset equations.c_h = glm_scale * c_h_deltat / dt + semi.equations = equations end return semi_coupled 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/semidiscretization/semidiscretization_hyperbolic.jl b/src/semidiscretization/semidiscretization_hyperbolic.jl index e35c0e2ea97..6c6aa5b457c 100644 --- a/src/semidiscretization/semidiscretization_hyperbolic.jl +++ b/src/semidiscretization/semidiscretization_hyperbolic.jl @@ -11,10 +11,10 @@ A struct containing everything needed to describe a spatial semidiscretization of a hyperbolic conservation law. """ -struct SemidiscretizationHyperbolic{Mesh, Equations, InitialCondition, - BoundaryConditions, - SourceTerms, Solver, Cache} <: - AbstractSemidiscretization +mutable struct SemidiscretizationHyperbolic{Mesh, Equations, InitialCondition, + BoundaryConditions, + SourceTerms, Solver, Cache} <: + AbstractSemidiscretization mesh::Mesh equations::Equations diff --git a/src/solvers/dg.jl b/src/solvers/dg.jl index b7f4980a755..0d9be65e75b 100644 --- a/src/solvers/dg.jl +++ b/src/solvers/dg.jl @@ -86,7 +86,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 @@ -178,7 +178,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 @@ -287,7 +287,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 @@ -327,7 +327,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 @@ -353,7 +353,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 @@ -384,7 +384,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_p4est/containers.jl b/src/solvers/dgsem_p4est/containers.jl index f9830d0011c..3ef9cb2a421 100644 --- a/src/solvers/dgsem_p4est/containers.jl +++ b/src/solvers/dgsem_p4est/containers.jl @@ -81,7 +81,8 @@ function Base.resize!(elements::P4estElementContainer, capacity) end # Create element container and initialize element data -function init_elements(mesh::Union{P4estMesh{NDIMS, RealT}, T8codeMesh{NDIMS, RealT}}, +function init_elements(mesh::Union{P4estMesh{NDIMS, NDIMS, RealT}, + T8codeMesh{NDIMS, RealT}}, equations, basis, ::Type{uEltype}) where {NDIMS, RealT <: Real, uEltype <: Real} diff --git a/src/solvers/dgsem_p4est/containers_2d.jl b/src/solvers/dgsem_p4est/containers_2d.jl index 236d7d24c06..6af6fd6d90e 100644 --- a/src/solvers/dgsem_p4est/containers_2d.jl +++ b/src/solvers/dgsem_p4est/containers_2d.jl @@ -37,13 +37,14 @@ end # Interpolate tree_node_coordinates to each quadrant at the specified nodes function calc_node_coordinates!(node_coordinates, - mesh::P4estMesh{2}, - nodes::AbstractVector) + mesh::P4estMesh{2, NDIMS_AMBIENT}, + nodes::AbstractVector) where {NDIMS_AMBIENT} # We use `StrideArray`s here since these buffers are used in performance-critical # places and the additional information passed to the compiler makes them faster # than native `Array`s. tmp1 = StrideArray(undef, real(mesh), - StaticInt(2), static_length(nodes), static_length(mesh.nodes)) + StaticInt(NDIMS_AMBIENT), static_length(nodes), + static_length(mesh.nodes)) matrix1 = StrideArray(undef, real(mesh), static_length(nodes), static_length(mesh.nodes)) matrix2 = similar(matrix1) diff --git a/src/solvers/dgsem_p4est/dg_parallel.jl b/src/solvers/dgsem_p4est/dg_parallel.jl index eaa6ab5cee2..0aee0b5652e 100644 --- a/src/solvers/dgsem_p4est/dg_parallel.jl +++ b/src/solvers/dgsem_p4est/dg_parallel.jl @@ -49,10 +49,10 @@ function start_mpi_send!(mpi_cache::P4estMPICache, mesh, equations, dg, cache) data_size = nvariables(equations) * nnodes(dg)^(ndims(mesh) - 1) n_small_elements = 2^(ndims(mesh) - 1) - for d in 1:length(mpi_cache.mpi_neighbor_ranks) - send_buffer = mpi_cache.mpi_send_buffers[d] + for rank in 1:length(mpi_cache.mpi_neighbor_ranks) + send_buffer = mpi_cache.mpi_send_buffers[rank] - for (index, interface) in enumerate(mpi_cache.mpi_neighbor_interfaces[d]) + for (index, interface) in enumerate(mpi_cache.mpi_neighbor_interfaces[rank]) first = (index - 1) * data_size + 1 last = (index - 1) * data_size + data_size local_side = cache.mpi_interfaces.local_sides[interface] @@ -62,14 +62,15 @@ function start_mpi_send!(mpi_cache::P4estMPICache, mesh, equations, dg, cache) # Set send_buffer corresponding to mortar data to NaN and overwrite the parts where local # data exists - interfaces_data_size = length(mpi_cache.mpi_neighbor_interfaces[d]) * data_size - mortars_data_size = length(mpi_cache.mpi_neighbor_mortars[d]) * + interfaces_data_size = length(mpi_cache.mpi_neighbor_interfaces[rank]) * + data_size + mortars_data_size = length(mpi_cache.mpi_neighbor_mortars[rank]) * n_small_elements * 2 * data_size # `NaN |> eltype(...)` ensures that the NaN's are of the appropriate floating point type send_buffer[(interfaces_data_size + 1):(interfaces_data_size + mortars_data_size)] .= NaN |> eltype(mpi_cache) - for (index, mortar) in enumerate(mpi_cache.mpi_neighbor_mortars[d]) + for (index, mortar) in enumerate(mpi_cache.mpi_neighbor_mortars[rank]) index_base = interfaces_data_size + (index - 1) * n_small_elements * 2 * data_size indices = buffer_mortar_indices(mesh, index_base, data_size) @@ -91,18 +92,18 @@ function start_mpi_send!(mpi_cache::P4estMPICache, mesh, equations, dg, cache) end # Start sending - for (index, d) in enumerate(mpi_cache.mpi_neighbor_ranks) + for (index, rank) in enumerate(mpi_cache.mpi_neighbor_ranks) mpi_cache.mpi_send_requests[index] = MPI.Isend(mpi_cache.mpi_send_buffers[index], - d, mpi_rank(), mpi_comm()) + rank, mpi_rank(), mpi_comm()) end return nothing end function start_mpi_receive!(mpi_cache::P4estMPICache) - for (index, d) in enumerate(mpi_cache.mpi_neighbor_ranks) + for (index, rank) in enumerate(mpi_cache.mpi_neighbor_ranks) mpi_cache.mpi_recv_requests[index] = MPI.Irecv!(mpi_cache.mpi_recv_buffers[index], - d, d, mpi_comm()) + rank, rank, mpi_comm()) end return nothing @@ -118,11 +119,11 @@ function finish_mpi_receive!(mpi_cache::P4estMPICache, mesh, equations, dg, cach n_positions = n_small_elements + 1 # Start receiving and unpack received data until all communication is finished - d = MPI.Waitany(mpi_cache.mpi_recv_requests) - while d !== nothing - recv_buffer = mpi_cache.mpi_recv_buffers[d] + data = MPI.Waitany(mpi_cache.mpi_recv_requests) + while data !== nothing + recv_buffer = mpi_cache.mpi_recv_buffers[data] - for (index, interface) in enumerate(mpi_cache.mpi_neighbor_interfaces[d]) + for (index, interface) in enumerate(mpi_cache.mpi_neighbor_interfaces[data]) first = (index - 1) * data_size + 1 last = (index - 1) * data_size + data_size @@ -133,8 +134,9 @@ function finish_mpi_receive!(mpi_cache::P4estMPICache, mesh, equations, dg, cach end end - interfaces_data_size = length(mpi_cache.mpi_neighbor_interfaces[d]) * data_size - for (index, mortar) in enumerate(mpi_cache.mpi_neighbor_mortars[d]) + interfaces_data_size = length(mpi_cache.mpi_neighbor_interfaces[data]) * + data_size + for (index, mortar) in enumerate(mpi_cache.mpi_neighbor_mortars[data]) index_base = interfaces_data_size + (index - 1) * n_small_elements * 2 * data_size indices = buffer_mortar_indices(mesh, index_base, data_size) @@ -155,7 +157,7 @@ function finish_mpi_receive!(mpi_cache::P4estMPICache, mesh, equations, dg, cach end end - d = MPI.Waitany(mpi_cache.mpi_recv_requests) + data = MPI.Waitany(mpi_cache.mpi_recv_requests) end return nothing @@ -311,10 +313,10 @@ function init_mpi_neighbor_connectivity(mpi_interfaces, mpi_mortars, # For each neighbor rank, init connectivity data structures mpi_neighbor_interfaces = Vector{Vector{Int}}(undef, length(mpi_neighbor_ranks)) mpi_neighbor_mortars = Vector{Vector{Int}}(undef, length(mpi_neighbor_ranks)) - for (index, d) in enumerate(mpi_neighbor_ranks) - mpi_neighbor_interfaces[index] = interface_ids[findall(==(d), + for (index, rank) in enumerate(mpi_neighbor_ranks) + mpi_neighbor_interfaces[index] = interface_ids[findall(==(rank), neighbor_ranks_interface)] - mpi_neighbor_mortars[index] = mortar_ids[findall(x -> (d in x), + mpi_neighbor_mortars[index] = mortar_ids[findall(x -> (rank in x), neighbor_ranks_mortar)] end @@ -519,10 +521,10 @@ function exchange_normal_directions!(mpi_mortars, mpi_cache, recv_requests = Vector{MPI.Request}(undef, length(mpi_neighbor_mortars)) # Fill send buffers - for d in 1:length(mpi_neighbor_ranks) - send_buffer = send_buffers[d] + for rank in 1:length(mpi_neighbor_ranks) + send_buffer = send_buffers[rank] - for (index, mortar) in enumerate(mpi_neighbor_mortars[d]) + for (index, mortar) in enumerate(mpi_neighbor_mortars[rank]) index_base = (index - 1) * n_small_elements * data_size indices = buffer_mortar_indices(mesh, index_base, data_size) for position in mpi_mortars.local_neighbor_positions[mortar] @@ -538,17 +540,18 @@ function exchange_normal_directions!(mpi_mortars, mpi_cache, end # Start data exchange - for (index, d) in enumerate(mpi_neighbor_ranks) - send_requests[index] = MPI.Isend(send_buffers[index], d, mpi_rank(), mpi_comm()) - recv_requests[index] = MPI.Irecv!(recv_buffers[index], d, d, mpi_comm()) + for (index, rank) in enumerate(mpi_neighbor_ranks) + send_requests[index] = MPI.Isend(send_buffers[index], rank, mpi_rank(), + mpi_comm()) + recv_requests[index] = MPI.Irecv!(recv_buffers[index], rank, rank, mpi_comm()) end # Unpack data from receive buffers - d = MPI.Waitany(recv_requests) - while d !== nothing - recv_buffer = recv_buffers[d] + data = MPI.Waitany(recv_requests) + while data !== nothing + recv_buffer = recv_buffers[data] - for (index, mortar) in enumerate(mpi_neighbor_mortars[d]) + for (index, mortar) in enumerate(mpi_neighbor_mortars[data]) index_base = (index - 1) * n_small_elements * data_size indices = buffer_mortar_indices(mesh, index_base, data_size) for position in 1:n_small_elements @@ -563,7 +566,7 @@ function exchange_normal_directions!(mpi_mortars, mpi_cache, end end - d = MPI.Waitany(recv_requests) + data = MPI.Waitany(recv_requests) end # Wait for communication to finish diff --git a/src/solvers/dgsem_t8code/dg_parallel.jl b/src/solvers/dgsem_t8code/dg_parallel.jl index ece614b7d75..26830261353 100644 --- a/src/solvers/dgsem_t8code/dg_parallel.jl +++ b/src/solvers/dgsem_t8code/dg_parallel.jl @@ -119,10 +119,10 @@ function init_mpi_neighbor_connectivity(mpi_mesh_info, mesh::ParallelT8codeMesh) # For each neighbor rank, init connectivity data structures mpi_neighbor_interfaces = Vector{Vector{Int}}(undef, length(mpi_neighbor_ranks)) mpi_neighbor_mortars = Vector{Vector{Int}}(undef, length(mpi_neighbor_ranks)) - for (index, d) in enumerate(mpi_neighbor_ranks) - mpi_neighbor_interfaces[index] = interface_ids[findall(==(d), + for (index, rank) in enumerate(mpi_neighbor_ranks) + mpi_neighbor_interfaces[index] = interface_ids[findall(==(rank), neighbor_ranks_interface)] - mpi_neighbor_mortars[index] = mortar_ids[findall(x -> (d in x), + mpi_neighbor_mortars[index] = mortar_ids[findall(x -> (rank in x), neighbor_ranks_mortar)] end diff --git a/src/solvers/dgsem_tree/containers_2d.jl b/src/solvers/dgsem_tree/containers_2d.jl index 63308393838..e1eddb43c69 100644 --- a/src/solvers/dgsem_tree/containers_2d.jl +++ b/src/solvers/dgsem_tree/containers_2d.jl @@ -767,6 +767,7 @@ end # Container data structure (structure-of-arrays style) for DG MPI interfaces mutable struct MPIInterfaceContainer2D{uEltype <: Real} <: AbstractContainer u::Array{uEltype, 4} # [leftright, variables, i, interfaces] + # Note: `local_neighbor_ids` stores the MPI-local neighbors, but with globally valid index! local_neighbor_ids::Vector{Int} # [interfaces] orientations::Vector{Int} # [interfaces] remote_sides::Vector{Int} # [interfaces] @@ -907,6 +908,8 @@ function init_mpi_interfaces!(mpi_interfaces, elements, mesh::TreeMesh2D) # Create interface between elements count += 1 + # Note: `local_neighbor_ids` stores the MPI-local neighbors, + # but with globally valid index! mpi_interfaces.local_neighbor_ids[count] = element if iseven(direction) # element is "left" of interface, remote cell is "right" of interface @@ -941,6 +944,7 @@ end mutable struct MPIL2MortarContainer2D{uEltype <: Real} <: AbstractContainer u_upper::Array{uEltype, 4} # [leftright, variables, i, mortars] u_lower::Array{uEltype, 4} # [leftright, variables, i, mortars] + # Note: `local_neighbor_ids` stores the MPI-local neighbors, but with globally valid index! local_neighbor_ids::Vector{Vector{Int}} # [mortars][ids] local_neighbor_positions::Vector{Vector{Int}} # [mortars][positions] # Large sides: left -> 1, right -> 2 @@ -1214,6 +1218,8 @@ function init_mpi_mortars!(mpi_mortars, elements, mesh::TreeMesh2D) # 3 -> large element count += 1 + # Note: `local_neighbor_ids` stores the MPI-local neighbors, + # but with globally valid index! local_neighbor_ids = Vector{Int}() local_neighbor_positions = Vector{Int}() if is_own_cell(mesh.tree, lower_cell_id) diff --git a/src/solvers/dgsem_tree/dg_2d_parallel.jl b/src/solvers/dgsem_tree/dg_2d_parallel.jl index 157d462aa2f..d7b76f5773a 100644 --- a/src/solvers/dgsem_tree/dg_2d_parallel.jl +++ b/src/solvers/dgsem_tree/dg_2d_parallel.jl @@ -48,9 +48,9 @@ end # TODO: MPI dimension agnostic function start_mpi_receive!(mpi_cache::MPICache) - for (index, d) in enumerate(mpi_cache.mpi_neighbor_ranks) + for (index, rank) in enumerate(mpi_cache.mpi_neighbor_ranks) mpi_cache.mpi_recv_requests[index] = MPI.Irecv!(mpi_cache.mpi_recv_buffers[index], - d, d, mpi_comm()) + rank, rank, mpi_comm()) end return nothing @@ -60,10 +60,10 @@ end function start_mpi_send!(mpi_cache::MPICache, mesh, equations, dg, cache) data_size = nvariables(equations) * nnodes(dg)^(ndims(mesh) - 1) - for d in 1:length(mpi_cache.mpi_neighbor_ranks) - send_buffer = mpi_cache.mpi_send_buffers[d] + for rank in 1:length(mpi_cache.mpi_neighbor_ranks) + send_buffer = mpi_cache.mpi_send_buffers[rank] - for (index, interface) in enumerate(mpi_cache.mpi_neighbor_interfaces[d]) + for (index, interface) in enumerate(mpi_cache.mpi_neighbor_interfaces[rank]) first = (index - 1) * data_size + 1 last = (index - 1) * data_size + data_size @@ -78,11 +78,12 @@ function start_mpi_send!(mpi_cache::MPICache, mesh, equations, dg, cache) # Each mortar has a total size of 4 * data_size, set everything to NaN first and overwrite the # parts where local data exists - interfaces_data_size = length(mpi_cache.mpi_neighbor_interfaces[d]) * data_size - mortars_data_size = length(mpi_cache.mpi_neighbor_mortars[d]) * 4 * data_size + interfaces_data_size = length(mpi_cache.mpi_neighbor_interfaces[rank]) * + data_size + mortars_data_size = length(mpi_cache.mpi_neighbor_mortars[rank]) * 4 * data_size send_buffer[(interfaces_data_size + 1):(interfaces_data_size + mortars_data_size)] .= NaN - for (index, mortar) in enumerate(mpi_cache.mpi_neighbor_mortars[d]) + for (index, mortar) in enumerate(mpi_cache.mpi_neighbor_mortars[rank]) # First and last indices in the send buffer for mortar data obtained from local element # in a given position index_base = interfaces_data_size + (index - 1) * 4 * data_size @@ -143,9 +144,9 @@ function start_mpi_send!(mpi_cache::MPICache, mesh, equations, dg, cache) end # Start sending - for (index, d) in enumerate(mpi_cache.mpi_neighbor_ranks) + for (index, rank) in enumerate(mpi_cache.mpi_neighbor_ranks) mpi_cache.mpi_send_requests[index] = MPI.Isend(mpi_cache.mpi_send_buffers[index], - d, mpi_rank(), mpi_comm()) + rank, mpi_rank(), mpi_comm()) end return nothing @@ -161,11 +162,11 @@ function finish_mpi_receive!(mpi_cache::MPICache, mesh, equations, dg, cache) data_size = nvariables(equations) * nnodes(dg)^(ndims(mesh) - 1) # Start receiving and unpack received data until all communication is finished - d = MPI.Waitany(mpi_cache.mpi_recv_requests) - while d !== nothing - recv_buffer = mpi_cache.mpi_recv_buffers[d] + data = MPI.Waitany(mpi_cache.mpi_recv_requests) + while data !== nothing + recv_buffer = mpi_cache.mpi_recv_buffers[data] - for (index, interface) in enumerate(mpi_cache.mpi_neighbor_interfaces[d]) + for (index, interface) in enumerate(mpi_cache.mpi_neighbor_interfaces[data]) first = (index - 1) * data_size + 1 last = (index - 1) * data_size + data_size @@ -176,8 +177,9 @@ function finish_mpi_receive!(mpi_cache::MPICache, mesh, equations, dg, cache) end end - interfaces_data_size = length(mpi_cache.mpi_neighbor_interfaces[d]) * data_size - for (index, mortar) in enumerate(mpi_cache.mpi_neighbor_mortars[d]) + interfaces_data_size = length(mpi_cache.mpi_neighbor_interfaces[data]) * + data_size + for (index, mortar) in enumerate(mpi_cache.mpi_neighbor_mortars[data]) # First and last indices in the receive buffer for mortar data obtained from remote element # in a given position index_base = interfaces_data_size + (index - 1) * 4 * data_size @@ -230,7 +232,7 @@ function finish_mpi_receive!(mpi_cache::MPICache, mesh, equations, dg, cache) end end - d = MPI.Waitany(mpi_cache.mpi_recv_requests) + data = MPI.Waitany(mpi_cache.mpi_recv_requests) end return nothing @@ -431,10 +433,10 @@ function init_mpi_neighbor_connectivity(elements, mpi_interfaces, mpi_mortars, # For each neighbor rank, init connectivity data structures mpi_neighbor_interfaces = Vector{Vector{Int}}(undef, length(mpi_neighbor_ranks)) mpi_neighbor_mortars = Vector{Vector{Int}}(undef, length(mpi_neighbor_ranks)) - for (index, d) in enumerate(mpi_neighbor_ranks) - mpi_neighbor_interfaces[index] = interface_ids[findall(x -> (x == d), + for (index, rank) in enumerate(mpi_neighbor_ranks) + mpi_neighbor_interfaces[index] = interface_ids[findall(x -> (x == rank), neighbor_ranks_interface)] - mpi_neighbor_mortars[index] = mortar_ids[findall(x -> (d in x), + mpi_neighbor_mortars[index] = mortar_ids[findall(x -> (rank in x), neighbor_ranks_mortar)] end diff --git a/src/solvers/dgsem_tree/indicators.jl b/src/solvers/dgsem_tree/indicators.jl index 323c1236c21..04b3bc98aec 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 @@ -196,7 +196,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 @@ -254,7 +254,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 d08944e7f5c..dabd20153d9 100644 --- a/src/solvers/dgsem_tree/subcell_limiters.jl +++ b/src/solvers/dgsem_tree/subcell_limiters.jl @@ -414,14 +414,14 @@ function Base.show(io::IO, ::MIME"text/plain", limiter::SubcellLimiterMCL) if limiter.positivity_limiter_pressure setup = [ setup..., - "" => "$(positivity_limiter_pressure_exact ? "(Sharp)" : "(Cautious)") positivity limiter for Pressure à la Kuzmin", + "" => "$(positivity_limiter_pressure_exact ? "(Sharp)" : "(Cautious)") positivity limiter for Pressure à la Kuzmin" ] end if positivity_limiter_density if limiter.positivity_limiter_correction_factor != 0.0 setup = [ setup..., - "" => "Positivity Limiter for Density with correction factor $(limiter.positivity_limiter_correction_factor)", + "" => "Positivity Limiter for Density with correction factor $(limiter.positivity_limiter_correction_factor)" ] else setup = [setup..., "" => "Positivity Limiter for Density"] @@ -432,7 +432,7 @@ function Base.show(io::IO, ::MIME"text/plain", limiter::SubcellLimiterMCL) if limiter.smoothness_indicator setup = [ setup..., - "Smoothness indicator" => "$(limiter.IndicatorHG) using threshold $(limiter.threshold_smoothness_indicator)", + "Smoothness indicator" => "$(limiter.IndicatorHG) using threshold $(limiter.threshold_smoothness_indicator)" ] end summary_box(io, "SubcellLimiterMCL", setup) diff --git a/src/solvers/dgsem_tree/subcell_limiters_2d.jl b/src/solvers/dgsem_tree/subcell_limiters_2d.jl index e7bf3a25903..a50191044b5 100644 --- a/src/solvers/dgsem_tree/subcell_limiters_2d.jl +++ b/src/solvers/dgsem_tree/subcell_limiters_2d.jl @@ -353,9 +353,6 @@ end Pm = min(0, val_flux1_local) + min(0, val_flux1_local_ip1) + min(0, val_flux2_local) + min(0, val_flux2_local_jp1) - Qp = max(0, (var_max[i, j, element] - var) / dt) - Qm = min(0, (var_min[i, j, element] - var) / dt) - Pp = inverse_jacobian * Pp Pm = inverse_jacobian * Pm 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..5af8c9ee911 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) @@ -98,13 +98,18 @@ end @trixi_testset "elixir_euler_curved.jl (Hex elements, SBP, flux differencing)" begin @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_curved.jl"), l2=[ - 0.01835488304593566, 0.024412704052042534, - 0.02440852041608929, 0.018163145708800853, - 0.03934280550797125, + 0.0019393929700612259, + 0.003213659298633126, + 0.003203104361527826, + 0.0019407707245105426, + 0.0109274471764788 ], linf=[ - 0.14862225990793032, 0.2895236816183626, 0.291205448481636, - 0.14566031338563246, 0.33153545867790246, + 0.01914151956454324, + 0.0270195960766606, + 0.026891238631389536, + 0.019817504336972602, + 0.09645660501766873 ]) # Ensure that we do not have excessive memory allocations # (e.g., from type instabilities) @@ -122,12 +127,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 +149,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 +176,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 +207,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 +234,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 +262,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 +296,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 +332,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 +358,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 29de4efc6d0..6ac8133f5d2 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 4f9465b85dc..d6018e51c81 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 75e65c8c380..dcbbf626e21 100644 --- a/test/test_mpi_t8code_2d.jl +++ b/test/test_mpi_t8code_2d.jl @@ -119,13 +119,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 2e837f79ad8..c4ca592eaf9 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 6114e453e56..1e51da02c69 100644 --- a/test/test_mpi_tree.jl +++ b/test/test_mpi_tree.jl @@ -111,12 +111,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 @@ -127,12 +127,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 @@ -141,12 +141,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 @@ -156,12 +156,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 @@ -177,13 +177,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 @@ -198,13 +198,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. @@ -220,13 +220,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 @@ -239,13 +239,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 @@ -262,13 +262,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 @@ -281,13 +281,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 @@ -299,13 +299,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 @@ -316,13 +316,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 @@ -335,13 +335,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 2ee3774567d..a8c20ee3bd1 100644 --- a/test/test_p4est_2d.jl +++ b/test/test_p4est_2d.jl @@ -132,13 +132,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) @@ -156,7 +156,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,) @@ -177,13 +177,13 @@ end 1.4663777294625118e-15, 2.320054900530864e-14, 3.487555722563465e-14, - 2.008802099296406e-14, + 2.008802099296406e-14 ], linf=[ 2.3092638912203256e-14, 2.0623780461193064e-13, 2.6795232699328153e-13, - 2.362554596402333e-13, + 2.362554596402333e-13 ], atol=2.0e-12,) # Ensure that we do not have excessive memory allocations @@ -192,6 +192,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -202,13 +206,13 @@ end 1.5395023651392628e-16, 5.707276922805213e-15, 6.656058585297407e-15, - 5.171129126439075e-15, + 5.171129126439075e-15 ], linf=[ 2.886579864025407e-15, 5.384581669432009e-14, 9.997558336749535e-14, - 6.217248937900877e-14, + 6.217248937900877e-14 ], trees_per_dimension=(8, 8), atol=2.0e-12,) @@ -218,6 +222,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -228,13 +236,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 @@ -253,13 +261,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) @@ -280,13 +288,13 @@ end 0.09539953f0, 0.10563527f0, 0.105637245f0, - 0.3507514f0, + 0.3507514f0 ], linf=[ 0.2942562f0, 0.4079147f0, 0.3972956f0, - 1.0810697f0, + 1.0810697f0 ], tspan=(0.0f0, 1.0f0), rtol=10 * sqrt(eps(Float32)), # to make CI pass @@ -307,13 +315,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 @@ -333,13 +341,13 @@ end 0.4573787784168518, 0.28520972760728397, 0.28527281808006966, - 1.2881460122982442, + 1.2881460122982442 ], linf=[ 1.644411040701827, 1.6743368119653912, 1.6760847977977988, - 6.268843623142863, + 6.268843623142863 ], tspan=(0.0, 0.3)) # Ensure that we do not have excessive memory allocations @@ -348,6 +356,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -358,13 +370,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)) @@ -384,13 +396,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)) @@ -410,13 +422,13 @@ end 0.6321850210104147, 0.38691446170269167, 0.3868695626809587, - 1.0657553825683956, + 1.0657553825683956 ], linf=[ 2.7602280007469666, 2.3265993814913672, 2.3258078438689673, - 2.1577683028925416, + 2.1577683028925416 ], tspan=(0.0, 0.3), coverage_override=(maxiters = 6,)) @@ -436,13 +448,13 @@ end 0.02026685991647352, 0.017467584076280237, 0.011378371604813321, - 0.05138942558296091, + 0.05138942558296091 ], linf=[ 0.35924402060711524, 0.32068389566068806, 0.2361141752119986, - 0.9289840057748628, + 0.9289840057748628 ], tspan=(0.0, 0.15)) # Ensure that we do not have excessive memory allocations @@ -461,13 +473,13 @@ end 0.004191480950848891, 0.003781298410569231, 0.0013470418422981045, - 0.03262817609394949, + 0.03262817609394949 ], linf=[ 2.0581500751947113, 2.2051301367971288, 3.8502467979250254, - 17.750333649853616, + 17.750333649853616 ], tspan=(0.0, 0.0001), rtol=1.0e-7, @@ -490,13 +502,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) @@ -518,13 +530,13 @@ end 0.8741784143331414, 6.669726935141086, 3.4980245896042237, - 76.33557073504075, + 76.33557073504075 ], linf=[ 11.428353668952052, 142.73486850872337, 38.91639544604301, - 1651.7541390872523, + 1651.7541390872523 ], initial_refinement_level=1, tspan=(0.0, 0.05)) @@ -534,6 +546,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -544,13 +560,13 @@ end 0.8887316275665462, 6.644244953884147, 3.449004719784639, - 76.2706476520857, + 76.2706476520857 ], linf=[ 11.047531178706233, 121.96650277677288, 35.74266968217143, - 1370.2362955295687, + 1370.2362955295687 ], initial_refinement_level=1, tspan=(0.0, 0.05)) @@ -560,6 +576,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -570,13 +590,13 @@ end 0.02676082999794676, 0.05110830068968181, 0.03205164257040607, - 0.1965981012724311, + 0.1965981012724311 ], linf=[ 3.6830683476364476, 4.284442685012427, 6.857777546171545, - 31.749285097390576, + 31.749285097390576 ], tspan=(0.0, 0.001), skip_coverage=true) @@ -599,13 +619,13 @@ end 0.11085870166618325, 0.23309905989870722, 0.13505351590735631, - 0.7932047512585592, + 0.7932047512585592 ], linf=[ 2.9808773737943564, 4.209364526217892, 6.265341002817672, - 24.077904874883338, + 24.077904874883338 ], tspan=(0.0, 0.02)) # Ensure that we do not have excessive memory allocations @@ -614,6 +634,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -625,13 +649,13 @@ end 0.01719185099537115, 0.037755715231922615, 0.018219844214522288, - 0.1211329583241979, + 0.1211329583241979 ], linf=[ 1.36377851955985337, 2.886724226405783, 2.271954486109792, - 9.900660307619413, + 9.900660307619413 ], tspan=(0.0, 0.001)) # Ensure that we do not have excessive memory allocations @@ -640,6 +664,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -648,11 +676,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 @@ -671,13 +699,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 @@ -696,13 +724,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 @@ -768,13 +796,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) @@ -792,13 +820,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) @@ -829,11 +857,11 @@ end "elixir_euler_NACA0012airfoil_mach085.jl"), l2=[ 5.56114097044427e-7, 6.62284247153255e-6, - 1.0823259724601275e-5, 0.000659804574787503, + 1.0823259724601275e-5, 0.000659804574787503 ], linf=[ 0.002157589754528455, 0.039163189253511164, - 0.038386804399707625, 2.6685831417913914, + 0.038386804399707625, 2.6685831417913914 ], amr_interval=1, base_level=0, med_level=1, max_level=1, @@ -874,13 +902,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), mesh=P4estMesh((64, 64), polydeg = 3, @@ -902,13 +930,13 @@ end 0.11134260363848127, 0.11752357091804219, 0.11829112104640764, - 0.7557891142955036, + 0.7557891142955036 ], linf=[ 0.5728647031475109, 0.8353132977670252, 0.8266797080712205, - 3.9792506230548317, + 3.9792506230548317 ], tspan=(0.0, 0.1), coverage_override=(maxiters = 6,)) diff --git a/test/test_p4est_3d.jl b/test/test_p4est_3d.jl index 3432bd69b23..869b7554bf2 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) @@ -266,14 +266,14 @@ end Float32(1.6057829680004379e-15), Float32(3.31107455378537e-15), Float32(3.908829498281281e-15), - Float32(5.048390610424672e-15), + Float32(5.048390610424672e-15) ], linf=[ Float32(4.884981308350689e-15), Float32(1.1921019726912618e-14), Float32(1.5432100042289676e-14), Float32(2.298161660974074e-14), - Float32(6.039613253960852e-14), + Float32(6.039613253960852e-14) ], RealT=Float32) # Ensure that we do not have excessive memory allocations @@ -293,14 +293,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) @@ -321,14 +321,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 @@ -349,14 +349,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, @@ -378,14 +378,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 @@ -406,14 +406,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) @@ -435,14 +435,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, @@ -465,14 +465,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 @@ -494,14 +494,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 @@ -525,14 +525,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) @@ -600,11 +600,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) @@ -623,14 +623,14 @@ end 0.018525073963833696, 0.019102348105917946, 0.01920515438943838, - 0.15060493968460148, + 0.15060493968460148 ], linf=[ 0.2994949779783401, 0.5530175050084679, 0.5335803757792128, 0.5647252867336123, - 3.6462732329242566, + 3.6462732329242566 ], tspan=(0.0, 0.025), coverage_override=(maxiters = 6,)) 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 d038354f88a..ceefb65e99b 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 78230e5cf0d..f64b8c9c065 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) @@ -176,12 +176,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) diff --git a/test/test_structured_2d.jl b/test/test_structured_2d.jl index d8fa8220600..8254712cf3f 100644 --- a/test/test_structured_2d.jl +++ b/test/test_structured_2d.jl @@ -52,13 +52,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,)) @@ -68,13 +68,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) @@ -91,11 +91,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,)) @@ -313,14 +313,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 @@ -340,13 +340,13 @@ end 0.3398358793878119, 0.03398358793878129, 0.06796717587756244, - 0.008495896984696072, + 0.008495896984696072 ], linf=[ 0.8360446582060936, 0.08360446582060972, 0.16720893164122444, - 0.02090111645397741, + 0.02090111645397741 ], tspan=(0.0, 0.5)) # Ensure that we do not have excessive memory allocations @@ -355,6 +355,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 10000 end end @@ -366,13 +370,13 @@ end 0.33983417649330827, 0.033983417649330924, 0.06796683529866161, - 0.008495854412336827, + 0.008495854412336827 ], linf=[ 0.8360446582068146, 0.083604465820679, 0.16720893164136671, - 0.02090111645399162, + 0.02090111645399162 ], tspan=(0.0, 0.5)) # Ensure that we do not have excessive memory allocations @@ -381,6 +385,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 10000 end end @@ -392,13 +400,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) @@ -419,13 +427,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 @@ -446,13 +454,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 @@ -473,13 +481,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 @@ -500,13 +508,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 @@ -527,13 +535,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) @@ -552,13 +560,13 @@ end 0.00816012943805366, 0.008658255997419217, 0.00935190284719103, - 0.027757019482291357, + 0.027757019482291357 ], linf=[ 0.02722563220635177, 0.040734034380730755, 0.03819407626402338, - 0.08080649141597318, + 0.08080649141597318 ], tspan=(0.0, 0.5)) # Ensure that we do not have excessive memory allocations @@ -567,6 +575,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 10000 end end @@ -578,13 +590,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) @@ -602,13 +614,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 @@ -628,13 +640,13 @@ end 1.4663777294625118e-15, 2.320054900530864e-14, 3.487555722563465e-14, - 2.008802099296406e-14, + 2.008802099296406e-14 ], linf=[ 2.3092638912203256e-14, 2.0623780461193064e-13, 2.6795232699328153e-13, - 2.362554596402333e-13, + 2.362554596402333e-13 ], atol=7.0e-13) # Ensure that we do not have excessive memory allocations @@ -643,6 +655,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 10000 end end @@ -653,13 +669,13 @@ end 8.457600308458635e-16, 2.185478357408446e-14, 3.14987670823871e-14, - 1.6817763381190492e-14, + 1.6817763381190492e-14 ], linf=[ 2.1316282072803006e-14, 2.0759782781709646e-13, 2.4705237855471296e-13, - 2.255973186038318e-13, + 2.255973186038318e-13 ], atol=7.0e-13) # Ensure that we do not have excessive memory allocations @@ -668,6 +684,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 10000 end end @@ -679,13 +699,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 @@ -704,13 +724,13 @@ end 0.87417841433288, 6.669726935171785, 3.4980245896465387, - 76.33557073534843, + 76.33557073534843 ], linf=[ 11.428353671462515, 142.73486852796972, 38.91639544578682, - 1651.7541392659086, + 1651.7541392659086 ], initial_refinement_level=2, tspan=(0.0, 0.05)) @@ -720,6 +740,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 10000 end end @@ -730,13 +754,13 @@ end 0.8887316108902574, 6.644244699117507, 3.449004719354504, - 76.27064751067829, + 76.27064751067829 ], linf=[ 11.047531144845593, 121.9664993888814, 35.74266955717666, - 1370.2362649787694, + 1370.2362649787694 ], initial_refinement_level=2, tspan=(0.0, 0.05)) @@ -746,6 +770,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 10000 end end @@ -757,13 +785,13 @@ end 1.2251169601680385, 1.1492245175358053, 1.6159494561956207, - 11.595399424356522, + 11.595399424356522 ], linf=[ 5.510615373248864, 6.031732951057033, 7.75523532462757, - 50.34978438323783, + 50.34978438323783 ], cells_per_dimension=(4, 6), tspan=(0.0, 0.5)) @@ -773,6 +801,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 10000 end end @@ -783,13 +815,13 @@ end 1.251060277251583, 1.113113246031922, 1.6514902305846646, - 11.691342485806103, + 11.691342485806103 ], linf=[ 5.893750268397502, 5.620631940554678, 9.523570698421638, - 50.004005679063496, + 50.004005679063496 ], cells_per_dimension=(4, 6), tspan=(0.0, 0.5)) @@ -799,6 +831,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 10000 end end @@ -810,13 +846,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) @@ -834,13 +870,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 @@ -859,13 +895,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 @@ -882,16 +918,16 @@ end @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_sedov_blast_wave_sc_subcell.jl"), l2=[ - 0.6337774834710513, - 0.30377119245852724, - 0.3111372568571772, - 1.2976221893997268, + 0.6403528328480915, + 0.3068073114438902, + 0.3140151910019577, + 1.2977732581465693 ], linf=[ - 2.2064877103138207, - 1.541067099687334, - 1.5487587769900337, - 6.271271639873466, + 2.239791987419344, + 1.5580885989144924, + 1.5392923786831547, + 6.2729281824590855 ], tspan=(0.0, 0.5)) # Ensure that we do not have excessive memory allocations @@ -900,6 +936,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 10000 end end @@ -912,16 +952,16 @@ end local_twosided_variables_cons=[], local_onesided_variables_nonlinear=[], l2=[ - 0.7869912572385168, - 0.39170886758882073, - 0.39613257454431977, - 1.2951760266455101, + 0.7979084213982606, + 0.3980284851419719, + 0.4021949448633982, + 1.2956482394747346 ], linf=[ - 5.156044534854053, - 3.6261667239538986, - 3.1807681416546085, - 6.3028422220287235, + 5.477809925838038, + 3.7793130706228273, + 3.2838862964081637, + 6.316943647948965 ], tspan=(0.0, 0.5)) # Ensure that we do not have excessive memory allocations @@ -930,6 +970,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 10000 end end @@ -939,11 +983,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)) @@ -964,13 +1008,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)) @@ -988,11 +1032,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) @@ -1012,11 +1056,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) @@ -1033,12 +1077,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) @@ -1055,11 +1099,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) @@ -1075,11 +1119,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) @@ -1103,6 +1147,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -1113,12 +1161,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 @@ -1184,13 +1232,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 @@ -1209,13 +1257,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 @@ -1261,7 +1309,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, @@ -1272,7 +1320,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,)) @@ -1284,7 +1332,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, @@ -1292,7 +1340,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 c1fcc355218..644995778df 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 @@ -332,13 +332,13 @@ end 0.10823279736983638, 0.1158152939803735, 0.11633970342992006, - 0.751152651902375, + 0.751152651902375 ], linf=[ 0.5581611332828653, 0.8354026029724041, 0.834485181423738, - 3.923553028014343, + 3.923553028014343 ], tspan=(0.0, 0.1), coverage_override=(maxiters = 6,)) diff --git a/test/test_t8code_3d.jl b/test/test_t8code_3d.jl index 940d2c43372..da7ea60c654 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 @@ -291,14 +291,14 @@ mkdir(outdir) 0.032062252638283974, 0.032062252638283974, 0.03206225263828395, - 0.12228177813586687, + 0.12228177813586687 ], linf=[ 0.0693648413632646, 0.0622101894740843, 0.06221018947408474, 0.062210189474084965, - 0.24196451799555962, + 0.24196451799555962 ], mesh=T8codeMesh((4, 4, 4), polydeg = 3, coordinates_min = (0.0, 0.0, 0.0), @@ -324,14 +324,14 @@ mkdir(outdir) 0.0176268986746271, 0.01817514447099777, 0.018271085903740675, - 0.15193033077438198, + 0.15193033077438198 ], linf=[ 0.2898958869606375, 0.529717119064458, 0.5567193302705906, 0.570663236219957, - 3.5496520808512027, + 3.5496520808512027 ], tspan=(0.0, 0.025), coverage_override=(maxiters = 6,)) diff --git a/test/test_threaded.jl b/test/test_threaded.jl index 7fb64d61cb4..760c5ca0d73 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_advection.jl b/test/test_tree_1d_advection.jl index 20586c4f3ba..115c5f3c69c 100644 --- a/test/test_tree_1d_advection.jl +++ b/test/test_tree_1d_advection.jl @@ -92,6 +92,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 8000 end end @@ -112,6 +116,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 8000 end end diff --git a/test/test_tree_1d_euler.jl b/test/test_tree_1d_euler.jl index dc523586f89..74908552521 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 @@ -423,13 +423,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 @@ -449,13 +449,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) @@ -473,13 +473,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_hypdiff.jl b/test/test_tree_1d_hypdiff.jl index 896a3d4c8d6..cd570c16708 100644 --- a/test/test_tree_1d_hypdiff.jl +++ b/test/test_tree_1d_hypdiff.jl @@ -37,6 +37,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 10000 end end 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 42a91e578e4..79fd3131489 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, @@ -124,12 +124,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 @@ -147,12 +147,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, @@ -172,12 +172,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_wintermeyer_etal), @@ -198,12 +198,12 @@ end l2=[ 0.0022667320585353927, 0.01571629729279524, - 4.4364917255842716e-5, + 4.4364917255842716e-5 ], linf=[ 0.008945234652224965, 0.059403165802872415, - 9.098379777405796e-5, + 9.098379777405796e-5 ], tspan=(0.0, 0.025)) # Ensure that we do not have excessive memory allocations @@ -222,12 +222,12 @@ end l2=[ 0.0022774071143995952, 0.01566214422689219, - 4.4364917255842716e-5, + 4.4364917255842716e-5 ], linf=[ 0.008451721489057373, 0.05720939055279217, - 9.098379777405796e-5, + 9.098379777405796e-5 ], surface_flux=(FluxHydrostaticReconstruction(FluxHLL(min_max_speed_naive), hydrostatic_reconstruction_audusse_etal), @@ -249,12 +249,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), @@ -275,12 +275,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), @@ -303,7 +303,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 @@ -323,13 +323,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 @@ -349,13 +349,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 @@ -375,13 +375,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_advection.jl b/test/test_tree_2d_advection.jl index b111651aa6f..f62239c7e93 100644 --- a/test/test_tree_2d_advection.jl +++ b/test/test_tree_2d_advection.jl @@ -163,6 +163,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -180,6 +184,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -197,6 +205,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -212,6 +224,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -228,6 +244,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -245,6 +265,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end diff --git a/test/test_tree_2d_euler.jl b/test/test_tree_2d_euler.jl index 40ee67bf27b..65448da0e3e 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) @@ -41,13 +41,13 @@ end 2.0633069593983843e-6, 1.9337331005472223e-6, 1.9337331005227536e-6, - 5.885362117543159e-6, + 5.885362117543159e-6 ], linf=[ 1.636984098429828e-5, 1.5579038690871627e-5, 1.557903868998345e-5, - 5.260532107742577e-5, + 5.260532107742577e-5 ]) # Ensure that we do not have excessive memory allocations # (e.g., from type instabilities) @@ -55,6 +55,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -65,13 +69,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) @@ -89,13 +93,13 @@ end 0.1289984161854359, 0.012899841618543363, 0.025799683237087086, - 0.003224960404636081, + 0.003224960404636081 ], linf=[ 0.9436588685021441, 0.0943658868502173, 0.1887317737004306, - 0.02359147170911058, + 0.02359147170911058 ]) # Ensure that we do not have excessive memory allocations # (e.g., from type instabilities) @@ -103,6 +107,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -113,13 +121,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 @@ -139,13 +147,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) @@ -163,13 +171,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) @@ -187,13 +195,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, @@ -214,13 +222,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, @@ -241,13 +249,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) @@ -266,13 +274,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) @@ -280,6 +288,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -298,13 +310,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) @@ -312,6 +324,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -322,13 +338,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 @@ -347,13 +363,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 @@ -374,13 +390,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,)) @@ -400,13 +416,13 @@ end 0.30783113348004093, 0.17597018114974242, 0.17594406844552404, - 0.6141151469952726, + 0.6141151469952726 ], linf=[ 1.297252661541156, 1.105840523330678, 1.1058680103852032, - 2.434846187265568, + 2.434846187265568 ], tspan=(0.0, 0.5), initial_refinement_level=4, @@ -417,6 +433,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -425,16 +445,16 @@ end @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_blast_wave_sc_subcell_nonperiodic.jl"), l2=[ - 0.3221177942225801, - 0.1798478357478982, - 0.1798364616438908, - 0.6136884131056267, + 0.3221078812528291, + 0.17985175694043076, + 0.17983453493705628, + 0.6136916718599121 ], linf=[ - 1.343766644801395, - 1.1749593109683463, - 1.1747613085307178, - 2.4216006041018785, + 1.343237509126809, + 1.1747101056222315, + 1.174585608472406, + 2.4216027326405487 ], tspan=(0.0, 0.5), initial_refinement_level=4, @@ -445,6 +465,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -455,13 +479,13 @@ end 0.32716628280821736, 0.17711362716405113, 0.17710881738119433, - 0.6192141753914343, + 0.6192141753914343 ], linf=[ 1.3147680231795071, 1.1313232952582144, 1.1308868661560831, - 2.4962119219206, + 2.4962119219206 ], tspan=(0.0, 0.5), initial_refinement_level=4, @@ -472,6 +496,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -482,13 +510,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,)) @@ -507,23 +535,24 @@ end @test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_euler_sedov_blast_wave_sc_subcell.jl"), l2=[ - 0.47651273561515994, - 0.16605194156429376, - 0.16605194156447747, - 0.6184646142923547, + 0.47655346892955674, + 0.16607711235359662, + 0.1660771123538105, + 0.6184647017781574 ], linf=[ - 2.559717182592356, - 1.3594817545576394, - 1.3594817545666105, - 6.451896959781657, + 2.5594865854274684, + 1.357936711037511, + 1.3579367110516134, + 6.451786248376557 ], tspan=(0.0, 1.0), initial_refinement_level=4, coverage_override=(maxiters = 6,), save_errors=true) lines = readlines(joinpath("out", "deviations.txt")) - @test lines[1] == "# iter, simu_time, rho_min, rho_max, entropy_guermond_etal_min" + @test lines[1] == + "# iter, simu_time, rho_min, rho_max, entropy_guermond_etal_min, pressure_min" cmd = string(Base.julia_cmd()) coverage = occursin("--code-coverage", cmd) && !occursin("--code-coverage=none", cmd) @@ -540,6 +569,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -551,13 +584,13 @@ end 0.4740321851943766, 0.15889871334104985, 0.15889871334104988, - 0.6190405536267991, + 0.6190405536267991 ], linf=[ 4.011954283668753, 1.8527131099524292, 1.8527131099524277, - 6.465833729130187, + 6.465833729130187 ], tspan=(0.0, 1.0), initial_refinement_level=4, @@ -582,6 +615,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -592,13 +629,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, @@ -621,13 +658,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,)) @@ -647,13 +684,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 @@ -672,13 +709,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 @@ -700,13 +737,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 @@ -726,13 +763,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 @@ -752,13 +789,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,)) @@ -780,13 +817,13 @@ end 0.055703165296633834, 0.032987233605927, 0.05224472051711956, - 0.08011565264331237, + 0.08011565264331237 ], linf=[ 0.24091018397460595, 0.1660190071332282, 0.12356154893467916, - 0.2695167937393226, + 0.2695167937393226 ], tspan=(0.0, 0.2), coverage_override=(maxiters = 3,), @@ -801,6 +838,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -812,13 +853,13 @@ end 0.055703165296633834, 0.032987233605927, 0.05224472051711956, - 0.08011565264331237, + 0.08011565264331237 ], linf=[ 0.24091018397460595, 0.1660190071332282, 0.12356154893467916, - 0.2695167937393226, + 0.2695167937393226 ], tspan=(0.0, 0.2), initial_refinement_level=5, @@ -829,6 +870,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -839,13 +884,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 @@ -864,13 +909,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,)) @@ -890,13 +935,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,)) @@ -916,13 +961,13 @@ end 0.4186473232186195, 341.42386623555944, 12.913743102619245, - 135260.31735534978, + 135260.31735534978 ], linf=[ 6.594617349637199, 5225.251243383396, 417.4788228266706, - 2.0263599311276933e6, + 2.0263599311276933e6 ], initial_refinement_level=5, tspan=(0.0, 1.0e-4), @@ -933,6 +978,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -943,13 +992,13 @@ end 0.4142490642847159, 339.10045752248817, 12.41716316125269, - 134277.32794840127, + 134277.32794840127 ], linf=[ 5.649893737038036, 4628.887032664001, 373.39317079274724, - 1.8133961097673306e6, + 1.8133961097673306e6 ], initial_refinement_level=5, tspan=(0.0, 1.0e-4), @@ -960,6 +1009,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -970,13 +1023,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) @@ -995,13 +1048,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) @@ -1019,13 +1072,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) @@ -1043,13 +1096,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) @@ -1068,13 +1121,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) @@ -1093,13 +1146,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))) @@ -1119,13 +1172,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, @@ -1146,13 +1199,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) @@ -1174,13 +1227,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) @@ -1200,13 +1253,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 95e2ae5313a..05d72c96126 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), @@ -91,6 +91,10 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem") t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -103,14 +107,14 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem") 1.9879932386864965, 59851.345150393994, 0.1871098818112499, - 0.010631432251136151, + 0.010631432251136151 ], linf=[ 212.71245739310544, 27.399221359958894, 158389.9681231281, 0.6524718882809865, - 0.10630137919864985, + 0.10630137919864985 ], initial_refinement_level=3, tspan=(0.0, 0.001)) @@ -120,6 +124,10 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem") t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -130,13 +138,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 +165,7 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem") 0.004087155041747821, 0.008174310083495642, 0.016348620166991283, - 0.032697240333982566, + 0.032697240333982566 ], linf=[ 0.2488251110766228, @@ -166,7 +174,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 +193,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 +219,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 +245,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..21a20ff2d4c 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) @@ -28,6 +28,10 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_2d_dgsem") t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -38,12 +42,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 +64,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 +86,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..ed6b7f6b527 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,15 +352,19 @@ 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 - # (e.g., from type instabilities) + # Ensure that we do not have excessive memory allocations + # (e.g., from type instabilities) let t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end diff --git a/test/test_tree_2d_shallowwater.jl b/test/test_tree_2d_shallowwater.jl index bcad663008c..97e586c719c 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_wintermeyer_etal), @@ -147,13 +147,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 @@ -173,13 +173,13 @@ end 0.0018596727473552813, 0.017306217777629147, 0.016367646997420396, - 6.274146767723934e-5, + 6.274146767723934e-5 ], linf=[ 0.016548007102923368, 0.08726160568822783, 0.09043621622245013, - 0.0001819675955490041, + 0.0001819675955490041 ], tspan=(0.0, 0.025)) # Ensure that we do not have excessive memory allocations @@ -198,13 +198,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, @@ -225,13 +225,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), @@ -252,13 +252,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_wintermeyer_etal), @@ -279,13 +279,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..6bf57e08c2d 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 @@ -31,6 +31,10 @@ EXAMPLES_DIR = pkgdir(Trixi, "examples", "tree_3d_dgsem") t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -41,13 +45,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 @@ -56,6 +60,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end @@ -66,13 +74,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) @@ -80,6 +88,10 @@ end t = sol.t[end] u_ode = sol.u[end] du_ode = similar(u_ode) + # Larger values for allowed allocations due to usage of custom + # integrator which are not *recorded* for the methods from + # OrdinaryDiffEq.jl + # Corresponding issue: https://github.com/trixi-framework/Trixi.jl/issues/1877 @test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 15000 end end 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 7d38dadf88b..fe765f1253e 100644 --- a/test/test_unit.jl +++ b/test/test_unit.jl @@ -1292,7 +1292,7 @@ end 0.5011914484393387, 0.8829127712445113, 0.43024132987932817, - 0.7560616633050348, + 0.7560616633050348 ] equations = CompressibleEulerEquations2D(1.4) @@ -1450,7 +1450,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 @@ -1475,7 +1475,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 @@ -1514,7 +1514,7 @@ end flux_central, flux_hindenlang_gassner, FluxHLL(min_max_speed_davis), - flux_hlle, + flux_hlle ] for f_std in fluxes @@ -1541,7 +1541,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 43b911cc665..43b18b48e72 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 @@ -330,13 +330,13 @@ end Float32(0.6107326269462766), Float32(0.48666631722018877), Float32(0.48309775159067053), - Float32(0.29467422718511704), + Float32(0.29467422718511704) ], linf=[ Float32(2.776782342826098), 3.2162943f0, # this needs to be adapted 3.6683278f0, # this needed to be adapted - Float32(2.052861364219655), + Float32(2.052861364219655) ], tspan=(0.0f0, 0.25f0), RealT=Float32) @@ -356,13 +356,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 @@ -381,13 +381,13 @@ end 1.2164292510839063, 1.2676379081600215e-12, 1.255855785593831e-12, - 1.2164292510839074, + 1.2164292510839074 ], linf=[ 1.5138512282315604, 1.658245722058109e-11, 1.8665562182185795e-11, - 1.5138512282315737, + 1.5138512282315737 ], surface_flux=(FluxHydrostaticReconstruction(flux_lax_friedrichs, hydrostatic_reconstruction_audusse_etal), @@ -409,13 +409,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_wintermeyer_etal), @@ -436,13 +436,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 @@ -461,13 +461,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), @@ -489,13 +489,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_wintermeyer_etal), @@ -516,13 +516,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), @@ -543,13 +543,13 @@ end 1.1577518608950964e-5, 4.761947272222427e-13, 4.546045873135486e-13, - 1.157751860893347e-5, + 1.157751860893347e-5 ], linf=[ 8.394063879002545e-5, 1.1211566736150389e-10, 1.0890426250906834e-10, - 8.394063879602065e-5, + 8.394063879602065e-5 ], tspan=(0.0, 2.0)) # Ensure that we do not have excessive memory allocations @@ -567,11 +567,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 @@ -591,13 +591,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 diff --git a/utils/trixi-format-file.jl b/utils/trixi-format-file.jl index 9b9a0e4949c..fabfcf21fde 100755 --- a/utils/trixi-format-file.jl +++ b/utils/trixi-format-file.jl @@ -2,7 +2,7 @@ using Pkg Pkg.activate(; temp = true, io = devnull) -Pkg.add(PackageSpec(name = "JuliaFormatter", version = "1.0.45"); preserve = PRESERVE_ALL, +Pkg.add(PackageSpec(name = "JuliaFormatter", version = "1.0.60"); preserve = PRESERVE_ALL, io = devnull) using JuliaFormatter: format_file diff --git a/utils/trixi-format.jl b/utils/trixi-format.jl index 63f14078807..59021c22c0d 100644 --- a/utils/trixi-format.jl +++ b/utils/trixi-format.jl @@ -2,7 +2,7 @@ using Pkg Pkg.activate(; temp = true, io = devnull) -Pkg.add(PackageSpec(name = "JuliaFormatter", version = "1.0.45"); preserve = PRESERVE_ALL, +Pkg.add(PackageSpec(name = "JuliaFormatter", version = "1.0.60"); preserve = PRESERVE_ALL, io = devnull) using JuliaFormatter: format