Mercurial > repos > public > sbplib_julia
annotate benchmark/benchmark_laplace.jl @ 1961:f46b4f1fa82c feature/grids/geometry_functions
Merge feature/grids/manifolds
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 11 Feb 2025 09:02:37 +0100 |
parents | 471a948cd2b2 |
children |
rev | line source |
---|---|
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1529
diff
changeset
|
1 using Diffinitive |
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1529
diff
changeset
|
2 using Diffinitive.SbpOperators |
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1529
diff
changeset
|
3 using Diffinitive.Grids |
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1529
diff
changeset
|
4 using Diffinitive.RegionIndices |
1376
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
5 using BenchmarkTools |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
6 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
7 # TODO: Move the below benchmarks into the benchmark suite |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
8 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
9 const operator_path = sbp_operators_path()*"standard_diagonal.toml" |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
10 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
11 function benchmark_const_coeff_1d(;N = 100, order = 4) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
12 stencil_set = read_stencil_set(operator_path; order=order) |
1529
43aaf710463e
Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents:
1376
diff
changeset
|
13 g = equidistant_grid(0., 1., N) |
1376
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
14 D = second_derivative(g, stencil_set) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
15 u = rand(size(g)...) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
16 u_xx = rand(size(g)...) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
17 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
18 b_naive = @benchmark $u_xx .= $D*$u |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
19 b_reg = @benchmark $apply_region_1d!($u_xx,$u,$D) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
20 b_thrd = @benchmark $apply_region_threaded_1d!($u_xx,$u,$D) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
21 print_benchmark_result("Naive apply",b_naive) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
22 print_benchmark_result("Region apply",b_reg) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
23 print_benchmark_result("Threaded region apply",b_thrd) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
24 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
25 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
26 function benchmark_var_coeff_1d(;N = 100, order = 4) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
27 stencil_set = read_stencil_set(operator_path; order=order) |
1529
43aaf710463e
Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents:
1376
diff
changeset
|
28 g = equidistant_grid(0., 1., N) |
1376
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
29 c = rand(size(g)...) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
30 c_lz = eval_on(g, x -> 0.5) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
31 D = second_derivative_variable(g, c, stencil_set) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
32 D_lz = second_derivative_variable(g, c_lz, stencil_set) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
33 u = rand(size(g)...) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
34 u_xx = rand(size(g)...) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
35 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
36 b_naive = @benchmark $u_xx .= $D*$u |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
37 b_naive_lz = @benchmark $u_xx .= $D_lz*$u |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
38 b_reg = @benchmark $apply_region_1d!($u_xx,$u,$D) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
39 b_reg_lz = @benchmark $apply_region_1d!($u_xx,$u,$D_lz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
40 b_thrd = @benchmark $apply_region_threaded_1d!($u_xx,$u,$D) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
41 b_thrd_lz = @benchmark $apply_region_threaded_1d!($u_xx,$u,$D_lz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
42 print_benchmark_result("Naive apply",b_naive) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
43 print_benchmark_result("Naive apply lazy coeff",b_naive_lz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
44 print_benchmark_result("Region apply",b_reg) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
45 print_benchmark_result("Region apply lazy coeff",b_reg_lz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
46 print_benchmark_result("Threaded region apply",b_thrd) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
47 print_benchmark_result("Threaded region apply lazy coeff",b_thrd_lz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
48 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
49 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
50 function benchmark_const_coeff_2d(;N = 100, order = 4) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
51 stencil_set = read_stencil_set(operator_path; order=order) |
1529
43aaf710463e
Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents:
1376
diff
changeset
|
52 g = equidistant_grid((0.,0.,),(1.,1.), N, N) |
1376
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
53 D = Laplace(g, stencil_set) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
54 u = rand(size(g)...) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
55 u_xx = rand(size(g)...) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
56 if order == 2 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
57 clz_sz = 1 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
58 elseif order == 4 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
59 clz_sz = 4 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
60 else |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
61 error() |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
62 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
63 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
64 b_naive = @benchmark $u_xx .= $D*$u |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
65 b_reg = @benchmark $apply_region_2d!($u_xx,$u,$D,$clz_sz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
66 b_thrd = @benchmark $apply_region_threaded_2d!($u_xx,$u,$D,$clz_sz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
67 print_benchmark_result("Naive apply",b_naive) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
68 print_benchmark_result("Region apply",b_reg) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
69 print_benchmark_result("Threaded region apply",b_thrd) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
70 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
71 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
72 function benchmark_var_coeff_2d(;N = 100, order = 4) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
73 stencil_set = read_stencil_set(operator_path; order=order) |
1529
43aaf710463e
Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents:
1376
diff
changeset
|
74 g = equidistant_grid((0.,0.,),(1.,1.), N, N) |
1376
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
75 c = rand(size(g)...) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
76 c_lz = eval_on(g, x-> 0.5) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
77 D = second_derivative_variable(g, c, stencil_set, 1) + second_derivative_variable(g, c, stencil_set, 2) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
78 D_lz = second_derivative_variable(g, c_lz, stencil_set, 1) + second_derivative_variable(g, c_lz, stencil_set, 2) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
79 u = rand(size(g)...) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
80 u_xx = rand(size(g)...) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
81 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
82 if order == 2 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
83 clz_sz = 1 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
84 elseif order == 4 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
85 clz_sz = 6 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
86 else |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
87 error() |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
88 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
89 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
90 # Check correctnesss |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
91 # u_xx .= D*u |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
92 # u_xx_tmp = zeros(size(u_xx)...) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
93 # u_xx_tmp .= u_xx |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
94 # apply_region_threaded_2d!(u_xx, u, D, clz_sz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
95 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
96 # @show sum(abs.(u_xx_tmp .- u_xx)) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
97 # @show pointer(u_xx_tmp) == pointer(u_xxs |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
98 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
99 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
100 b_naive = @benchmark $u_xx .= $D*$u |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
101 b_naive_lz = @benchmark $u_xx .= $D_lz*$u |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
102 b_reg = @benchmark $apply_region_2d!($u_xx,$u,$D, $clz_sz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
103 b_reg_lz = @benchmark $apply_region_2d!($u_xx,$u,$D_lz, $clz_sz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
104 b_thrd = @benchmark $apply_region_threaded_2d!($u_xx,$u,$D, $clz_sz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
105 b_thrd_lz = @benchmark $apply_region_threaded_2d!($u_xx,$u,$D_lz, $clz_sz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
106 print_benchmark_result("Naive apply",b_naive) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
107 print_benchmark_result("Naive apply lazy coeff",b_naive_lz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
108 print_benchmark_result("Region apply",b_reg) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
109 print_benchmark_result("Region apply lazy coeff",b_reg_lz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
110 print_benchmark_result("Threaded region apply",b_thrd) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
111 print_benchmark_result("Threaded region apply lazy coeff",b_thrd_lz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
112 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
113 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
114 function print_benchmark_result(title_str,res) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
115 if title_str[1] != ' ' |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
116 title_str = lpad(title_str,length(title_str)+1, " ") |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
117 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
118 if title_str[end] != ' ' |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
119 title_str = rpad(title_str,length(title_str)+1, " ") |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
120 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
121 tot_len = 76 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
122 pad_len = Int(tot_len/2) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
123 header = lpad(title_str,pad_len,"*") |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
124 header = rpad(header,tot_len,"*") |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
125 bottom = repeat("*",tot_len) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
126 println(header) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
127 display(res) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
128 println(bottom) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
129 return |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
130 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
131 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
132 function apply_region_1d!(u_xx, u, D) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
133 clz_sz = SbpOperators.closure_size(D) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
134 tm = D*u |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
135 for i ∈ @view eachindex(u)[1:clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
136 u_xx[i] = tm[Index{Lower}(i)] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
137 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
138 for i ∈ @view eachindex(u)[clz_sz+1:end-clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
139 u_xx[i] = tm[Index{Interior}(i)] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
140 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
141 for i ∈ @view eachindex(u)[end-clz_sz+1:end] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
142 u_xx[i] = tm[Index{Upper}(i)] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
143 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
144 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
145 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
146 function apply_region_threaded_1d!(u_xx, u, D) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
147 clz_sz = SbpOperators.closure_size(D) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
148 tm = D*u |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
149 for i ∈ @view eachindex(u)[1:clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
150 u_xx[i] = tm[Index{Lower}(i)] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
151 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
152 Threads.@threads for i ∈ @view eachindex(u)[clz_sz+1:end-clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
153 u_xx[i] = tm[Index{Interior}(i)] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
154 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
155 for i ∈ @view eachindex(u)[end-clz_sz+1:end] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
156 u_xx[i] = tm[Index{Upper}(i)] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
157 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
158 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
159 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
160 function apply_region_2d!(u_xx, u, D, clz_sz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
161 tm = D*u |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
162 for I ∈ @view CartesianIndices(u)[1:clz_sz,1:clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
163 u_xx[I] = tm[Index{Lower}(I[1]),Index{Lower}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
164 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
165 for I ∈ @view CartesianIndices(u)[1:clz_sz,clz_sz+1:end-clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
166 u_xx[I] = tm[Index{Lower}(I[1]),Index{Interior}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
167 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
168 for I ∈ @view CartesianIndices(u)[1:clz_sz,end-clz_sz+1:end] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
169 u_xx[I] = tm[Index{Lower}(I[1]),Index{Upper}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
170 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
171 for I ∈ @view CartesianIndices(u)[clz_sz+1:end-clz_sz,1:clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
172 u_xx[I] = tm[Index{Interior}(I[1]),Index{Lower}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
173 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
174 for I ∈ @view CartesianIndices(u)[clz_sz+1:end-clz_sz,clz_sz+1:end-clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
175 u_xx[I] = tm[Index{Interior}(I[1]),Index{Interior}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
176 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
177 for I ∈ @view CartesianIndices(u)[clz_sz+1:end-clz_sz,end-clz_sz+1:end] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
178 u_xx[I] = tm[Index{Interior}(I[1]),Index{Upper}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
179 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
180 for I ∈ @view CartesianIndices(u)[end-clz_sz+1:end,1:clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
181 u_xx[I] = tm[Index{Upper}(I[1]),Index{Lower}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
182 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
183 for I ∈ @view CartesianIndices(u)[end-clz_sz+1:end,clz_sz+1:end-clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
184 u_xx[I] = tm[Index{Upper}(I[1]),Index{Interior}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
185 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
186 for I ∈ @view CartesianIndices(u)[end-clz_sz+1:end,end-clz_sz+1:end] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
187 u_xx[I] = tm[Index{Upper}(I[1]),Index{Upper}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
188 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
189 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
190 |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
191 function apply_region_threaded_2d!(u_xx, u, D, clz_sz) |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
192 tm = D*u |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
193 for I ∈ @view CartesianIndices(u)[1:clz_sz,1:clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
194 u_xx[I] = tm[Index{Lower}(I[1]),Index{Lower}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
195 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
196 for I ∈ @view CartesianIndices(u)[1:clz_sz,clz_sz+1:end-clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
197 u_xx[I] = tm[Index{Lower}(I[1]),Index{Interior}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
198 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
199 for I ∈ @view CartesianIndices(u)[1:clz_sz,end-clz_sz+1:end] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
200 u_xx[I] = tm[Index{Lower}(I[1]),Index{Upper}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
201 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
202 for I ∈ @view CartesianIndices(u)[clz_sz+1:end-clz_sz,1:clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
203 u_xx[I] = tm[Index{Interior}(I[1]),Index{Lower}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
204 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
205 Threads.@threads for I ∈ @view CartesianIndices(u)[clz_sz+1:end-clz_sz,clz_sz+1:end-clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
206 u_xx[I] = tm[Index{Interior}(I[1]),Index{Interior}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
207 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
208 for I ∈ @view CartesianIndices(u)[clz_sz+1:end-clz_sz,end-clz_sz+1:end] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
209 u_xx[I] = tm[Index{Interior}(I[1]),Index{Upper}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
210 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
211 for I ∈ @view CartesianIndices(u)[end-clz_sz+1:end,1:clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
212 u_xx[I] = tm[Index{Upper}(I[1]),Index{Lower}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
213 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
214 for I ∈ @view CartesianIndices(u)[end-clz_sz+1:end,clz_sz+1:end-clz_sz] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
215 u_xx[I] = tm[Index{Upper}(I[1]),Index{Interior}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
216 end |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
217 for I ∈ @view CartesianIndices(u)[end-clz_sz+1:end,end-clz_sz+1:end] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
218 u_xx[I] = tm[Index{Upper}(I[1]),Index{Upper}(I[2])] |
2ad2de55061a
Add temp. benchmark script for constant and variable coeff Laplace
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
219 end |
1529
43aaf710463e
Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents:
1376
diff
changeset
|
220 end |