comparison src/SbpOperators/stencil.jl @ 1058:c4f71d6f2d63 feature/nested_stencils

Add functions for converting the element type of nested stencils (grafted from 54e36688dab85d935058d31c82f9ec00f03637ff)
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 10 Feb 2022 10:57:00 +0100
parents 0728e84af0dc
children 004324d7ed35
comparison
equal deleted inserted replaced
1057:0728e84af0dc 1058:c4f71d6f2d63
100 function CenteredNestedStencil(weights::Vararg{NTuple{N,T}}) where {T,N} 100 function CenteredNestedStencil(weights::Vararg{NTuple{N,T}}) where {T,N}
101 inner_stencils = map(w->CenteredStencil(w...), weights) 101 inner_stencils = map(w->CenteredStencil(w...), weights)
102 return CenteredNestedStencil(inner_stencils...) 102 return CenteredNestedStencil(inner_stencils...)
103 end 103 end
104 104
105
106 # Conversion
107 function NestedStencil{T}(ns::NestedStencil) where T
108 return NestedStencil(Stencil{Stencil{T}}(ns.s))
109 end
110
111 Base.convert(::Type{NestedStencil{T}}, stencil) where T = NestedStencil{T}(stencil)
112
105 Base.eltype(::NestedStencil{T}) where T = T 113 Base.eltype(::NestedStencil{T}) where T = T
106 114
107 function flip(ns::NestedStencil) 115 function flip(ns::NestedStencil)
108 s_flip = flip(ns.s) 116 s_flip = flip(ns.s)
109 return NestedStencil(Stencil(s_flip.range, flip.(s_flip.weights))) 117 return NestedStencil(Stencil(s_flip.range, flip.(s_flip.weights)))