Mercurial > repos > public > sbplib_julia
comparison 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 |
comparison
equal
deleted
inserted
replaced
77:2be36b38389d | 84:48079bd39969 |
---|---|
24 @enum Parity begin | 24 @enum Parity begin |
25 odd = -1 | 25 odd = -1 |
26 even = 1 | 26 even = 1 |
27 end | 27 end |
28 | 28 |
29 struct D2{T} <: ConstantStencilOperator | 29 struct D2{T,N,M,K} <: ConstantStencilOperator |
30 quadratureClosure::Vector{T} | 30 quadratureClosure::Vector{T} |
31 innerStencil::Stencil | 31 innerStencil::Stencil{T,N} |
32 closureStencils::Vector{Stencil} # TBD: Should this be a tuple? | 32 closureStencils::NTuple{M, Stencil{T,K}} |
33 eClosure::Vector{T} | 33 eClosure::Vector{T} |
34 dClosure::Vector{T} | 34 dClosure::Vector{T} |
35 parity::Parity | 35 parity::Parity |
36 end | 36 end |
37 | 37 |
46 # Create inner stencil | 46 # Create inner stencil |
47 innerStencilWeights = stringToVector(Float64, d["inner_stencil"][1]) | 47 innerStencilWeights = stringToVector(Float64, d["inner_stencil"][1]) |
48 width = length(innerStencilWeights) | 48 width = length(innerStencilWeights) |
49 r = (-div(width,2), div(width,2)) | 49 r = (-div(width,2), div(width,2)) |
50 | 50 |
51 innerStencil = Stencil(r, innerStencilWeights) | 51 innerStencil = Stencil(r, Tuple(innerStencilWeights)) |
52 | 52 |
53 # Create boundary stencils | 53 # Create boundary stencils |
54 boundarySize = length(d["boundary_stencils"]) | 54 boundarySize = length(d["boundary_stencils"]) |
55 closureStencils = Vector{Stencil}() | 55 closureStencils = Vector{Stencil}() |
56 | 56 |
57 for i ∈ 1:boundarySize | 57 for i ∈ 1:boundarySize |
58 stencilWeights = stringToVector(Float64, d["boundary_stencils"][i]) | 58 stencilWeights = stringToVector(Float64, d["boundary_stencils"][i]) |
59 width = length(stencilWeights) | 59 width = length(stencilWeights) |
60 r = (1-i,width-i) | 60 r = (1-i,width-i) |
61 push!(closureStencils,Stencil(r, stencilWeights)) | 61 closureStencils = (closureStencils..., Stencil(r, Tuple(stencilWeights))) |
62 end | 62 end |
63 | 63 |
64 d2 = D2( | 64 d2 = D2( |
65 stringToVector(Float64, h["closure"][1]), | 65 stringToVector(Float64, h["closure"][1]), |
66 innerStencil, | 66 innerStencil, |