annotate +sbp/D2BlockNorm.m @ 266:bfa130b7abf6 operator_remake

Added error message for too few grid points to all implementation files.
author Martin Almquist <martin.almquist@it.uu.se>
date Fri, 09 Sep 2016 11:03:13 +0200
parents 8a625c5a3633
children 4b9310edcdf8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
252
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
1 classdef D2BlockNorm < sbp.OpSet
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
2 properties
263
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
3 D1 % SBP operator approximating first derivative
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
4 H % Norm matrix
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
5 HI % H^-1
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
6 Q % Skew-symmetric matrix
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
7 e_1 % Left boundary operator
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
8 e_m % Right boundary operator
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
9 D2 % SBP operator for second derivative
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
10 M % Norm matrix, second derivative
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
11 S_1 % Left boundary first derivative
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
12 S_m % Right boundary first derivative
252
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
13 m % Number of grid points.
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
14 h % Step size
263
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
15 x % grid
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
16 borrowing % Struct with borrowing limits for different norm matrices
252
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
17 end
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
18
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
19
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
20
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
21 methods
264
8a625c5a3633 Changed input parameter L (domain length) to lim (cell with domain boundaries)
Martin Almquist <martin.almquist@it.uu.se>
parents: 263
diff changeset
22 function obj = D2BlockNorm(m,lim,order)
263
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
23
264
8a625c5a3633 Changed input parameter L (domain length) to lim (cell with domain boundaries)
Martin Almquist <martin.almquist@it.uu.se>
parents: 263
diff changeset
24 x_l = lim{1};
8a625c5a3633 Changed input parameter L (domain length) to lim (cell with domain boundaries)
Martin Almquist <martin.almquist@it.uu.se>
parents: 263
diff changeset
25 x_r = lim{2};
8a625c5a3633 Changed input parameter L (domain length) to lim (cell with domain boundaries)
Martin Almquist <martin.almquist@it.uu.se>
parents: 263
diff changeset
26 L = x_r-x_l;
263
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
27 obj.h = L/(m-1);
264
8a625c5a3633 Changed input parameter L (domain length) to lim (cell with domain boundaries)
Martin Almquist <martin.almquist@it.uu.se>
parents: 263
diff changeset
28 obj.x = linspace(x_l,x_r,m)';
252
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
29
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
30 if order == 4
263
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
31 [obj.H, obj.HI, obj.D1, obj.D2, obj.e_1,...
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
32 obj.e_m, obj.M, obj.Q, obj.S_1, obj.S_m] = ...
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
33 sbp.implementations.d2_blocknorm_4(m,obj.h);
252
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
34 elseif order == 6
263
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
35 [obj.H, obj.HI, obj.D1, obj.D2, obj.e_1,...
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
36 obj.e_m, obj.M, obj.Q, obj.S_1, obj.S_m] = ...
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
37 sbp.implementations.d2_blocknorm_6(m,obj.h);
252
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
38 elseif order == 8
263
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
39 [obj.H, obj.HI, obj.D1, obj.D2, obj.e_1,...
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
40 obj.e_m, obj.M, obj.Q, obj.S_1, obj.S_m] = ...
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
41 sbp.implementations.d2_blocknorm_8(m,obj.h);
252
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
42 elseif order == 10
263
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
43 [obj.H, obj.HI, obj.D1, obj.D2, obj.e_1,...
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
44 obj.e_m, obj.M, obj.Q, obj.S_1, obj.S_m] = ...
21a180acbd49 Renamed standard class to D2Standard etc, Rewrote class properties.
Martin Almquist <martin.almquist@it.uu.se>
parents: 262
diff changeset
45 sbp.implementations.d2_blocknorm_10(m,obj.h);
252
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
46 else
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
47 error('Invalid operator order %d.',order);
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
48 end
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
49
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
50 obj.m = m;
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
51
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
52 end
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
53 end
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
54
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
55
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
56
07fa0d6a05bb Renamned class files and added nonequidistant operators.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
57 end