comparison test/SbpOperators/volumeops/derivatives/first_derivative_test.jl @ 1080:f9505fbde30c

Merge feature/first_derivative
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 08 Apr 2022 19:35:12 +0200
parents d12ab8120d29
children 157a78959e5d
comparison
equal deleted inserted replaced
1075:03f65ef8adb9 1080:f9505fbde30c
69 end 69 end
70 end 70 end
71 end 71 end
72 72
73 @testset "Accuracy on function" begin 73 @testset "Accuracy on function" begin
74 # 1D
74 g = EquidistantGrid(30, 0.,1.) 75 g = EquidistantGrid(30, 0.,1.)
75 v = evalOn(g, x->exp(x)) 76 v = evalOn(g, x->exp(x))
76 @testset for (order, tol) ∈ [(2, 6e-3),(4, 2e-4)] 77 @testset for (order, tol) ∈ [(2, 6e-3),(4, 2e-4)]
77 stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order) 78 stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order)
78 D₁ = first_derivative(g, stencil_set, 1) 79 D₁ = first_derivative(g, stencil_set, 1)
79 80
80 @test D₁*v ≈ v rtol=tol 81 @test D₁*v ≈ v rtol=tol
81 end 82 end
83
84 # 2D
85 g = EquidistantGrid((30,60), (0.,0.),(1.,2.))
86 v = evalOn(g, (x,y)->exp(0.8x+1.2*y))
87 @testset for (order, tol) ∈ [(2, 6e-3),(4, 3e-4)]
88 stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order)
89 Dx = first_derivative(g, stencil_set, 1)
90 Dy = first_derivative(g, stencil_set, 2)
91
92 @test Dx*v ≈ 0.8v rtol=tol
93 @test Dy*v ≈ 1.2v rtol=tol
94 end
82 end 95 end
83 end 96 end
84 97