Mercurial > repos > public > sbplib_julia
annotate test/SbpOperators/volumeops/derivatives/dissipation_test.jl @ 1203:254934aac3f8 feature/dissipation_operators
Change name and clarify docs
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 03 Feb 2023 10:05:52 +0100 |
parents | 423a6442efc3 |
children | 0905c3c674e9 |
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 |
1203
254934aac3f8
Change name and clarify docs
Jonatan Werpers <jonatan@werpers.com>
parents:
1087
diff
changeset
|
29 @testset "undivided_skewed04" begin |
1021
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
30 g = EquidistantGrid(20, 0., 11.) |
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 |
1034
ed19c549c506
Implement undevided dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
1033
diff
changeset
|
33 @test D isa LazyTensor{Float64,1,1} where T |
ed19c549c506
Implement undevided dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
1033
diff
changeset
|
34 @test Dᵀ isa LazyTensor{Float64,1,1} where T |
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 |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
38 g = EquidistantGrid(N, 0//1,2//1) |
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 |
ed19c549c506
Implement undevided dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
1033
diff
changeset
|
44 v = evalOn(g, x->monomial(x,k)) |
ed19c549c506
Implement undevided dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
1033
diff
changeset
|
45 vₚₓ = evalOn(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 |
ceda69b8f27a
Add test for transpose equality and fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents:
1034
diff
changeset
|
70 g = EquidistantGrid(11, 0., 1.) |
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 |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
80 end |
ee5a641a8277
Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents:
1020
diff
changeset
|
81 |
1020
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
82 @testset "dissipation_interior_weights" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
83 @test dissipation_interior_weights(1) == (-1, 1) |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
84 @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
|
85 @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
|
86 @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
|
87 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
88 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
89 @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
|
90 @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
|
91 @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
|
92 @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
|
93 @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
|
94 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
95 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
96 @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
|
97 @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
|
98 @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
|
99 @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
|
100 @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
|
101 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
102 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
103 @testset "midpoint" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
104 @test midpoint((1,1)) == 2 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
105 @test midpoint((1,1,1)) == 2 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
106 @test midpoint((1,1,1,1)) == 3 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
107 @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
|
108 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
109 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
110 @testset "midpoint_transpose" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
111 @test midpoint_transpose((1,1)) == 1 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
112 @test midpoint_transpose((1,1,1)) == 2 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
113 @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
|
114 @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
|
115 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
116 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
117 @testset "dissipation_lower_closure_size" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
118 @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
|
119 @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
|
120 @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
|
121 @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
|
122 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
123 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
124 @testset "dissipation_upper_closure_size" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
125 @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
|
126 @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
|
127 @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
|
128 @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
|
129 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
130 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
131 @testset "dissipation_lower_closure_stencils" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
132 cases = ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
133 (-1,1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
134 Stencil(-1, 1, center=1), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
135 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
136 (1,-2,1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
137 Stencil( 1,-2, 1, center=1), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
138 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
139 (-1,3,-3,1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
140 Stencil(-1,3,-3,1, center=1), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
141 Stencil(-1,3,-3,1, center=2), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
142 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
143 (1, -4, 6, -4, 1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
144 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
|
145 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
|
146 ) |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
147 ) |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
148 @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
|
149 @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
|
150 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
151 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
152 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
153 @testset "dissipation_upper_closure_stencils" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
154 cases = ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
155 (-1,1) => (), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
156 (1,-2,1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
157 Stencil( 1,-2, 1, center=3), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
158 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
159 (-1,3,-3,1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
160 Stencil(-1,3,-3,1, center=4), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
161 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
162 (1, -4, 6, -4, 1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
163 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
|
164 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
|
165 ) |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
166 ) |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
167 @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
|
168 @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
|
169 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
170 end |
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 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
173 @testset "dissipation_transpose_lower_closure_stencils" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
174 cases = ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
175 (-1,1) => ( |
1033
0cb4c6b15d8e
Make closures have the same number of weights in all stencils
Jonatan Werpers <jonatan@werpers.com>
parents:
1029
diff
changeset
|
176 Stencil(-1,-1, 0, center=1), |
1020
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
177 Stencil( 1, 1,-1, center=2), |
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 (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
|
180 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
|
181 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
|
182 Stencil( 1, 1,-2, 1, center=3), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
183 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
184 (-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
|
185 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
|
186 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
|
187 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
|
188 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
|
189 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
190 ) |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
191 @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
|
192 @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
|
193 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
194 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
195 |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
196 @testset "dissipation_transpose_upper_closure_stencils" begin |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
197 cases = ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
198 (-1,1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
199 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
|
200 Stencil( 0, 1, center = 2), |
1020
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
201 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
202 (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
|
203 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
|
204 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
|
205 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
|
206 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
207 (-1,3,-3,1) => ( |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
208 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
|
209 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
|
210 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
|
211 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
|
212 ), |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
213 ) |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
214 @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
|
215 @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
|
216 end |
3f5137ce3aa1
Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
217 end |