changeset 238:d56bf288b3be boundary_conditions

Add boundschecks for boundary operators
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 26 Jun 2019 20:01:10 +0200
parents 1c6afdcfd657
children 60011a10e17d
files SbpOperators/src/SbpOperators.jl
diffstat 1 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/SbpOperators/src/SbpOperators.jl	Wed Jun 26 19:51:36 2019 +0200
+++ b/SbpOperators/src/SbpOperators.jl	Wed Jun 26 20:01:10 2019 +0200
@@ -103,19 +103,31 @@
 
 
 function apply_e(op::D2, v::AbstractVector, ::Type{Lower})
+    @boundscheck if length(v) < closureSize(op)
+        throw(BoundsError())
+    end
     apply(op.eClosure,v,1)
 end
 
 function apply_e(op::D2, v::AbstractVector, ::Type{Upper})
+    @boundscheck if length(v) < closureSize(op)
+        throw(BoundsError())
+    end
     apply(flip(op.eClosure),v,length(v))
 end
 
 
 function apply_d(op::D2, h_inv::Real, v::AbstractVector, ::Type{Lower})
+    @boundscheck if length(v) < closureSize(op)
+        throw(BoundsError())
+    end
     -h_inv*apply(op.dClosure,v,1)
 end
 
 function apply_d(op::D2, h_inv::Real, v::AbstractVector, ::Type{Upper})
+    @boundscheck if length(v) < closureSize(op)
+        throw(BoundsError())
+    end
     -h_inv*apply(flip(op.dClosure),v,length(v))
 end