Mercurial > repos > public > sbplib
comparison +scheme/Beam.m @ 328:31d6698c1edf feature/beams
Clean up and fixing of new operators
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 28 Sep 2016 12:39:12 +0200 |
parents | 369c643b60c3 |
children | bf801c3709be |
comparison
equal
deleted
inserted
replaced
327:d24869abc7cd | 328:31d6698c1edf |
---|---|
8 | 8 |
9 h | 9 h |
10 H % Discrete norm | 10 H % Discrete norm |
11 Hi | 11 Hi |
12 | 12 |
13 e_l, e_r | 13 e_l, e_r |
14 d1_l, d1_r | 14 d1_l, d1_r |
15 d2_l, d2_r | 15 d2_l, d2_r |
16 d3_l, d3_r | 16 d3_l, d3_r |
17 gamm | 17 gamm |
18 delt | 18 delt |
24 | 24 |
25 methods | 25 methods |
26 function obj = Beam(grid, order, alpha, opsGen, opt) | 26 function obj = Beam(grid, order, alpha, opsGen, opt) |
27 default_arg('alpha', -1); | 27 default_arg('alpha', -1); |
28 | 28 |
29 % default_arg('opsGen', @sbp.D4); | |
30 default_arg('opsGen', @sbp.D4Variable); % Supposed to be better | |
29 | 31 |
30 opt_default.interface_l.tuning = 1.1; | 32 opt_default.interface_l.tuning = 1.1; |
31 opt_default.interface_l.tau = []; | 33 opt_default.interface_l.tau = []; |
32 opt_default.interface_l.sig = []; | 34 opt_default.interface_l.sig = []; |
33 opt_default.interface_r.tuning = 1.1; | 35 opt_default.interface_r.tuning = 1.1; |
34 opt_default.interface_r.tau = []; | 36 opt_default.interface_r.tau = []; |
35 opt_default.interface_r.sig = []; | 37 opt_default.interface_r.sig = []; |
36 default_struct('opt', opt_default); | 38 default_struct('opt', opt_default); |
37 | 39 |
38 | 40 |
39 % default_arg('opsGen', @sbp.Higher); | 41 |
40 default_arg('opsGen', @sbp.HigherVariable); % Supposed to be better | |
41 | 42 |
42 if ~isa(grid, 'grid.Cartesian') || grid.D() ~= 1 | 43 if ~isa(grid, 'grid.Cartesian') || grid.D() ~= 1 |
43 error('Grid must be 1d cartesian'); | 44 error('Grid must be 1d cartesian'); |
44 end | 45 end |
45 | 46 |
48 obj.alpha = alpha; | 49 obj.alpha = alpha; |
49 | 50 |
50 m = grid.m; | 51 m = grid.m; |
51 h = grid.scaling(); | 52 h = grid.scaling(); |
52 | 53 |
53 ops = opsGen(m, h, order); | 54 x_lim = {grid.x{1}(1), grid.x{1}(end)}; |
54 | 55 ops = opsGen(m, x_lim, order); |
55 I = speye(m); | 56 |
56 | 57 D4 = ops.D4; |
57 D4 = sparse(ops.derivatives.D4); | 58 obj.H = ops.H; |
58 obj.H = sparse(ops.norms.H); | 59 obj.Hi = ops.HI; |
59 obj.Hi = sparse(ops.norms.HI); | 60 obj.e_l = ops.e_l; |
60 obj.e_l = sparse(ops.boundary.e_1); | 61 obj.e_r = ops.e_r; |
61 obj.e_r = sparse(ops.boundary.e_m); | 62 obj.d1_l = ops.d1_l; |
62 obj.d1_l = sparse(ops.boundary.S_1); | 63 obj.d1_r = ops.d1_r; |
63 obj.d1_r = sparse(ops.boundary.S_m); | 64 obj.d2_l = ops.d2_l; |
64 obj.d2_l = sparse(ops.boundary.S2_1); | 65 obj.d2_r = ops.d2_r; |
65 obj.d2_r = sparse(ops.boundary.S2_m); | 66 obj.d3_l = ops.d3_l; |
66 obj.d3_l = sparse(ops.boundary.S3_1); | 67 obj.d3_r = ops.d3_r; |
67 obj.d3_r = sparse(ops.boundary.S3_m); | |
68 | 68 |
69 obj.D = alpha*D4; | 69 obj.D = alpha*D4; |
70 | 70 |
71 alphaII = ops.borrowing.N.S2/2; | 71 alphaII = ops.borrowing.N.S2/2; |
72 alphaIII = ops.borrowing.N.S3/2; | 72 alphaIII = ops.borrowing.N.S3/2; |
73 | 73 |
74 obj.gamm = h*alphaII; | 74 obj.gamm = h*alphaII; |
75 obj.delt = h^3*alphaIII; | 75 obj.delt = h^3*alphaIII; |
76 obj.alphaII = alphaII; | 76 obj.alphaII = alphaII; |