Mercurial > repos > public > sbplib
diff diracDiscr.m @ 754:5264ce57b573 feature/d1_staggered
Bugfix diracDiscr to make it work for grids that are non-equidistant near boundaries.
author | Martin Almquist <malmquist@stanford.edu> |
---|---|
date | Fri, 15 Jun 2018 14:01:13 -0700 |
parents | 4ee7d15bd8e6 |
children | c70131daaa6e |
line wrap: on
line diff
--- a/diracDiscr.m Fri Jun 15 13:02:29 2018 -0700 +++ b/diracDiscr.m Fri Jun 15 14:01:13 2018 -0700 @@ -1,4 +1,4 @@ -function ret = diracDiscr(x_0in , x , m_order, s_order, H) +function ret = diracDiscr(x_0in , x , m_order, s_order, H, h) m = length(x); @@ -11,12 +11,16 @@ fnorm = diag(H); eta = abs(x-x_0in); - h = x(2)-x(1); tot = m_order+s_order; S = []; M = []; + + % Get interior grid spacing + middle = floor(m/2); + h = x(middle+1) - x(middle); + poss = find(tot*h/2 >= eta); - + % Ensure that poss is not too long if length(poss) == (tot + 2) poss = poss(2:end-1);