annotate test/SbpOperators/volumeops/derivatives/dissipation_test.jl @ 1640:8e28cadfefb3 bugfix/warnings

Move `monomial` in tests into a local scope to avoid overwriting warnings
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 25 Jun 2024 20:44:06 +0200
parents 43aaf710463e
children 471a948cd2b2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1020
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 using Test
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 using Sbplib.SbpOperators
1021
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
4 using Sbplib.Grids
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
5 using Sbplib.LazyTensors
1020
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 using Sbplib.SbpOperators: Stencil
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 using Sbplib.SbpOperators: dissipation_interior_weights
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 using Sbplib.SbpOperators: dissipation_interior_stencil, dissipation_transpose_interior_stencil
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 using Sbplib.SbpOperators: midpoint, midpoint_transpose
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 using Sbplib.SbpOperators: dissipation_lower_closure_size, dissipation_upper_closure_size
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 using Sbplib.SbpOperators: dissipation_lower_closure_stencils,dissipation_upper_closure_stencils
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 using Sbplib.SbpOperators: dissipation_transpose_lower_closure_stencils, dissipation_transpose_upper_closure_stencils
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15
1021
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
16
1291
356ec6a72974 Implement changes in SbpOperators
Jonatan Werpers <jonatan@werpers.com>
parents: 1285
diff changeset
17 @testset "undivided_skewed04" begin
1640
8e28cadfefb3 Move `monomial` in tests into a local scope to avoid overwriting warnings
Jonatan Werpers <jonatan@werpers.com>
parents: 1529
diff changeset
18 monomial(x,k) = k < 0 ? zero(x) : x^k/factorial(k)
1529
43aaf710463e Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents: 1344
diff changeset
19 g = equidistant_grid(0., 11., 20)
1203
254934aac3f8 Change name and clarify docs
Jonatan Werpers <jonatan@werpers.com>
parents: 1087
diff changeset
20 D,Dᵀ = undivided_skewed04(g, 1)
1021
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
21
1213
0905c3c674e9 Remove unused where T
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1203
diff changeset
22 @test D isa LazyTensor{Float64,1,1}
0905c3c674e9 Remove unused where T
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1203
diff changeset
23 @test Dᵀ isa LazyTensor{Float64,1,1}
1021
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
24
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
25 @testset "Accuracy conditions" begin
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
26 N = 20
1529
43aaf710463e Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents: 1344
diff changeset
27 g = equidistant_grid(0//1, 2//1, N)
1035
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
28 h = only(spacing(g))
1021
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
29 @testset "D_$p" for p ∈ [1,2,3,4]
1203
254934aac3f8 Change name and clarify docs
Jonatan Werpers <jonatan@werpers.com>
parents: 1087
diff changeset
30 D,Dᵀ = undivided_skewed04(g, p)
1021
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
31
1034
ed19c549c506 Implement undevided dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents: 1033
diff changeset
32 @testset "x^$k" for k ∈ 0:p
1291
356ec6a72974 Implement changes in SbpOperators
Jonatan Werpers <jonatan@werpers.com>
parents: 1285
diff changeset
33 v = eval_on(g, x->monomial(x,k))
356ec6a72974 Implement changes in SbpOperators
Jonatan Werpers <jonatan@werpers.com>
parents: 1285
diff changeset
34 vₚₓ = eval_on(g, x->monomial(x,k-p))
1021
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
35
1034
ed19c549c506 Implement undevided dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents: 1033
diff changeset
36 @test D*v == h^p * vₚₓ
1021
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
37 end
1035
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
38 end
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
39 end
1021
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
40
1087
423a6442efc3 REVIEW: Address documentation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1069
diff changeset
41 @testset "transpose equality" begin
1035
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
42 function get_matrix(D)
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
43 N = only(range_size(D))
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
44 M = only(domain_size(D))
1034
ed19c549c506 Implement undevided dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents: 1033
diff changeset
45
1035
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
46 Dmat = zeros(N,M)
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
47 e = zeros(M)
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
48 for i ∈ 1:M
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
49 if i > 1
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
50 e[i-1] = 0.
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
51 end
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
52 e[i] = 1.
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
53 Dmat[:,i] = D*e
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
54 end
1034
ed19c549c506 Implement undevided dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents: 1033
diff changeset
55
1035
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
56 return Dmat
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
57 end
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
58
1529
43aaf710463e Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents: 1344
diff changeset
59 g = equidistant_grid(0., 1., 11)
1035
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
60 @testset "D_$p" for p ∈ [1,2,3,4]
1203
254934aac3f8 Change name and clarify docs
Jonatan Werpers <jonatan@werpers.com>
parents: 1087
diff changeset
61 D,Dᵀ = undivided_skewed04(g, p)
1035
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
62
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
63 D̄ = get_matrix(D)
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
64 D̄ᵀ = get_matrix(Dᵀ)
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
65
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
66 @test D̄ == D̄ᵀ'
1021
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
67 end
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
68 end
1344
760a4a1ec4b7 Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents: 1291
diff changeset
69
760a4a1ec4b7 Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents: 1291
diff changeset
70 @testset "2D" begin
760a4a1ec4b7 Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents: 1291
diff changeset
71 N = 20
1529
43aaf710463e Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents: 1344
diff changeset
72 g = equidistant_grid((0,0), (2,1), N, 2N)
1344
760a4a1ec4b7 Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents: 1291
diff changeset
73 h = spacing.(g.grids)
760a4a1ec4b7 Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents: 1291
diff changeset
74
760a4a1ec4b7 Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents: 1291
diff changeset
75 D,Dᵀ = undivided_skewed04(g, 3, 2)
760a4a1ec4b7 Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents: 1291
diff changeset
76
760a4a1ec4b7 Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents: 1291
diff changeset
77 v = eval_on(g, x->monomial(x[1],4)*monomial(x[2],3))
760a4a1ec4b7 Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents: 1291
diff changeset
78 d³vdy³ = eval_on(g, x->monomial(x[1],4)*monomial(x[2],0))
760a4a1ec4b7 Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents: 1291
diff changeset
79
760a4a1ec4b7 Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents: 1291
diff changeset
80 @test D*v ≈ h[2]^3*d³vdy³
760a4a1ec4b7 Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents: 1291
diff changeset
81 end
1021
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
82 end
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
83
1020
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
84 @testset "dissipation_interior_weights" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
85 @test dissipation_interior_weights(1) == (-1, 1)
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
86 @test dissipation_interior_weights(2) == (1,-2, 1)
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
87 @test dissipation_interior_weights(3) == (-1, 3,-3, 1)
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
88 @test dissipation_interior_weights(4) == (1, -4, 6, -4, 1)
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
89 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
90
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
91 @testset "dissipation_interior_stencil" begin
1035
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
92 @test dissipation_interior_stencil(dissipation_interior_weights(1)) == Stencil(-1, 1, center=2)
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
93 @test dissipation_interior_stencil(dissipation_interior_weights(2)) == Stencil( 1,-2, 1, center=2)
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
94 @test dissipation_interior_stencil(dissipation_interior_weights(3)) == Stencil(-1, 3,-3, 1, center=3)
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
95 @test dissipation_interior_stencil(dissipation_interior_weights(4)) == Stencil( 1,-4, 6,-4, 1, center=3)
1020
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
96 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
97
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
98 @testset "dissipation_transpose_interior_stencil" begin
1035
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
99 @test dissipation_transpose_interior_stencil(dissipation_interior_weights(1)) == Stencil(1,-1, center=1)
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
100 @test dissipation_transpose_interior_stencil(dissipation_interior_weights(2)) == Stencil(1,-2, 1, center=2)
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
101 @test dissipation_transpose_interior_stencil(dissipation_interior_weights(3)) == Stencil(1,-3, 3,-1, center=2)
ceda69b8f27a Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 1034
diff changeset
102 @test dissipation_transpose_interior_stencil(dissipation_interior_weights(4)) == Stencil(1,-4, 6,-4, 1, center=3)
1020
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
103 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
104
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
105 @testset "midpoint" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
106 @test midpoint((1,1)) == 2
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
107 @test midpoint((1,1,1)) == 2
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
108 @test midpoint((1,1,1,1)) == 3
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
109 @test midpoint((1,1,1,1,1)) == 3
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
110 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
111
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
112 @testset "midpoint_transpose" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
113 @test midpoint_transpose((1,1)) == 1
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
114 @test midpoint_transpose((1,1,1)) == 2
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
115 @test midpoint_transpose((1,1,1,1)) == 2
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
116 @test midpoint_transpose((1,1,1,1,1)) == 3
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
117 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
118
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
119 @testset "dissipation_lower_closure_size" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
120 @test dissipation_lower_closure_size((1,1)) == 1
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
121 @test dissipation_lower_closure_size((1,1,1)) == 1
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
122 @test dissipation_lower_closure_size((1,1,1,1)) == 2
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
123 @test dissipation_lower_closure_size((1,1,1,1,1)) == 2
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
124 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
125
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
126 @testset "dissipation_upper_closure_size" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
127 @test dissipation_upper_closure_size((1,1)) == 0
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
128 @test dissipation_upper_closure_size((1,1,1)) == 1
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
129 @test dissipation_upper_closure_size((1,1,1,1)) == 1
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
130 @test dissipation_upper_closure_size((1,1,1,1,1)) == 2
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
131 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
132
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
133 @testset "dissipation_lower_closure_stencils" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
134 cases = (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
135 (-1,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
136 Stencil(-1, 1, center=1),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
137 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
138 (1,-2,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
139 Stencil( 1,-2, 1, center=1),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
140 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
141 (-1,3,-3,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
142 Stencil(-1,3,-3,1, center=1),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
143 Stencil(-1,3,-3,1, center=2),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
144 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
145 (1, -4, 6, -4, 1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
146 Stencil(1, -4, 6, -4, 1, center=1),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
147 Stencil(1, -4, 6, -4, 1, center=2),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
148 )
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
149 )
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
150 @testset "interior_weights = $w" for (w, closure_stencils) ∈ cases
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
151 @test dissipation_lower_closure_stencils(w) == closure_stencils
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
152 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
153 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
154
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
155 @testset "dissipation_upper_closure_stencils" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
156 cases = (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
157 (-1,1) => (),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
158 (1,-2,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
159 Stencil( 1,-2, 1, center=3),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
160 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
161 (-1,3,-3,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
162 Stencil(-1,3,-3,1, center=4),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
163 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
164 (1, -4, 6, -4, 1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
165 Stencil(1, -4, 6, -4, 1, center=4),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
166 Stencil(1, -4, 6, -4, 1, center=5),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
167 )
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
168 )
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
169 @testset "interior_weights = $w" for (w, closure_stencils) ∈ cases
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
170 @test dissipation_upper_closure_stencils(w) == closure_stencils
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
171 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
172 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
173
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
174
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
175 @testset "dissipation_transpose_lower_closure_stencils" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
176 cases = (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
177 (-1,1) => (
1033
0cb4c6b15d8e Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents: 1029
diff changeset
178 Stencil(-1,-1, 0, center=1),
1020
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
179 Stencil( 1, 1,-1, center=2),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
180 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
181 (1,-2,1) => (
1033
0cb4c6b15d8e Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents: 1029
diff changeset
182 Stencil( 1, 1, 0, 0, center=1),
0cb4c6b15d8e Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents: 1029
diff changeset
183 Stencil(-2,-2, 1, 0, center=2),
1020
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
184 Stencil( 1, 1,-2, 1, center=3),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
185 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
186 (-1,3,-3,1) => (
1033
0cb4c6b15d8e Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents: 1029
diff changeset
187 Stencil(-1,-1,-1, 0, 0, 0, center=1),
0cb4c6b15d8e Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents: 1029
diff changeset
188 Stencil( 3, 3, 3,-1, 0, 0, center=2),
0cb4c6b15d8e Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents: 1029
diff changeset
189 Stencil(-3,-3,-3, 3,-1, 0, center=3),
1020
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
190 Stencil( 1, 1, 1,-3, 3,-1, center=4),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
191 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
192 )
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
193 @testset "interior_weights = $w" for (w, closure_stencils) ∈ cases
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
194 @test dissipation_transpose_lower_closure_stencils(w) == closure_stencils
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
195 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
196 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
197
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
198 @testset "dissipation_transpose_upper_closure_stencils" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
199 cases = (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
200 (-1,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
201 Stencil( 1,-1, center = 1),
1033
0cb4c6b15d8e Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents: 1029
diff changeset
202 Stencil( 0, 1, center = 2),
1020
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
203 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
204 (1,-2,1) => (
1033
0cb4c6b15d8e Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents: 1029
diff changeset
205 Stencil( 1,-2, 1, 1, center=2),
0cb4c6b15d8e Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents: 1029
diff changeset
206 Stencil( 0, 1,-2,-2, center=3),
0cb4c6b15d8e Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents: 1029
diff changeset
207 Stencil( 0, 0, 1, 1, center=4),
1020
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
208 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
209 (-1,3,-3,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
210 Stencil( 1,-3, 3,-1,-1, center=2),
1033
0cb4c6b15d8e Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents: 1029
diff changeset
211 Stencil( 0, 1,-3, 3, 3, center=3),
0cb4c6b15d8e Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents: 1029
diff changeset
212 Stencil( 0, 0, 1,-3,-3, center=4),
0cb4c6b15d8e Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents: 1029
diff changeset
213 Stencil( 0, 0, 0, 1, 1, center=5),
1020
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
214 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
215 )
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
216 @testset "interior_weights = $w" for (w, closure_stencils) ∈ cases
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
217 @test dissipation_transpose_upper_closure_stencils(w) == closure_stencils
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
218 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
219 end