comparison test/Grids/multiblockgrids_test.jl @ 2026:1b6f150d95c5 feature/grids/multiblock_grids

Implement min_spacing, coarsen, refine
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 10 Apr 2025 16:20:22 +0200
parents 3fb33f00dab2
children 0f27ddff6f92
comparison
equal deleted inserted replaced
2025:d35a4cb170ff 2026:1b6f150d95c5
16 end 16 end
17 17
18 function multiblockgrid2d() 18 function multiblockgrid2d()
19 g₁₁ = equidistant_grid((0,0),(1,1),5,5) 19 g₁₁ = equidistant_grid((0,0),(1,1),5,5)
20 g₁₂ = equidistant_grid((0,0),(1,1),5,5) 20 g₁₂ = equidistant_grid((0,0),(1,1),5,5)
21 g₂₁ = equidistant_grid((0,0),(1,1),5,5) 21 g₂₁ = equidistant_grid((0,0),(1,1),11,11)
22 g₂₂ = equidistant_grid((0,0),(1,1),5,5) 22 g₂₂ = equidistant_grid((0,0),(1,1),5,5)
23 23
24 C = map(((i1,d1,b1,i2,d2,b2),)->connection(i1,CartesianBoundary{d1,b1}(), i2, CartesianBoundary{d2,b2}()),[ 24 C = map(((i1,d1,b1,i2,d2,b2),)->connection(i1,CartesianBoundary{d1,b1}(), i2, CartesianBoundary{d2,b2}()),[
25 (1, 1, UpperBoundary, 2, 1, LowerBoundary), 25 (1, 1, UpperBoundary, 2, 1, LowerBoundary),
26 (3, 1, UpperBoundary, 4, 1, LowerBoundary), 26 (3, 1, UpperBoundary, 4, 1, LowerBoundary),
32 end 32 end
33 33
34 function multiblockgrid_matrix() 34 function multiblockgrid_matrix()
35 g₁₁ = equidistant_grid((0,0),(1,1),5,5) 35 g₁₁ = equidistant_grid((0,0),(1,1),5,5)
36 g₁₂ = equidistant_grid((0,0),(1,1),5,5) 36 g₁₂ = equidistant_grid((0,0),(1,1),5,5)
37 g₂₁ = equidistant_grid((0,0),(1,1),5,5) 37 g₂₁ = equidistant_grid((0,0),(1,1),11,11)
38 g₂₂ = equidistant_grid((0,0),(1,1),5,5) 38 g₂₂ = equidistant_grid((0,0),(1,1),5,5)
39 39
40 C = map(((i1,d1,b1,i2,d2,b2),)->connection(CartesianIndex(i1),CartesianBoundary{d1,b1}(), CartesianIndex(i2), CartesianBoundary{d2,b2}()),[ 40 C = map(((i1,d1,b1,i2,d2,b2),)->connection(CartesianIndex(i1),CartesianBoundary{d1,b1}(), CartesianIndex(i2), CartesianBoundary{d2,b2}()),[
41 ((1,1), 1, UpperBoundary, (1,2), 1, LowerBoundary), 41 ((1,1), 1, UpperBoundary, (1,2), 1, LowerBoundary),
42 ((2,1), 1, UpperBoundary, (2,2), 1, LowerBoundary), 42 ((2,1), 1, UpperBoundary, (2,2), 1, LowerBoundary),
122 @testset "boundary_grid" begin 122 @testset "boundary_grid" begin
123 @test_broken false 123 @test_broken false
124 end 124 end
125 125
126 @testset "min_spacing" begin 126 @testset "min_spacing" begin
127 @test_broken false 127 gs, cs = multiblockgrid2d()
128 @test min_spacing(MultiBlockGrid(gs,cs)) isa Float64
129 @test min_spacing(MultiBlockGrid(gs,cs)) == 0.1
128 end 130 end
129 131
130 @testset "refine" begin 132 @testset "refine" begin
131 @test_broken false 133 gs, cs = multiblockgrid2d()
134 @test refine(MultiBlockGrid(gs,cs),2) isa MultiBlockGrid
135
136 rg = refine(MultiBlockGrid(gs,cs),2)
137 @test connections(rg) == cs
138 @test grids(rg) == [
139 equidistant_grid((0,0),(1,1),9,9),
140 equidistant_grid((0,0),(1,1),9,9),
141 equidistant_grid((0,0),(1,1),21,21),
142 equidistant_grid((0,0),(1,1),9,9),
143 ]
132 end 144 end
133 145
134 @testset "coarsen" begin 146 @testset "coarsen" begin
135 @test_broken false 147 gs, cs = multiblockgrid2d()
148 @test coarsen(MultiBlockGrid(gs,cs),2) isa MultiBlockGrid
149
150 cg = coarsen(MultiBlockGrid(gs,cs),2)
151 @test connections(cg) == cs
152 @test grids(cg) == [
153 equidistant_grid((0,0),(1,1),3,3),
154 equidistant_grid((0,0),(1,1),3,3),
155 equidistant_grid((0,0),(1,1),6,6),
156 equidistant_grid((0,0),(1,1),3,3),
157 ]
136 end 158 end
137 159
138 @testset "boundary_indices" begin 160 @testset "boundary_indices" begin
139 @test_broken false 161 @test_broken false
140 end 162 end