comparison +sbp/D1Upwind.m @ 307:fefb2f9884f7 feature/beams

Merge with default.
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 23 Sep 2016 10:40:12 +0200
parents 4b9310edcdf8
children f39f98b59f61
comparison
equal deleted inserted replaced
306:8368beb0d1b3 307:fefb2f9884f7
1 classdef D1Upwind < sbp.OpSet
2 properties
3 D1 % SBP operator approximating first derivative
4 H % Norm matrix
5 HI % H^-1
6 Q % Skew-symmetric matrix
7 e_l % Left boundary operator
8 e_r % Right boundary operator
9 m % Number of grid points.
10 h % Step size
11 x % grid
12 borrowing % Struct with borrowing limits for different norm matrices
13 end
14
15 methods
16 function obj = D1Upwind(m,lim,order)
17
18 x_l = lim{1};
19 x_r = lim{2};
20 L = x_r-x_l;
21 obj.h = L/(m-1);
22 obj.x = linspace(x_l,x_r,m)';
23
24 switch order
25 case 2
26 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_l, obj.e_r] = ...
27 sbp.implementations.d1_upwind_2(m,obj.h);
28 case 3
29 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_l, obj.e_r] = ...
30 sbp.implementations.d1_upwind_3(m,obj.h);
31 case 4
32 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_l, obj.e_r] = ...
33 sbp.implementations.d1_upwind_4(m,obj.h);
34 case 5
35 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_l, obj.e_r] = ...
36 sbp.implementations.d1_upwind_5(m,obj.h);
37 case 6
38 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_l, obj.e_r] = ...
39 sbp.implementations.d1_upwind_6(m,obj.h);
40 case 7
41 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_l, obj.e_r] = ...
42 sbp.implementations.d1_upwind_7(m,obj.h);
43 case 8
44 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_l, obj.e_r] = ...
45 sbp.implementations.d1_upwind_8(m,obj.h);
46 case 9
47 [obj.H, obj.HI, obj.Dp, obj.Dm, obj.e_l, obj.e_r] = ...
48 sbp.implementations.d1_upwind_9(m,obj.h);
49 otherwise
50 error('Invalid operator order %d.',order);
51 end
52
53 obj.m = m;
54 obj.borrowing = [];
55
56 end
57 end
58
59
60 end
61
62
63
64
65