annotate benchmark/benchmarks.jl @ 1211:58a7aa15ce68 tooling/benchmarks

Add boundary term benchmarks
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 07 Feb 2023 15:52:57 +0100
parents f095c02081eb
children 37d615522c2f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1171
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 using BenchmarkTools
1198
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
2 using Sbplib
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
3 using Sbplib.Grids
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
4 using Sbplib.SbpOperators
1211
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
5 using Sbplib.RegionIndices
1171
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 const SUITE = BenchmarkGroup()
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8
1198
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
9
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
10 sz(d) = ntuple(i->100, d)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
11 ll(d) = ntuple(i->0., d)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
12 lu(d) = ntuple(i->1., d)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
13
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
14 g1 = EquidistantGrid(sz(1),ll(1),lu(1))
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
15 g2 = EquidistantGrid(sz(2),ll(2),lu(2))
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
16 g3 = EquidistantGrid(sz(3),ll(3),lu(3))
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
17
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
18 v1 = rand(sz(1)...)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
19 v2 = rand(sz(2)...)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
20 v3 = rand(sz(3)...)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
21
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
22 u1 = rand(sz(1)...)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
23 u2 = rand(sz(2)...)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
24 u3 = rand(sz(3)...)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
25
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
26 stencil_set = read_stencil_set(joinpath(sbp_operators_path(),"standard_diagonal.toml"); order=4)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
27
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
28 SUITE["derivatives"] = BenchmarkGroup()
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
29
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
30
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
31 SUITE["derivatives"]["first_derivative"] = BenchmarkGroup()
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
32
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
33 D₁ = first_derivative(g1,stencil_set)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
34 SUITE["derivatives"]["first_derivative"]["1D"] = @benchmarkable $u1 .= $D₁*$v1
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
35
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
36 Dx = first_derivative(g2,stencil_set,1)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
37 Dy = first_derivative(g2,stencil_set,2)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
38 SUITE["derivatives"]["first_derivative"]["2D"] = BenchmarkGroup()
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
39 SUITE["derivatives"]["first_derivative"]["2D"]["x"] = @benchmarkable $u2 .= $Dx*$v2
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
40 SUITE["derivatives"]["first_derivative"]["2D"]["y"] = @benchmarkable $u2 .= $Dy*$v2
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
41
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
42 Dx = first_derivative(g3,stencil_set,1)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
43 Dy = first_derivative(g3,stencil_set,2)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
44 Dz = first_derivative(g3,stencil_set,3)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
45 SUITE["derivatives"]["first_derivative"]["3D"] = BenchmarkGroup()
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
46 SUITE["derivatives"]["first_derivative"]["3D"]["x"] = @benchmarkable $u3 .= $Dx*$v3
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
47 SUITE["derivatives"]["first_derivative"]["3D"]["y"] = @benchmarkable $u3 .= $Dy*$v3
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
48 SUITE["derivatives"]["first_derivative"]["3D"]["z"] = @benchmarkable $u3 .= $Dz*$v3
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
49
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
50
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
51 SUITE["derivatives"]["second_derivative"] = BenchmarkGroup()
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
52
1199
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
53 D₂ = second_derivative(g1,stencil_set)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
54 SUITE["derivatives"]["second_derivative"]["1D"] = @benchmarkable $u1 .= $D₂*$v1
1198
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
55
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
56 Dx = second_derivative(g2,stencil_set,1)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
57 Dy = second_derivative(g2,stencil_set,2)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
58 SUITE["derivatives"]["second_derivative"]["2D"] = BenchmarkGroup()
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
59 SUITE["derivatives"]["second_derivative"]["2D"]["x"] = @benchmarkable $u2 .= $Dx*$v2
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
60 SUITE["derivatives"]["second_derivative"]["2D"]["y"] = @benchmarkable $u2 .= $Dy*$v2
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
61
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
62 Dx = second_derivative(g3,stencil_set,1)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
63 Dy = second_derivative(g3,stencil_set,2)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
64 Dz = second_derivative(g3,stencil_set,3)
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
65 SUITE["derivatives"]["second_derivative"]["3D"] = BenchmarkGroup()
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
66 SUITE["derivatives"]["second_derivative"]["3D"]["x"] = @benchmarkable $u3 .= $Dx*$v3
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
67 SUITE["derivatives"]["second_derivative"]["3D"]["y"] = @benchmarkable $u3 .= $Dy*$v3
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
68 SUITE["derivatives"]["second_derivative"]["3D"]["z"] = @benchmarkable $u3 .= $Dz*$v3
5d4a15d6118f Add some actual benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
69
1171
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
70
1199
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
71
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
72 SUITE["derivatives"]["addition"] = BenchmarkGroup()
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
73
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
74 D₁ = first_derivative(g1,stencil_set)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
75 D₂ = second_derivative(g1,stencil_set)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
76 SUITE["derivatives"]["addition"]["1D"] = BenchmarkGroup()
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
77 SUITE["derivatives"]["addition"]["1D"]["apply,add"] = @benchmarkable $u1 .= $D₁*$v1 + $D₂*$v1
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
78 SUITE["derivatives"]["addition"]["1D"]["add,apply"] = @benchmarkable $u1 .= ($D₁ + $D₂)*$v1
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
79
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
80 Dxx = second_derivative(g2,stencil_set,1)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
81 Dyy = second_derivative(g2,stencil_set,2)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
82 SUITE["derivatives"]["addition"]["2D"] = BenchmarkGroup()
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
83 SUITE["derivatives"]["addition"]["2D"]["apply,add"] = @benchmarkable $u2 .= $Dxx*$v2 + $Dyy*$v2
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
84 SUITE["derivatives"]["addition"]["2D"]["add,apply"] = @benchmarkable $u2 .= ($Dxx + $Dyy)*$v2
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
85
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
86 Dxx = second_derivative(g3,stencil_set,1)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
87 Dyy = second_derivative(g3,stencil_set,2)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
88 Dzz = second_derivative(g3,stencil_set,3)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
89 SUITE["derivatives"]["addition"]["3D"] = BenchmarkGroup()
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
90 SUITE["derivatives"]["addition"]["3D"]["apply,add"] = @benchmarkable $u3 .= $Dxx*$v3 + $Dyy*$v3 + $Dzz*$v3
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
91 SUITE["derivatives"]["addition"]["3D"]["add,apply"] = @benchmarkable $u3 .= ($Dxx + $Dyy + $Dzz)*$v3
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
92
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
93
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
94 SUITE["derivatives"]["composition"] = BenchmarkGroup()
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
95
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
96 Dx = first_derivative(g1,stencil_set)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
97 SUITE["derivatives"]["composition"]["1D"] = BenchmarkGroup()
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
98 SUITE["derivatives"]["composition"]["1D"]["apply,apply"] = @benchmarkable $u1 .= $Dx*($Dx*$v1)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
99 SUITE["derivatives"]["composition"]["1D"]["compose,apply"] = @benchmarkable $u1 .= ($Dx∘$Dx)*$v1
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
100
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
101 Dx = first_derivative(g2,stencil_set,1)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
102 Dy = first_derivative(g2,stencil_set,2)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
103 SUITE["derivatives"]["composition"]["2D"] = BenchmarkGroup()
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
104 SUITE["derivatives"]["composition"]["2D"]["apply,apply"] = @benchmarkable $u2 .= $Dy*($Dx*$v2)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
105 SUITE["derivatives"]["composition"]["2D"]["compose,apply"] = @benchmarkable $u2 .= ($Dy∘$Dx)*$v2
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
106
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
107 Dx = first_derivative(g3,stencil_set,1)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
108 Dy = first_derivative(g3,stencil_set,2)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
109 Dz = first_derivative(g3,stencil_set,3)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
110 SUITE["derivatives"]["composition"]["3D"] = BenchmarkGroup()
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
111 SUITE["derivatives"]["composition"]["3D"]["xy"] = BenchmarkGroup()
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
112 SUITE["derivatives"]["composition"]["3D"]["xy"]["apply,apply"] = @benchmarkable $u3 .= $Dx*($Dy*$v3)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
113 SUITE["derivatives"]["composition"]["3D"]["xy"]["compose,apply"] = @benchmarkable $u3 .= ($Dx∘$Dy)*$v3
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
114
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
115 SUITE["derivatives"]["composition"]["3D"]["yz"] = BenchmarkGroup()
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
116 SUITE["derivatives"]["composition"]["3D"]["yz"]["apply,apply"] = @benchmarkable $u3 .= $Dy*($Dz*$v3)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
117 SUITE["derivatives"]["composition"]["3D"]["yz"]["compose,apply"] = @benchmarkable $u3 .= ($Dy∘$Dz)*$v3
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
118
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
119 SUITE["derivatives"]["composition"]["3D"]["xz"] = BenchmarkGroup()
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
120 SUITE["derivatives"]["composition"]["3D"]["xz"]["apply,apply"] = @benchmarkable $u3 .= $Dx*($Dz*$v3)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
121 SUITE["derivatives"]["composition"]["3D"]["xz"]["compose,apply"] = @benchmarkable $u3 .= ($Dx∘$Dz)*$v3
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
122
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
123 SUITE["derivatives"]["composition"]["3D"]["xx"] = BenchmarkGroup()
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
124 SUITE["derivatives"]["composition"]["3D"]["xx"]["apply,apply"] = @benchmarkable $u3 .= $Dx*($Dx*$v3)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
125 SUITE["derivatives"]["composition"]["3D"]["xx"]["compose,apply"] = @benchmarkable $u3 .= ($Dx∘$Dx)*$v3
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
126
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
127 SUITE["derivatives"]["composition"]["3D"]["yy"] = BenchmarkGroup()
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
128 SUITE["derivatives"]["composition"]["3D"]["yy"]["apply,apply"] = @benchmarkable $u3 .= $Dy*($Dy*$v3)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
129 SUITE["derivatives"]["composition"]["3D"]["yy"]["compose,apply"] = @benchmarkable $u3 .= ($Dy∘$Dy)*$v3
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
130
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
131 SUITE["derivatives"]["composition"]["3D"]["zz"] = BenchmarkGroup()
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
132 SUITE["derivatives"]["composition"]["3D"]["zz"]["apply,apply"] = @benchmarkable $u3 .= $Dz*($Dz*$v3)
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
133 SUITE["derivatives"]["composition"]["3D"]["zz"]["compose,apply"] = @benchmarkable $u3 .= ($Dz∘$Dz)*$v3
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
134
1211
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
135
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
136 SUITE["boundary_terms"] = BenchmarkGroup()
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
137
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
138 H = inner_product(g2, stencil_set)
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
139 H⁻¹ = inverse_inner_product(g2, stencil_set)
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
140 Dxx = second_derivative(g2, stencil_set, 1)
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
141 Dyy = second_derivative(g2, stencil_set, 2)
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
142
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
143 e₁ₗ = boundary_restriction(g2, stencil_set, CartesianBoundary{1,Lower}())
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
144 e₁ᵤ = boundary_restriction(g2, stencil_set, CartesianBoundary{1,Upper}())
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
145 e₂ₗ = boundary_restriction(g2, stencil_set, CartesianBoundary{2,Lower}())
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
146 e₂ᵤ = boundary_restriction(g2, stencil_set, CartesianBoundary{2,Upper}())
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
147
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
148 d₁ₗ = normal_derivative(g2, stencil_set, CartesianBoundary{1,Lower}())
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
149 d₁ᵤ = normal_derivative(g2, stencil_set, CartesianBoundary{1,Upper}())
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
150 d₂ₗ = normal_derivative(g2, stencil_set, CartesianBoundary{2,Lower}())
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
151 d₂ᵤ = normal_derivative(g2, stencil_set, CartesianBoundary{2,Upper}())
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
152
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
153 H₁ₗ = inner_product(boundary_grid(g2, CartesianBoundary{1,Lower}()), stencil_set)
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
154 H₁ᵤ = inner_product(boundary_grid(g2, CartesianBoundary{1,Upper}()), stencil_set)
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
155 H₂ₗ = inner_product(boundary_grid(g2, CartesianBoundary{2,Lower}()), stencil_set)
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
156 H₂ᵤ = inner_product(boundary_grid(g2, CartesianBoundary{2,Upper}()), stencil_set)
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
157
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
158 SUITE["boundary_terms"]["pre_composition"] = @benchmarkable $u2 .= $(H⁻¹∘e₁ₗ'∘H₁ₗ∘d₁ₗ)*$v2
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
159 SUITE["boundary_terms"]["composition"] = @benchmarkable $u2 .= ($H⁻¹∘$e₁ₗ'∘$H₁ₗ∘$d₁ₗ)*$v2
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
160 SUITE["boundary_terms"]["application"] = @benchmarkable $u2 .= $H⁻¹*$e₁ₗ'*$H₁ₗ* $d₁ₗ*$v2
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
161 # An investigation of these allocations can be found in the branch `allocation_test`
58a7aa15ce68 Add boundary term benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1199
diff changeset
162
1199
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
163 #TODO: Reorg with dimension as first level? To reduce operator creation?
f095c02081eb More benchmarks
Jonatan Werpers <jonatan@werpers.com>
parents: 1198
diff changeset
164
1171
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
165 SUITE