comparison +sbp/D1Upwind.m @ 263:21a180acbd49 operator_remake

Renamed standard class to D2Standard etc, Rewrote class properties.
author Martin Almquist <martin.almquist@it.uu.se>
date Thu, 08 Sep 2016 17:50:30 +0200
parents 23051a86faa4
children 8a625c5a3633
comparison
equal deleted inserted replaced
262:23051a86faa4 263:21a180acbd49
1 classdef D1Upwind < sbp.OpSet 1 classdef D1Upwind < sbp.OpSet
2 properties 2 properties
3 norms % Struct containing norm matrices such as H,Q, M 3 D1 % SBP operator approximating first derivative
4 boundary % Struct contanging vectors for boundry point approximations 4 H % Norm matrix
5 derivatives % Struct containging differentiation operators 5 HI % H^-1
6 borrowing % Struct with borrowing limits for different norm matrices 6 Q % Skew-symmetric matrix
7 e_1 % Left boundary operator
8 e_m % Right boundary operator
7 m % Number of grid points. 9 m % Number of grid points.
8 h % Step size 10 h % Step size
11 x % grid
12 borrowing % Struct with borrowing limits for different norm matrices
9 end 13 end
10 14
11 methods 15 methods
12 function obj = D1Upwind(m,h,order) 16 function obj = D1Upwind(m,L,order)
17
18 obj.h = L/(m-1);
19 obj.x = linspace(0,L,m)';
13 20
14 switch order 21 switch order
15 case 2 22 case 2
16 [H, HI, Dp, Dm, e_1, e_m] = ... 23 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_1, obj.e_m] = ...
17 sbp.implementations.d1_upwind_2(m,h); 24 sbp.implementations.d1_upwind_2(m,obj.h);
18 case 3 25 case 3
19 [H, HI, Dp, Dm, e_1, e_m] = ... 26 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_1, obj.e_m] = ...
20 sbp.implementations.d1_upwind_3(m,h); 27 sbp.implementations.d1_upwind_3(m,obj.h);
21 case 4 28 case 4
22 [H, HI, Dp, Dm, e_1, e_m] = ... 29 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_1, obj.e_m] = ...
23 sbp.implementations.d1_upwind_4(m,h); 30 sbp.implementations.d1_upwind_4(m,obj.h);
24 case 5 31 case 5
25 [H, HI, Dp, Dm, e_1, e_m] = ... 32 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_1, obj.e_m] = ...
26 sbp.implementations.d1_upwind_5(m,h); 33 sbp.implementations.d1_upwind_5(m,obj.h);
27 case 6 34 case 6
28 [H, HI, Dp, Dm, e_1, e_m] = ... 35 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_1, obj.e_m] = ...
29 sbp.implementations.d1_upwind_6(m,h); 36 sbp.implementations.d1_upwind_6(m,obj.h);
30 case 7 37 case 7
31 [H, HI, Dp, Dm, e_1, e_m] = ... 38 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_1, obj.e_m] = ...
32 sbp.implementations.d1_upwind_7(m,h); 39 sbp.implementations.d1_upwind_7(m,obj.h);
33 case 8 40 case 8
34 [H, HI, Dp, Dm, e_1, e_m] = ... 41 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_1, obj.e_m] = ...
35 sbp.implementations.d1_upwind_8(m,h); 42 sbp.implementations.d1_upwind_8(m,obj.h);
36 case 9 43 case 9
37 [H, HI, Dp, Dm, e_1, e_m] = ... 44 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_1, obj.e_m] = ...
38 sbp.implementations.d1_upwind_9(m,h); 45 sbp.implementations.d1_upwind_9(m,obj.h);
39 otherwise 46 otherwise
40 error('Invalid operator order %d.',order); 47 error('Invalid operator order %d.',order);
41 end 48 end
42 49
43 obj.h = h;
44 obj.m = m; 50 obj.m = m;
51 obj.borrowing = [];
45 52
46 obj.norms.H = H;
47 obj.norms.HI = HI;
48
49 obj.boundary.e_1 = e_1;
50 obj.boundary.e_m = e_m;
51
52 obj.derivatives.Dp = Dp;
53 obj.derivatives.Dm = Dm;
54 end 53 end
55 end 54 end
56 55
57 56
58 end 57 end