comparison SbpOperators/src/SbpOperators.jl @ 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 d119dfdd749c
children 01a67d1b8b5d
comparison
equal deleted inserted replaced
237:1c6afdcfd657 238:d56bf288b3be
101 return d2 101 return d2
102 end 102 end
103 103
104 104
105 function apply_e(op::D2, v::AbstractVector, ::Type{Lower}) 105 function apply_e(op::D2, v::AbstractVector, ::Type{Lower})
106 @boundscheck if length(v) < closureSize(op)
107 throw(BoundsError())
108 end
106 apply(op.eClosure,v,1) 109 apply(op.eClosure,v,1)
107 end 110 end
108 111
109 function apply_e(op::D2, v::AbstractVector, ::Type{Upper}) 112 function apply_e(op::D2, v::AbstractVector, ::Type{Upper})
113 @boundscheck if length(v) < closureSize(op)
114 throw(BoundsError())
115 end
110 apply(flip(op.eClosure),v,length(v)) 116 apply(flip(op.eClosure),v,length(v))
111 end 117 end
112 118
113 119
114 function apply_d(op::D2, h_inv::Real, v::AbstractVector, ::Type{Lower}) 120 function apply_d(op::D2, h_inv::Real, v::AbstractVector, ::Type{Lower})
121 @boundscheck if length(v) < closureSize(op)
122 throw(BoundsError())
123 end
115 -h_inv*apply(op.dClosure,v,1) 124 -h_inv*apply(op.dClosure,v,1)
116 end 125 end
117 126
118 function apply_d(op::D2, h_inv::Real, v::AbstractVector, ::Type{Upper}) 127 function apply_d(op::D2, h_inv::Real, v::AbstractVector, ::Type{Upper})
128 @boundscheck if length(v) < closureSize(op)
129 throw(BoundsError())
130 end
119 -h_inv*apply(flip(op.dClosure),v,length(v)) 131 -h_inv*apply(flip(op.dClosure),v,length(v))
120 end 132 end
121 133
122 function readSectionedFile(filename)::Dict{String, Vector{String}} 134 function readSectionedFile(filename)::Dict{String, Vector{String}}
123 f = open(filename) 135 f = open(filename)