diff sbpD2.jl @ 84:48079bd39969

Change to using tuples in stencils and ops
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 25 Jan 2019 15:20:40 +0100
parents 8c4cfa680e5a
children 8d505e9bc715 c0729ade65da
line wrap: on
line diff
--- a/sbpD2.jl	Thu Jan 24 13:33:07 2019 +0100
+++ b/sbpD2.jl	Fri Jan 25 15:20:40 2019 +0100
@@ -26,10 +26,10 @@
     even = 1
 end
 
-struct D2{T} <: ConstantStencilOperator
+struct D2{T,N,M,K} <: ConstantStencilOperator
     quadratureClosure::Vector{T}
-    innerStencil::Stencil
-    closureStencils::Vector{Stencil} # TBD: Should this be a tuple?
+    innerStencil::Stencil{T,N}
+    closureStencils::NTuple{M, Stencil{T,K}}
     eClosure::Vector{T}
     dClosure::Vector{T}
     parity::Parity
@@ -48,7 +48,7 @@
     width = length(innerStencilWeights)
     r = (-div(width,2), div(width,2))
 
-    innerStencil = Stencil(r, innerStencilWeights)
+    innerStencil = Stencil(r, Tuple(innerStencilWeights))
 
     # Create boundary stencils
     boundarySize = length(d["boundary_stencils"])
@@ -58,7 +58,7 @@
         stencilWeights = stringToVector(Float64, d["boundary_stencils"][i])
         width = length(stencilWeights)
         r = (1-i,width-i)
-        push!(closureStencils,Stencil(r, stencilWeights))
+        closureStencils = (closureStencils..., Stencil(r, Tuple(stencilWeights)))
     end
 
     d2 = D2(