comparison src/SbpOperators/boundaryops/boundary_restriction.jl @ 563:212e266043dd feature/boundary_ops

Fix region(CartesianBoundary) not returning an instance.
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Mon, 30 Nov 2020 18:34:48 +0100
parents 8f7919a9b398
children ccb41095def6
comparison
equal deleted inserted replaced
562:8f7919a9b398 563:212e266043dd
2 boundary_restriction(grid,closureStencil,boundary) 2 boundary_restriction(grid,closureStencil,boundary)
3 3
4 Creates a BoundaryRestriction operator for the specified boundary 4 Creates a BoundaryRestriction operator for the specified boundary
5 """ 5 """
6 function boundary_restriction(grid::EquidistantGrid{1,T}, closureStencil::Stencil{T,M}, boundary::CartesianBoundary{1}) where {T,M} 6 function boundary_restriction(grid::EquidistantGrid{1,T}, closureStencil::Stencil{T,M}, boundary::CartesianBoundary{1}) where {T,M}
7 r = region(boundary) 7 return e = BoundaryRestriction(grid, closureStencil, region(boundary))
8 return e = BoundaryRestriction(grid, closureStencil, r())
9 end 8 end
10 9
11 function boundary_restriction(grid::EquidistantGrid{2,T}, closureStencil::Stencil{T,M}, boundary::CartesianBoundary{1}) where {T,M} 10 function boundary_restriction(grid::EquidistantGrid{2,T}, closureStencil::Stencil{T,M}, boundary::CartesianBoundary{1}) where {T,M}
12 r = region(boundary) 11 e = BoundaryRestriction(restrict(grid, 1), closureStencil, region(boundary))
13 e = BoundaryRestriction(restrict(grid, 1), closureStencil, r())
14 I = IdentityMapping{T}(size(restrict(grid,2))) 12 I = IdentityMapping{T}(size(restrict(grid,2)))
15 return e⊗I 13 return e⊗I
16 end 14 end
17 15
18 function boundary_restriction(grid::EquidistantGrid{2,T}, closureStencil::Stencil{T,M}, boundary::CartesianBoundary{2}) where {T,M} 16 function boundary_restriction(grid::EquidistantGrid{2,T}, closureStencil::Stencil{T,M}, boundary::CartesianBoundary{2}) where {T,M}
19 r = region(boundary) 17 e = BoundaryRestriction(restrict(grid, 2), closureStencil, region(boundary))
20 e = BoundaryRestriction(restrict(grid, 2), closureStencil, r())
21 I = IdentityMapping{T}(size(restrict(grid,1))) 18 I = IdentityMapping{T}(size(restrict(grid,1)))
22 return I⊗e 19 return I⊗e
23 end 20 end
24 export boundary_restriction 21 export boundary_restriction
25 22