Mercurial > repos > public > sbplib_julia
annotate test/SbpOperators/volumeops/derivatives/dissipation_test.jl @ 1529:43aaf710463e refactor/equidistant_grid/signature
Change to signature of equidistant_grid to same style as many array methods.
See for example Array{T}(undef, dims...), zeros(T, dims...), fill(a, dims...) and more.
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 11 Apr 2024 22:31:04 +0200 |
parents | 760a4a1ec4b7 |
children | 8e28cadfefb3 |
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 """ |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
17 monomial(x,k) |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
18 |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
19 Evaluates ``x^k/k!` with the convetion that it is ``0`` for all ``k<0``. |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
20 Has the property that ``d/dx monomial(x,k) = monomial(x,k-1)`` |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
21 """ |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
22 function monomial(x,k) |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
23 if k < 0 |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
24 return zero(x) |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
25 end |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
26 x^k/factorial(k) |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
27 end |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
28 |
1291
356ec6a72974
Implement changes in SbpOperators
Jonatan Werpers <jonatan@werpers.com>
parents:
1285
diff
changeset
|
29 @testset "undivided_skewed04" begin |
1529
43aaf710463e
Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents:
1344
diff
changeset
|
30 g = equidistant_grid(0., 11., 20) |
1203
254934aac3f8
Change name and clarify docs
Jonatan Werpers <jonatan@werpers.com>
parents:
1087
diff
changeset
|
31 D,Dᵀ = undivided_skewed04(g, 1) |
1021
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
32 |
1213
0905c3c674e9
Remove unused where T
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1203
diff
changeset
|
33 @test D isa LazyTensor{Float64,1,1} |
0905c3c674e9
Remove unused where T
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1203
diff
changeset
|
34 @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
|
35 |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
36 @testset "Accuracy conditions" begin |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
37 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
|
38 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
|
39 h = only(spacing(g)) |
1021
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
40 @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
|
41 D,Dᵀ = undivided_skewed04(g, p) |
1021
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
42 |
1034
ed19c549c506
Implement undevided dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
1033
diff
changeset
|
43 @testset "x^$k" for k ∈ 0:p |
1291
356ec6a72974
Implement changes in SbpOperators
Jonatan Werpers <jonatan@werpers.com>
parents:
1285
diff
changeset
|
44 v = eval_on(g, x->monomial(x,k)) |
356ec6a72974
Implement changes in SbpOperators
Jonatan Werpers <jonatan@werpers.com>
parents:
1285
diff
changeset
|
45 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
|
46 |
1034
ed19c549c506
Implement undevided dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
1033
diff
changeset
|
47 @test D*v == h^p * vₚₓ |
1021
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
48 end |
1035
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
49 end |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
50 end |
1021
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
51 |
1087
423a6442efc3
REVIEW: Address documentation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1069
diff
changeset
|
52 @testset "transpose equality" begin |
1035
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
53 function get_matrix(D) |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
54 N = only(range_size(D)) |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
55 M = only(domain_size(D)) |
1034
ed19c549c506
Implement undevided dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
1033
diff
changeset
|
56 |
1035
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
57 Dmat = zeros(N,M) |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
58 e = zeros(M) |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
59 for i ∈ 1:M |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
60 if i > 1 |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
61 e[i-1] = 0. |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
62 end |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
63 e[i] = 1. |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
64 Dmat[:,i] = D*e |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
65 end |
1034
ed19c549c506
Implement undevided dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
1033
diff
changeset
|
66 |
1035
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
67 return Dmat |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
68 end |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
69 |
1529
43aaf710463e
Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents:
1344
diff
changeset
|
70 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
|
71 @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
|
72 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
|
73 |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
74 D̄ = get_matrix(D) |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
75 D̄ᵀ = get_matrix(Dᵀ) |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
76 |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
77 @test D̄ == D̄ᵀ' |
1021
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
78 end |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
79 end |
1344
760a4a1ec4b7
Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents:
1291
diff
changeset
|
80 |
760a4a1ec4b7
Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents:
1291
diff
changeset
|
81 @testset "2D" begin |
760a4a1ec4b7
Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents:
1291
diff
changeset
|
82 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
|
83 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
|
84 h = spacing.(g.grids) |
760a4a1ec4b7
Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents:
1291
diff
changeset
|
85 |
760a4a1ec4b7
Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents:
1291
diff
changeset
|
86 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
|
87 |
760a4a1ec4b7
Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents:
1291
diff
changeset
|
88 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
|
89 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
|
90 |
760a4a1ec4b7
Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents:
1291
diff
changeset
|
91 @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
|
92 end |
1021
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
93 end |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
94 |
1020
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
95 @testset "dissipation_interior_weights" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
96 @test dissipation_interior_weights(1) == (-1, 1) |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
97 @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
|
98 @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
|
99 @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
|
100 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
101 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
102 @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
|
103 @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
|
104 @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
|
105 @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
|
106 @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
|
107 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
108 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
109 @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
|
110 @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
|
111 @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
|
112 @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
|
113 @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
|
114 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
115 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
116 @testset "midpoint" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
117 @test midpoint((1,1)) == 2 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
118 @test midpoint((1,1,1)) == 2 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
119 @test midpoint((1,1,1,1)) == 3 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
120 @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
|
121 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
122 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
123 @testset "midpoint_transpose" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
124 @test midpoint_transpose((1,1)) == 1 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
125 @test midpoint_transpose((1,1,1)) == 2 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
126 @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
|
127 @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
|
128 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
129 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
130 @testset "dissipation_lower_closure_size" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
131 @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
|
132 @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
|
133 @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
|
134 @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
|
135 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
136 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
137 @testset "dissipation_upper_closure_size" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
138 @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
|
139 @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
|
140 @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
|
141 @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
|
142 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
143 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
144 @testset "dissipation_lower_closure_stencils" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
145 cases = ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
146 (-1,1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
147 Stencil(-1, 1, center=1), |
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 (1,-2,1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
150 Stencil( 1,-2, 1, center=1), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
151 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
152 (-1,3,-3,1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
153 Stencil(-1,3,-3,1, center=1), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
154 Stencil(-1,3,-3,1, center=2), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
155 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
156 (1, -4, 6, -4, 1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
157 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
|
158 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
|
159 ) |
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 @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
|
162 @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
|
163 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
164 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
165 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
166 @testset "dissipation_upper_closure_stencils" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
167 cases = ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
168 (-1,1) => (), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
169 (1,-2,1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
170 Stencil( 1,-2, 1, center=3), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
171 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
172 (-1,3,-3,1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
173 Stencil(-1,3,-3,1, center=4), |
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 (1, -4, 6, -4, 1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
176 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
|
177 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
|
178 ) |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
179 ) |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
180 @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
|
181 @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
|
182 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
183 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
184 |
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 @testset "dissipation_transpose_lower_closure_stencils" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
187 cases = ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
188 (-1,1) => ( |
1033
0cb4c6b15d8e
Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents:
1029
diff
changeset
|
189 Stencil(-1,-1, 0, center=1), |
1020
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
190 Stencil( 1, 1,-1, center=2), |
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 (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
|
193 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
|
194 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
|
195 Stencil( 1, 1,-2, 1, center=3), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
196 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
197 (-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
|
198 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
|
199 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
|
200 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
|
201 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
|
202 ), |
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 @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
|
205 @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
|
206 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
207 end |
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 @testset "dissipation_transpose_upper_closure_stencils" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
210 cases = ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
211 (-1,1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
212 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
|
213 Stencil( 0, 1, center = 2), |
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 (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
|
216 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
|
217 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
|
218 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
|
219 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
220 (-1,3,-3,1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
221 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
|
222 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
|
223 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
|
224 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
|
225 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
226 ) |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
227 @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
|
228 @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
|
229 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
230 end |