comparison +sbp/D1Nonequidistant.m @ 1287:38653d26225c feature/boundary_optimized_grids

Make accurate/minimalBoundaryOptimizedGrid take the domain limits as input
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Wed, 01 Jul 2020 14:54:21 +0200
parents 4cb627c7fb90
children 8978521b0f06
comparison
equal deleted inserted replaced
1286:4cb627c7fb90 1287:38653d26225c
17 17
18 default_arg('option','Accurate'); 18 default_arg('option','Accurate');
19 % 'Accurate' operators are optimized for accuracy 19 % 'Accurate' operators are optimized for accuracy
20 % 'Minimal' operators have the smallest possible boundary 20 % 'Minimal' operators have the smallest possible boundary
21 % closure 21 % closure
22
23 x_l = lim{1};
24 x_r = lim{2};
25 L = x_r-x_l;
26
27 switch option 22 switch option
28 23
29 case {'Accurate','accurate','A'} 24 case {'Accurate','accurate','A'}
30 [x,h] = sbp.util.accurateBoundaryOptimizedGrid(L,m,order); 25 [x,h] = sbp.util.accurateBoundaryOptimizedGrid(lim,m,order);
31 if order == 4 26 if order == 4
32 [obj.D1,obj.H] = ... 27 [obj.D1,obj.H] = ...
33 sbp.implementations.d1_noneq_4(m,h); 28 sbp.implementations.d1_noneq_4(m,h);
34 elseif order == 6 29 elseif order == 6
35 [obj.D1,obj.H] = ... 30 [obj.D1,obj.H] = ...
46 else 41 else
47 error('Invalid operator order %d.',order); 42 error('Invalid operator order %d.',order);
48 end 43 end
49 44
50 case {'Minimal','minimal','M'} 45 case {'Minimal','minimal','M'}
51 [x,h] = sbp.util.minimalBoundaryOptimizedGrid(L,m,order); 46 [x,h] = sbp.util.minimalBoundaryOptimizedGrid(lim,m,order);
52 if order == 4 47 if order == 4
53 [obj.D1,obj.H] = ... 48 [obj.D1,obj.H] = ...
54 sbp.implementations.d1_noneq_minimal_4(m,h); 49 sbp.implementations.d1_noneq_minimal_4(m,h);
55 elseif order == 6 50 elseif order == 6
56 [obj.D1,obj.H] = ... 51 [obj.D1,obj.H] = ...
68 error('Invalid operator order %d.',order); 63 error('Invalid operator order %d.',order);
69 end 64 end
70 65
71 end 66 end
72 obj.h = h; 67 obj.h = h;
73 obj.x = x + x_l; 68 obj.x = x;
74 69
75 obj.e_l = sparse(m,1); 70 obj.e_l = sparse(m,1);
76 obj.e_r = sparse(m,1); 71 obj.e_r = sparse(m,1);
77 obj.e_l(1) = 1; 72 obj.e_l(1) = 1;
78 obj.e_r(m) = 1; 73 obj.e_r(m) = 1;