annotate test/SbpOperators/volumeops/derivatives/dissipation_test.jl @ 1029:129262c8e897 feature/dissipation_operators

Change signatures for interior stencil methods
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 22 Mar 2022 09:26:05 +0100
parents d44cb983cfa4
children 0cb4c6b15d8e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1020
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 using Test
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 using Sbplib.SbpOperators
1021
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
4 using Sbplib.Grids
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
5 using Sbplib.LazyTensors
1020
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 using Sbplib.SbpOperators: Stencil
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 using Sbplib.SbpOperators: dissipation_interior_weights
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 using Sbplib.SbpOperators: dissipation_interior_stencil, dissipation_transpose_interior_stencil
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 using Sbplib.SbpOperators: midpoint, midpoint_transpose
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 using Sbplib.SbpOperators: dissipation_lower_closure_size, dissipation_upper_closure_size
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 using Sbplib.SbpOperators: dissipation_lower_closure_stencils,dissipation_upper_closure_stencils
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 using Sbplib.SbpOperators: dissipation_transpose_lower_closure_stencils, dissipation_transpose_upper_closure_stencils
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15
1021
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
16 """
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
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
29 @testset "dissipation" begin
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
30 g = EquidistantGrid(20, 0., 11.)
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
31 D,Dᵀ = dissipation(g, 1)
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
32
1027
d44cb983cfa4 Add tests for StencilOperatorDistinctClosures
Jonatan Werpers <jonatan@werpers.com>
parents: 1025
diff changeset
33 @test_broken D isa LazyTensor{Float64,1,1} where T
d44cb983cfa4 Add tests for StencilOperatorDistinctClosures
Jonatan Werpers <jonatan@werpers.com>
parents: 1025
diff changeset
34 @test_broken 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)
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
39 @testset "D_$p" for p ∈ [1,2,3,4]
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
40 D,Dᵀ = dissipation(g, p)
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
41
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
42 @testset "x^$k" for k ∈ 0:1
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
43 v = evalOn(g, x->monomial(x,k))
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
44
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
45 x, = points(g)[10]
1027
d44cb983cfa4 Add tests for StencilOperatorDistinctClosures
Jonatan Werpers <jonatan@werpers.com>
parents: 1025
diff changeset
46 @test_broken (D*v)[10] == monomial(x,k-1)
1021
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
47 end
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
48
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
49 # Test Dᵀ works backwards and interior forwards
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
50 end
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
51 end
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
52 end
ee5a641a8277 Add some tests and start implementing dissipation()
Jonatan Werpers <jonatan@werpers.com>
parents: 1020
diff changeset
53
1020
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 @testset "dissipation_interior_weights" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55 @test dissipation_interior_weights(1) == (-1, 1)
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 @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
57 @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
58 @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
59 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61 @testset "dissipation_interior_stencil" begin
1029
129262c8e897 Change signatures for interior stencil methods
Jonatan Werpers <jonatan@werpers.com>
parents: 1027
diff changeset
62 @test dissipation_interior_stencil(dissipation_interior_weights(1)) == Stencil(-1,1, center=2)
129262c8e897 Change signatures for interior stencil methods
Jonatan Werpers <jonatan@werpers.com>
parents: 1027
diff changeset
63 @test dissipation_interior_stencil(dissipation_interior_weights(2)) == Stencil(1,-2,1, center=2)
129262c8e897 Change signatures for interior stencil methods
Jonatan Werpers <jonatan@werpers.com>
parents: 1027
diff changeset
64 @test dissipation_interior_stencil(dissipation_interior_weights(3)) == Stencil(-1,3,-3,1, center=3)
129262c8e897 Change signatures for interior stencil methods
Jonatan Werpers <jonatan@werpers.com>
parents: 1027
diff changeset
65 @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
66 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68 @testset "dissipation_transpose_interior_stencil" begin
1029
129262c8e897 Change signatures for interior stencil methods
Jonatan Werpers <jonatan@werpers.com>
parents: 1027
diff changeset
69 @test dissipation_transpose_interior_stencil(dissipation_interior_weights(1)) == Stencil(-1,1, center=1)
129262c8e897 Change signatures for interior stencil methods
Jonatan Werpers <jonatan@werpers.com>
parents: 1027
diff changeset
70 @test dissipation_transpose_interior_stencil(dissipation_interior_weights(2)) == Stencil(1,-2,1, center=2)
129262c8e897 Change signatures for interior stencil methods
Jonatan Werpers <jonatan@werpers.com>
parents: 1027
diff changeset
71 @test dissipation_transpose_interior_stencil(dissipation_interior_weights(3)) == Stencil(-1,3,-3,1, center=2)
129262c8e897 Change signatures for interior stencil methods
Jonatan Werpers <jonatan@werpers.com>
parents: 1027
diff changeset
72 @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
73 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
74
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
75 @testset "midpoint" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
76 @test midpoint((1,1)) == 2
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
77 @test midpoint((1,1,1)) == 2
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
78 @test midpoint((1,1,1,1)) == 3
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
79 @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
80 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
81
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
82 @testset "midpoint_transpose" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
83 @test midpoint_transpose((1,1)) == 1
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
84 @test midpoint_transpose((1,1,1)) == 2
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
85 @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
86 @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
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_lower_closure_size" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
90 @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
91 @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
92 @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
93 @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
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_upper_closure_size" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
97 @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
98 @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
99 @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
100 @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
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 "dissipation_lower_closure_stencils" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
104 cases = (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
105 (-1,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
106 Stencil(-1, 1, center=1),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
107 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
108 (1,-2,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
109 Stencil( 1,-2, 1, center=1),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
110 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
111 (-1,3,-3,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
112 Stencil(-1,3,-3,1, center=1),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
113 Stencil(-1,3,-3,1, center=2),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
114 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
115 (1, -4, 6, -4, 1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
116 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
117 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
118 )
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
119 )
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
120 @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
121 @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
122 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
123 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
124
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
125 @testset "dissipation_upper_closure_stencils" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
126 cases = (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
127 (-1,1) => (),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
128 (1,-2,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
129 Stencil( 1,-2, 1, center=3),
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 (-1,3,-3,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
132 Stencil(-1,3,-3,1, center=4),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
133 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
134 (1, -4, 6, -4, 1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
135 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
136 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
137 )
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 @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
140 @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
141 end
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
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
145 @testset "dissipation_transpose_lower_closure_stencils" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
146 cases = (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
147 (-1,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
148 Stencil(-1,-1, center=1),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
149 Stencil( 1, 1,-1, center=2),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
150 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
151 (1,-2,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
152 Stencil( 1, 1, center=1),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
153 Stencil(-2,-2, 1, center=2),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
154 Stencil( 1, 1,-2, 1, center=3),
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,3,-3,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
157 Stencil(-1,-1,-1, center=1),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
158 Stencil( 3, 3, 3,-1, center=2),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
159 Stencil(-3,-3,-3, 3,-1, center=3),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
160 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
161 ),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
162 )
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
163 @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
164 @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
165 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
166 end
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 @testset "dissipation_transpose_upper_closure_stencils" begin
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
169 cases = (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
170 (-1,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
171 Stencil( 1,-1, center = 1),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
172 Stencil( 1, center = 1),
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 (1,-2,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
175 Stencil( 1, -2, 1, 1, center=2),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
176 Stencil( 1,-2,-2, center=2),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
177 Stencil( 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,3,-3,1) => (
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
180 Stencil( 1,-3, 3,-1,-1, center=2),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
181 Stencil( 1,-3, 3, 3, center=2),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
182 Stencil( 1,-3,-3, center=2),
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
183 Stencil( 1, 1, center=2),
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 "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
187 @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
188 end
3f5137ce3aa1 Start adding helper functions for building dissipation operators
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
189 end