annotate test/SbpOperators/volumeops/volume_operator_test.jl @ 1996:d89f7a1a6f37 feature/grids/manifolds

Add some notation to the docs page
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 23 Apr 2025 09:02:20 +0200
parents 0656b46a1a74
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 using Test
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2
1726
471a948cd2b2 Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents: 1529
diff changeset
3 using Diffinitive.SbpOperators
471a948cd2b2 Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents: 1529
diff changeset
4 using Diffinitive.Grids
471a948cd2b2 Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents: 1529
diff changeset
5 using Diffinitive.RegionIndices
471a948cd2b2 Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents: 1529
diff changeset
6 using Diffinitive.LazyTensors
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7
1726
471a948cd2b2 Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents: 1529
diff changeset
8 import Diffinitive.SbpOperators.Stencil
471a948cd2b2 Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents: 1529
diff changeset
9 import Diffinitive.SbpOperators.VolumeOperator
471a948cd2b2 Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents: 1529
diff changeset
10 import Diffinitive.SbpOperators.odd
471a948cd2b2 Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents: 1529
diff changeset
11 import Diffinitive.SbpOperators.even
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12
1105
0ba4609605d4 REVIEW: Suggest changes to tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1099
diff changeset
13
1291
356ec6a72974 Implement changes in SbpOperators
Jonatan Werpers <jonatan@werpers.com>
parents: 1285
diff changeset
14 @testset "VolumeOperator" begin
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 inner_stencil = CenteredStencil(1/4, 2/4, 1/4)
1151
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
16 closure_stencils = (Stencil(1/2, 1/2; center=1), Stencil(2.,1.; center=2))
1529
43aaf710463e Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents: 1291
diff changeset
17 g = equidistant_grid(0.,1., 11)
1151
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
18
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 @testset "Constructors" begin
1761
0656b46a1a74 Simplify size type in VolumeOperator
Jonatan Werpers <jonatan@werpers.com>
parents: 1726
diff changeset
20 op = VolumeOperator(inner_stencil, closure_stencils, 11, even)
1109
69c635e1d346 Rename g_1D and remove nested testset
Jonatan Werpers <jonatan@werpers.com>
parents: 1105
diff changeset
21 @test op == VolumeOperator(g,inner_stencil,closure_stencils,even)
1099
05a25a5063bb Try to remove volume_operator and boundary_operator methods
Jonatan Werpers <jonatan@werpers.com>
parents: 995
diff changeset
22 @test op isa LazyTensor{T,1,1} where T
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 end
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 @testset "Sizes" begin
1109
69c635e1d346 Rename g_1D and remove nested testset
Jonatan Werpers <jonatan@werpers.com>
parents: 1105
diff changeset
26 op = VolumeOperator(g,inner_stencil,closure_stencils,even)
69c635e1d346 Rename g_1D and remove nested testset
Jonatan Werpers <jonatan@werpers.com>
parents: 1105
diff changeset
27 @test range_size(op) == domain_size(op) == size(g)
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 end
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29
1151
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
30
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
31 op_even = VolumeOperator(g, inner_stencil, closure_stencils, even)
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
32 op_odd = VolumeOperator(g, inner_stencil, closure_stencils, odd)
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
33
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
34 N = size(g)[1]
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
35 v = rand(N)
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
36
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
37 r_even = copy(v)
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
38 r_odd = copy(v)
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
39
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
40 r_even[1] = (v[1] + v[2])/2
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
41 r_odd[1] = (v[1] + v[2])/2
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42
1151
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
43 r_even[2] = 2v[1] + v[2]
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
44 r_odd[2] = 2v[1] + v[2]
946
469ed954b493 Allow volume_operator, boundary_operator, and constant_interior_scaling_operator to act on arbitrary arrays
Jonatan Werpers <jonatan@werpers.com>
parents: 759
diff changeset
45
1151
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
46 for i ∈ 3:N-2
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
47 r_even[i] = (v[i-1] + 2v[i] + v[i+1])/4
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
48 r_odd[i] = (v[i-1] + 2v[i] + v[i+1])/4
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
49 end
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
50
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
51 r_even[N-1] = v[N-1] + 2v[N]
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
52 r_odd[N-1] = -v[N-1] - 2v[N]
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
53
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
54 r_even[N] = (v[N-1] + v[N])/2
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
55 r_odd[N] = -(v[N-1] + v[N])/2
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57
1151
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
58 @testset "Application" begin
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
59 @test op_even*v ≈ r_even
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
60 @test op_odd*v ≈ r_odd
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61
1151
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
62 @test (op_even*rand(ComplexF64,size(g)))[2] isa ComplexF64
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
63 end
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64
1151
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
65 @testset "Regions" begin
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
66 @test (op_even*v)[Index(1,Lower)] ≈ r_even[1]
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
67 @test (op_even*v)[Index(2,Lower)] ≈ r_even[2]
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
68 @test (op_even*v)[Index(6,Interior)] ≈ r_even[6]
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
69 @test (op_even*v)[Index(10,Upper)] ≈ r_even[10]
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
70 @test (op_even*v)[Index(11,Upper)] ≈ r_even[11]
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71
1151
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
72 @test_throws BoundsError (op_even*v)[Index(3,Lower)]
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
73 @test_throws BoundsError (op_even*v)[Index(9,Upper)]
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
74 end
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
75
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
76 @testset "Inferred" begin
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
77 @inferred apply(op_even, v, 1)
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
78 @inferred apply(op_even, v, Index(1,Lower))
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
79 @inferred apply(op_even, v, Index(6,Interior))
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
80 @inferred apply(op_even, v, Index(11,Upper))
56bc2c6a17fd Fix tests after review comment
Jonatan Werpers <jonatan@werpers.com>
parents: 1109
diff changeset
81 end
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
82 end