Path: blob/main/test/test_tree_2d_acoustics.jl
2055 views
module TestExamples2DAcousticPerturbation12using Test3using Trixi45include("test_trixi.jl")67EXAMPLES_DIR = joinpath(examples_dir(), "tree_2d_dgsem")89@testset "Acoustic Perturbation" begin10#! format: noindent1112@trixi_testset "elixir_acoustics_convergence.jl" begin13@test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_acoustics_convergence.jl"),14l2=[150.0019921138796370834,160.002090394698052287,170.0006091925854593805,180.0,190.0,200.0,210.022],23linf=[240.00769282588065634,250.008276649669227254,260.004196479023954813,270.0,280.0,290.0,300.031])32# Ensure that we do not have excessive memory allocations33# (e.g., from type instabilities)34let35t = sol.t[end]36u_ode = sol.u[end]37du_ode = similar(u_ode)38@test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 100039end40end4142@trixi_testset "elixir_acoustics_gauss.jl" begin43@test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_acoustics_gauss.jl"),44l2=[450.08005276517890283,460.08005276517890268,470.4187202920734123,480.0,490.0,500.0,510.052],53linf=[540.17261097190220992,550.17261097190220973,561.13601894068238,570.0,580.0,590.0,600.061])62# Ensure that we do not have excessive memory allocations63# (e.g., from type instabilities)64let65t = sol.t[end]66u_ode = sol.u[end]67du_ode = similar(u_ode)68@test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 100069end70end7172@trixi_testset "elixir_acoustics_gaussian_source.jl" begin73@test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_acoustics_gaussian_source.jl"),74l2=[750.004296394903650806,760.004241280404758938,770.006269684906035964,780.0,790.0,800.0,810.082],83linf=[840.03970270697049378,850.04151096349298151,860.0640019829058819,870.0,880.0,890.0,900.091])92# Ensure that we do not have excessive memory allocations93# (e.g., from type instabilities)94let95t = sol.t[end]96u_ode = sol.u[end]97du_ode = similar(u_ode)98@test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 100099end100end101102@trixi_testset "elixir_acoustics_gauss_wall.jl" begin103@test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_acoustics_gauss_wall.jl"),104l2=[0.019419398248465843, 0.019510701017551826,1050.04818246051887614,1067.382060834820337e-17, 0.0, 1.4764121669640674e-16,1071.4764121669640674e-16],108linf=[0.18193631937316496, 0.1877464607867628,1091.0355388011792845,1102.220446049250313e-16, 0.0, 4.440892098500626e-16,1114.440892098500626e-16])112# Ensure that we do not have excessive memory allocations113# (e.g., from type instabilities)114let115t = sol.t[end]116u_ode = sol.u[end]117du_ode = similar(u_ode)118@test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 1000119end120end121122@trixi_testset "elixir_acoustics_monopole.jl" begin123@test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_acoustics_monopole.jl"),124l2=[0.006816790293009947, 0.0065068948357351625,1250.008724512056168938,1260.0009894398191644543, 0.0, 7.144325530679576e-17,1277.144325530679576e-17],128linf=[1.000633375007386, 0.5599788929862504, 0.5738432957070382,1290.015590137026938428, 0.0, 2.220446049250313e-16,1302.220446049250313e-16],131maxiters=50)132# Ensure that we do not have excessive memory allocations133# (e.g., from type instabilities)134let135t = sol.t[end]136u_ode = sol.u[end]137du_ode = similar(u_ode)138@test (@allocated Trixi.rhs!(du_ode, u_ode, semi, t)) < 1000139end140end141end142143end # module144145146