Mercurial > repos > public > sbplib_julia
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 |
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 |