comparison test/SbpOperators/volumeops/derivatives/dissipation_test.jl @ 1351:d7f29359b822

Merge refactor/grids
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Fri, 19 May 2023 23:53:36 +0200
parents 760a4a1ec4b7
children 43aaf710463e
comparison
equal deleted inserted replaced
1323:95cac1ee8476 1351:d7f29359b822
25 end 25 end
26 x^k/factorial(k) 26 x^k/factorial(k)
27 end 27 end
28 28
29 @testset "undivided_skewed04" begin 29 @testset "undivided_skewed04" begin
30 g = EquidistantGrid(20, 0., 11.) 30 g = equidistant_grid(20, 0., 11.)
31 D,Dᵀ = undivided_skewed04(g, 1) 31 D,Dᵀ = undivided_skewed04(g, 1)
32 32
33 @test D isa LazyTensor{Float64,1,1} 33 @test D isa LazyTensor{Float64,1,1}
34 @test Dᵀ isa LazyTensor{Float64,1,1} 34 @test Dᵀ isa LazyTensor{Float64,1,1}
35 35
36 @testset "Accuracy conditions" begin 36 @testset "Accuracy conditions" begin
37 N = 20 37 N = 20
38 g = EquidistantGrid(N, 0//1,2//1) 38 g = equidistant_grid(N, 0//1,2//1)
39 h = only(spacing(g)) 39 h = only(spacing(g))
40 @testset "D_$p" for p ∈ [1,2,3,4] 40 @testset "D_$p" for p ∈ [1,2,3,4]
41 D,Dᵀ = undivided_skewed04(g, p) 41 D,Dᵀ = undivided_skewed04(g, p)
42 42
43 @testset "x^$k" for k ∈ 0:p 43 @testset "x^$k" for k ∈ 0:p
44 v = evalOn(g, x->monomial(x,k)) 44 v = eval_on(g, x->monomial(x,k))
45 vₚₓ = evalOn(g, x->monomial(x,k-p)) 45 vₚₓ = eval_on(g, x->monomial(x,k-p))
46 46
47 @test D*v == h^p * vₚₓ 47 @test D*v == h^p * vₚₓ
48 end 48 end
49 end 49 end
50 end 50 end
65 end 65 end
66 66
67 return Dmat 67 return Dmat
68 end 68 end
69 69
70 g = EquidistantGrid(11, 0., 1.) 70 g = equidistant_grid(11, 0., 1.)
71 @testset "D_$p" for p ∈ [1,2,3,4] 71 @testset "D_$p" for p ∈ [1,2,3,4]
72 D,Dᵀ = undivided_skewed04(g, p) 72 D,Dᵀ = undivided_skewed04(g, p)
73 73
74 D̄ = get_matrix(D) 74 D̄ = get_matrix(D)
75 D̄ᵀ = get_matrix(Dᵀ) 75 D̄ᵀ = get_matrix(Dᵀ)
76 76
77 @test D̄ == D̄ᵀ' 77 @test D̄ == D̄ᵀ'
78 end 78 end
79 end
80
81 @testset "2D" begin
82 N = 20
83 g = equidistant_grid((N,2N), (0,0), (2,1))
84 h = spacing.(g.grids)
85
86 D,Dᵀ = undivided_skewed04(g, 3, 2)
87
88 v = eval_on(g, x->monomial(x[1],4)*monomial(x[2],3))
89 d³vdy³ = eval_on(g, x->monomial(x[1],4)*monomial(x[2],0))
90
91 @test D*v ≈ h[2]^3*d³vdy³
79 end 92 end
80 end 93 end
81 94
82 @testset "dissipation_interior_weights" begin 95 @testset "dissipation_interior_weights" begin
83 @test dissipation_interior_weights(1) == (-1, 1) 96 @test dissipation_interior_weights(1) == (-1, 1)