comparison +sbp/D1Nonequidistant.m @ 396:3fdfad20037e feature/SBPinTimeClarity

Remove whitespace.
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 02 Feb 2017 09:46:22 +0100
parents 4b9310edcdf8
children 4fd5bfe5d0bb
comparison
equal deleted inserted replaced
378:18525f1bb941 396:3fdfad20037e
9 m % Number of grid points. 9 m % Number of grid points.
10 h % Step size 10 h % Step size
11 x % grid 11 x % grid
12 borrowing % Struct with borrowing limits for different norm matrices 12 borrowing % Struct with borrowing limits for different norm matrices
13 end 13 end
14 14
15 methods 15 methods
16 function obj = D1Nonequidistant(m,lim,order,option) 16 function obj = D1Nonequidistant(m,lim,order,option)
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 22
23 x_l = lim{1}; 23 x_l = lim{1};
24 x_r = lim{2}; 24 x_r = lim{2};
25 L = x_r-x_l; 25 L = x_r-x_l;
26 26
27 switch option 27 switch option
28 28
29 case {'Accurate','accurate','A'} 29 case {'Accurate','accurate','A'}
30 30
31 if order == 4 31 if order == 4
32 [obj.D1,obj.H,obj.x,obj.h] = ... 32 [obj.D1,obj.H,obj.x,obj.h] = ...
33 sbp.implementations.d1_noneq_4(m,L); 33 sbp.implementations.d1_noneq_4(m,L);
34 elseif order == 6 34 elseif order == 6
35 [obj.D1,obj.H,obj.x,obj.h] = ... 35 [obj.D1,obj.H,obj.x,obj.h] = ...
44 [obj.D1,obj.H,obj.x,obj.h] = ... 44 [obj.D1,obj.H,obj.x,obj.h] = ...
45 sbp.implementations.d1_noneq_12(m,L); 45 sbp.implementations.d1_noneq_12(m,L);
46 else 46 else
47 error('Invalid operator order %d.',order); 47 error('Invalid operator order %d.',order);
48 end 48 end
49 49
50 case {'Minimal','minimal','M'} 50 case {'Minimal','minimal','M'}
51 51
52 if order == 4 52 if order == 4
53 [obj.D1,obj.H,obj.x,obj.h] = ... 53 [obj.D1,obj.H,obj.x,obj.h] = ...
54 sbp.implementations.d1_noneq_minimal_4(m,L); 54 sbp.implementations.d1_noneq_minimal_4(m,L);
55 elseif order == 6 55 elseif order == 6
56 [obj.D1,obj.H,obj.x,obj.h] = ... 56 [obj.D1,obj.H,obj.x,obj.h] = ...
65 [obj.D1,obj.H,obj.x,obj.h] = ... 65 [obj.D1,obj.H,obj.x,obj.h] = ...
66 sbp.implementations.d1_noneq_minimal_12(m,L); 66 sbp.implementations.d1_noneq_minimal_12(m,L);
67 else 67 else
68 error('Invalid operator order %d.',order); 68 error('Invalid operator order %d.',order);
69 end 69 end
70 70
71 end 71 end
72 72
73 obj.x = obj.x + x_l; 73 obj.x = obj.x + x_l;
74 74
75 obj.e_l = sparse(m,1); 75 obj.e_l = sparse(m,1);
76 obj.e_r = sparse(m,1); 76 obj.e_r = sparse(m,1);
77 obj.e_l(1) = 1; 77 obj.e_l(1) = 1;
78 obj.e_r(m) = 1; 78 obj.e_r(m) = 1;
79 79
80 obj.HI = inv(obj.H); 80 obj.HI = inv(obj.H);
81 obj.Q = obj.H*obj.D1 - obj.e_r*obj.e_r' + obj.e_l*obj.e_l'; 81 obj.Q = obj.H*obj.D1 - obj.e_r*obj.e_r' + obj.e_l*obj.e_l';
82 82
83 obj.borrowing = []; 83 obj.borrowing = [];
84 84
85 end 85 end
86 end 86 end
87 87
88 88
89 end 89 end
90 90
91 91
92 92