Mercurial > repos > public > sbplib_julia
comparison sbpD2.jl @ 101:19031733bbbf cell_based_test
Convert D2 to only use tuples
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 06 Feb 2019 23:08:11 +0100 |
parents | 49796ca2dfa0 |
children | 6c6979ff17f4 f01b70b81e95 |
comparison
equal
deleted
inserted
replaced
100:49796ca2dfa0 | 101:19031733bbbf |
---|---|
40 odd = -1 | 40 odd = -1 |
41 even = 1 | 41 even = 1 |
42 end | 42 end |
43 | 43 |
44 struct D2{T,N,M,K} <: ConstantStencilOperator | 44 struct D2{T,N,M,K} <: ConstantStencilOperator |
45 quadratureClosure::Vector{T} | 45 quadratureClosure::NTuple{M,T} |
46 innerStencil::Stencil{T,N} | 46 innerStencil::Stencil{T,N} |
47 closureStencils::NTuple{M, Stencil{T,K}} | 47 closureStencils::NTuple{M,Stencil{T,K}} |
48 eClosure::Vector{T} | 48 eClosure::NTuple{M,T} |
49 dClosure::Vector{T} | 49 dClosure::NTuple{M,T} |
50 parity::Parity | 50 parity::Parity |
51 end | 51 end |
52 | 52 |
53 function closureSize(D::D2)::Int | 53 function closureSize(D::D2)::Int |
54 return length(D.quadratureClosure) | 54 return length(D.quadratureClosure) |
74 width = length(stencilWeights) | 74 width = length(stencilWeights) |
75 r = (1-i,width-i) | 75 r = (1-i,width-i) |
76 closureStencils = (closureStencils..., Stencil(r, stencilWeights)) | 76 closureStencils = (closureStencils..., Stencil(r, stencilWeights)) |
77 end | 77 end |
78 | 78 |
79 quadratureClosure = pad_tuple(stringToTuple(Float64, h["closure"][1]), boundarySize) | |
80 eClosure = pad_tuple(stringToTuple(Float64, d["e"][1]), boundarySize) | |
81 dClosure = pad_tuple(stringToTuple(Float64, d["d1"][1]), boundarySize) | |
82 | |
79 d2 = D2( | 83 d2 = D2( |
80 stringToVector(Float64, h["closure"][1]), | 84 quadratureClosure, |
81 innerStencil, | 85 innerStencil, |
82 closureStencils, | 86 closureStencils, |
83 stringToVector(Float64, d["e"][1]), | 87 eClosure, |
84 stringToVector(Float64, d["d1"][1]), | 88 dClosure, |
85 even | 89 even |
86 ) | 90 ) |
87 | 91 |
88 return d2 | 92 return d2 |
89 end | 93 end |
118 end | 122 end |
119 | 123 |
120 function stringToVector(T::DataType, s::String) | 124 function stringToVector(T::DataType, s::String) |
121 return T.(eval.(Meta.parse.(split(s)))) | 125 return T.(eval.(Meta.parse.(split(s)))) |
122 end | 126 end |
127 | |
128 | |
129 function pad_tuple(t::NTuple{N, T}, n::Integer) where {N,T} | |
130 if N >= n | |
131 return t | |
132 else | |
133 return pad_tuple((t..., zero(T)), n) | |
134 end | |
135 end |