Mercurial > repos > public > sbplib
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 |