diff src/SbpOperators/boundaryops/boundary_restriction.jl @ 827:beae513ef8b3 operator_storage_array_of_table

Fix bug in boundary_restriction when grids and stencil does not have matching type
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 12 Jan 2022 07:45:38 +0100
parents 5eb1edef8a7b
children 86776d06b883
line wrap: on
line diff
--- a/src/SbpOperators/boundaryops/boundary_restriction.jl	Tue Dec 21 16:30:16 2021 +0100
+++ b/src/SbpOperators/boundaryops/boundary_restriction.jl	Wed Jan 12 07:45:38 2022 +0100
@@ -9,7 +9,10 @@
 On a one-dimensional `grid`, `e` is a `BoundaryOperator`. On a multi-dimensional `grid`, `e` is the inflation of
 a `BoundaryOperator`. Also see the documentation of `SbpOperators.boundary_operator(...)` for more details.
 """
-boundary_restriction(grid::EquidistantGrid, closure_stencil, boundary::CartesianBoundary) = SbpOperators.boundary_operator(grid, closure_stencil, boundary)
+function boundary_restriction(grid::EquidistantGrid, closure_stencil, boundary::CartesianBoundary)
+    converted_stencil = convert(Stencil{eltype(grid)}, closure_stencil)
+    return SbpOperators.boundary_operator(grid, converted_stencil, boundary)
+end
 boundary_restriction(grid::EquidistantGrid{1}, closure_stencil, region::Region) = boundary_restriction(grid, closure_stencil, CartesianBoundary{1,typeof(region)}())
 
 export boundary_restriction