changeset 682:3ed922e95a35 feature/boundary_quads

Make boundary_grid throw if invalid boundary identifier is passed.
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Mon, 08 Feb 2021 20:12:09 +0100
parents 43cf58c69f91
children 841ca12f3359 984f6fe42708
files src/Grids/EquidistantGrid.jl test/testGrids.jl
diffstat 2 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/Grids/EquidistantGrid.jl	Mon Feb 08 18:44:44 2021 +0100
+++ b/src/Grids/EquidistantGrid.jl	Mon Feb 08 20:12:09 2021 +0100
@@ -122,10 +122,14 @@
 grid is a zero-dimensional grid.
 """
 function boundary_grid(grid::EquidistantGrid,id::CartesianBoundary)
+	dims = collect(1:dimension(grid))
+	orth_dims = dims[dims .!= dim(id)]
+	if orth_dims == dims
+		throw(DomainError("boundary identifier not matching grid"))
+	end
     dims = collect(1:dimension(grid))
     orth_dims = dims[dims .!= dim(id)]
     return restrict(grid,orth_dims)
 end
 export boundary_grid
 boundary_grid(::EquidistantGrid{1},::CartesianBoundary{1}) = EquidistantGrid((),(),())
-boundary_grid(::EquidistantGrid{1},::CartesianBoundary) = throw(DimensionMismatch("dimension of Grid and BoundaryIdentifier not matching"))
--- a/test/testGrids.jl	Mon Feb 08 18:44:44 2021 +0100
+++ b/test/testGrids.jl	Mon Feb 08 20:12:09 2021 +0100
@@ -70,7 +70,8 @@
                 (id_l, id_r) = boundary_identifiers(g)
                 @test boundary_grid(g,id_l) == EquidistantGrid((),(),())
                 @test boundary_grid(g,id_r) == EquidistantGrid((),(),())
-
+                @test_throws DomainError boundary_grid(g,CartesianBoundary{2,Lower}())
+                @test_throws DomainError boundary_grid(g,CartesianBoundary{0,Lower}())
             end
             @testset "2D" begin
                 g = EquidistantGrid((5,3),(0.0,0.0),(1.0,3.0))
@@ -79,6 +80,7 @@
                 @test boundary_grid(g,id_e) == restrict(g,2)
                 @test boundary_grid(g,id_s) == restrict(g,1)
                 @test boundary_grid(g,id_n) == restrict(g,1)
+                @test_throws DomainError boundary_grid(g,CartesianBoundary{4,Lower}())
             end
             @testset "3D" begin
                 g = EquidistantGrid((2,5,3), (0.0,0.0,0.0), (2.0,1.0,3.0))
@@ -91,6 +93,7 @@
                 @test boundary_grid(g,id_n) == restrict(g,[1,3])
                 @test boundary_grid(g,id_t) == restrict(g,[1,2])
                 @test boundary_grid(g,id_b) == restrict(g,[1,2])
+                @test_throws DomainError boundary_grid(g,CartesianBoundary{4,Lower}())
             end
     end
 end