Mercurial > repos > public > sbplib_julia
changeset 930:ba5f4a0ec879 feature/variable_derivatives
Fix type stability for 2d operator
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Mon, 21 Feb 2022 12:57:58 +0100 |
parents | e9dd43cbd127 |
children | 720b1358e06d |
files | src/SbpOperators/volumeops/derivatives/second_derivative_variable.jl |
diffstat | 1 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/SbpOperators/volumeops/derivatives/second_derivative_variable.jl Mon Feb 21 10:34:48 2022 +0100 +++ b/src/SbpOperators/volumeops/derivatives/second_derivative_variable.jl Mon Feb 21 12:57:58 2022 +0100 @@ -112,9 +112,18 @@ dir = derivative_direction(op) i = I[dir] - r = getregion(i, closure_size(op), op.size[dir]) I = map(i->Index(i, Interior), I) - I = Base.setindex(I, Index(i, r), dir) - return LazyTensors.apply(op, v, I...) + if 0 < i <= closure_size(op) + I = Base.setindex(I, Index(i, Lower), dir) + return LazyTensors.apply(op, v, I...) + elseif closure_size(op) < i <= op.size[dir]-closure_size(op) + I = Base.setindex(I, Index(i, Interior), dir) + return LazyTensors.apply(op, v, I...) + elseif op.size[dir]-closure_size(op) < i <= op.size[dir] + I = Base.setindex(I, Index(i, Upper), dir) + return LazyTensors.apply(op, v, I...) + else + error("Bounds error") # TODO: Make this more standard + end end