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);