comparison test/SbpOperators/volumeops/derivatives/dissipation_test.jl @ 1365:4684c7f1c4cb feature/variable_derivatives

Merge with default
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Sun, 21 May 2023 21:55:14 +0200
parents 760a4a1ec4b7
children 43aaf710463e
comparison
equal deleted inserted replaced
1358:e7861cfb6ede 1365:4684c7f1c4cb
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)