annotate test/BoundaryConditions/boundary_condition_test.jl @ 1481:ee242c3fe4af feature/boundary_conditions

Support boundary identifiers for 1D grids
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Mon, 25 Dec 2023 19:23:09 +0100
parents fefc81a9c155
children 330c39505a94
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1164
d26aef8a5987 Add types for different kinds of boundary data functions to discretize the data on the grid. Add tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
1 using Test
d26aef8a5987 Add types for different kinds of boundary data functions to discretize the data on the grid. Add tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
2
d26aef8a5987 Add types for different kinds of boundary data functions to discretize the data on the grid. Add tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
3 using Sbplib.BoundaryConditions
d26aef8a5987 Add types for different kinds of boundary data functions to discretize the data on the grid. Add tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
4 using Sbplib.Grids
d26aef8a5987 Add types for different kinds of boundary data functions to discretize the data on the grid. Add tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
5
1406
b4ec84190e6b Start reimplementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1395
diff changeset
6 @testset "BoundaryCondition" begin
1481
ee242c3fe4af Support boundary identifiers for 1D grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1478
diff changeset
7 grid_1d = equidistant_grid(11, 0.0, 1.0)
1406
b4ec84190e6b Start reimplementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1395
diff changeset
8 grid_2d = equidistant_grid((11,15), (0.0, 0.0), (1.0,1.0))
b4ec84190e6b Start reimplementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1395
diff changeset
9 grid_3d = equidistant_grid((11,15,13), (0.0, 0.0, 0.0), (1.0,1.0, 1.0))
1481
ee242c3fe4af Support boundary identifiers for 1D grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1478
diff changeset
10 (id_l,_) = boundary_identifiers(grid_1d)
1406
b4ec84190e6b Start reimplementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1395
diff changeset
11 (_,_,_,id_n) = boundary_identifiers(grid_2d)
b4ec84190e6b Start reimplementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1395
diff changeset
12 (_,_,_,_,id_b,_) = boundary_identifiers(grid_3d)
1164
d26aef8a5987 Add types for different kinds of boundary data functions to discretize the data on the grid. Add tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
13
1406
b4ec84190e6b Start reimplementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1395
diff changeset
14 g = 3.14
1478
fefc81a9c155 Test spatially variable data
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1417
diff changeset
15 f(x,y,z) = x^2+y^2+z^2
1481
ee242c3fe4af Support boundary identifiers for 1D grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1478
diff changeset
16 @test DirichletCondition(g,id_l) isa BoundaryCondition{Float64}
1406
b4ec84190e6b Start reimplementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1395
diff changeset
17 @test DirichletCondition(g,id_n) isa BoundaryCondition{Float64}
1478
fefc81a9c155 Test spatially variable data
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1417
diff changeset
18 @test NeumannCondition(f,id_b) isa BoundaryCondition{<:Function}
1164
d26aef8a5987 Add types for different kinds of boundary data functions to discretize the data on the grid. Add tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
19
1481
ee242c3fe4af Support boundary identifiers for 1D grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1478
diff changeset
20 @test fill(g) ≈ discretize_data(grid_1d,DirichletCondition(g,id_l))
1478
fefc81a9c155 Test spatially variable data
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1417
diff changeset
21 @test g*ones(11,1) ≈ discretize_data(grid_2d,DirichletCondition(g,id_n))
fefc81a9c155 Test spatially variable data
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1417
diff changeset
22 X = repeat(0:1/10:1, inner = (1,15))
fefc81a9c155 Test spatially variable data
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1417
diff changeset
23 Y = repeat(0:1/14:1, outer = (1,11))
fefc81a9c155 Test spatially variable data
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1417
diff changeset
24 @test map((x,y)->f(x,y,0), X,Y') ≈ discretize_data(grid_3d,NeumannCondition(f,id_b))
1406
b4ec84190e6b Start reimplementing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1395
diff changeset
25 end