Mercurial > repos > public > sbplib_julia
changeset 165:9fc9167e9a4c boundary_conditions
Factor out function for geting the region of an index
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 21 May 2019 11:40:21 +0200 |
parents | 6b633624703a |
children | 89b63bdf1ea8 |
files | index.jl |
diffstat | 1 files changed, 13 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/index.jl Tue May 21 10:46:39 2019 +0200 +++ b/index.jl Tue May 21 11:40:21 2019 +0200 @@ -26,15 +26,7 @@ Base.Int(I::Index) = I.i function Index(i::Integer, boundary_width::Integer, dim_size::Integer) - if 0 < i <= boundary_width - return Index{Lower}(i) - elseif boundary_width < i <= dim_size-boundary_width - return Index{Interior}(i) - elseif dim_size-boundary_width < i <= dim_size - return Index{Upper}(i) - else - error("Bounds error") # TODO: Make this more standard - end + return Index{getregion(i,boundary_width,dim_size)}(i) end IndexTuple(t::Vararg{Tuple{T, DataType}}) where T<:Integer = Index.(t) @@ -52,6 +44,18 @@ return CartesianIndices(regions) end +function getregion(i::Integer, boundary_width::Integer, dim_size::Integer) + if 0 < i <= boundary_width + return Lower + elseif boundary_width < i <= dim_size-boundary_width + return Interior + elseif dim_size-boundary_width < i <= dim_size + return Upper + else + error("Bounds error") # TODO: Make this more standard + end +end + function getrange(gridsize::Integer, closuresize::Integer, region::DataType) if region == Lower r = 1:closuresize