Mercurial > repos > public > sbplib
annotate +util/calc_borrowing.m @ 1347:ac54767ae1fb feature/poroelastic tip
Add interface, not fully compatible.
author | Martin Almquist <martin.almquist@it.uu.se> |
---|---|
date | Tue, 30 Apr 2024 14:58:35 +0200 |
parents | d24869abc7cd |
children |
rev | line source |
---|---|
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
1 function calc_borrowing(m, h) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
2 default_arg('m',100); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
3 default_arg('h',1); |
0 | 4 |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
5 operators = { |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
6 { |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
7 'd4_lonely', getM4_lonely, { |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
8 {4, 'min_boundary_points'}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
9 {6, 'min_boundary_points'}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
10 {6, '2'}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
11 {6, '3'}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
12 {8, 'min_boundary_points'}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
13 {8, 'higher_boundary_order'}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
14 } |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
15 }, { |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
16 'd4_variable', { |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
17 {2}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
18 {4}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
19 {6}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
20 } |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
21 } |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
22 % BORKEN BAD IDEA |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
23 } |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
24 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
25 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
26 for i = 1:operators |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
27 baseName = operators{i}{1}; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
28 postFixes = operators{i}{2}; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
29 for pf = postFixes |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
30 [a2, a3] = borrowFromD4(m, h, l{:}); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
31 end |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
32 end |
0 | 33 |
34 | |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
35 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
36 lonely = { |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
37 {4, 'min_boundary_points'}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
38 {6, 'min_boundary_points'}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
39 {6, '2'}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
40 {6, '3'}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
41 {8, 'min_boundary_points'}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
42 {8, 'higher_boundary_order'}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
43 }; |
0 | 44 |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
45 for i = 1:length(lonely) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
46 l = lonely{i}; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
47 [a2, a3] = d4_lonely(m, h, l{:}); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
48 fprintf('d4_lonely %d %s\n', l{:}) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
49 fprintf('\t alpha_II = %f\n', a2) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
50 fprintf('\t alpha_III = %f\n', a3) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
51 fprintf('\n') |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
52 end |
0 | 53 |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
54 variable = { |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
55 {2}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
56 {4}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
57 {6}, |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
58 }; |
0 | 59 |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
60 for i = 1:length(variable) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
61 l = variable{i}; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
62 [a2, a3] = d4_variable(m, h, l{:}); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
63 fprintf('d4_variable %d\n', l{:}) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
64 fprintf('\t alpha_II = %f\n', a2) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
65 fprintf('\t alpha_III = %f\n', a3) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
66 fprintf('\n') |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
67 end |
0 | 68 |
69 | |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
70 %% 4th order non-compatible |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
71 [H, HI, D1, D2, D3, D4, e_1, e_m, M, M4,Q, Q3, S2_1, S2_m, S3_1, S3_m, S_1, S_m] = sbp.higher4(m,h); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
72 S1 = S_1*S_1' + S_m*S_m'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
73 S2 = S2_1*S2_1' + S2_m*S2_m'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
74 S3 = S3_1*S3_1' + S3_m*S3_m'; |
0 | 75 |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
76 alpha_I = util.matrixborrow(M4, h^-1*S1 ); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
77 alpha_II = util.matrixborrow(M4, h*S2 ); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
78 alpha_III = util.matrixborrow(M4, h^3*S3); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
79 fprintf('4th order non-compatible\n') |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
80 fprintf('alpha_I1: %.10f\n',alpha_I) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
81 fprintf('alpha_II: %.10f\n',alpha_II) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
82 fprintf('alpha_III: %.10f\n',alpha_III) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
83 fprintf('\n') |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
84 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
85 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
86 %% 6th order non-compatible |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
87 [H, HI, D1, D2, D3, D4, e_1, e_m, M, M4,Q, Q3, S2_1, S2_m, S3_1, S3_m, S_1, S_m] = sbp.higher6(m,h); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
88 S1 = S_1*S_1' + S_m*S_m'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
89 S2 = S2_1*S2_1' + S2_m*S2_m'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
90 S3 = S3_1*S3_1' + S3_m*S3_m'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
91 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
92 alpha_II = util.matrixborrow(M4, h*S2 ); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
93 alpha_III = util.matrixborrow(M4, h^3*S3); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
94 fprintf('6th order non-compatible\n') |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
95 fprintf('alpha_II: %.10f\n',alpha_II) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
96 fprintf('alpha_III: %.10f\n',alpha_III) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
97 fprintf('\n') |
0 | 98 |
99 | |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
100 %% 2nd order compatible |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
101 [H, HI, D1, D4, e_1, e_m, M4, Q, S2_1, S2_m, S3_1, S3_m, S_1, S_m] = sbp.higher_compatible2(m,h); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
102 S1 = S_1*S_1' + S_m*S_m'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
103 S2 = S2_1*S2_1' + S2_m*S2_m'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
104 S3 = S3_1*S3_1' + S3_m*S3_m'; |
0 | 105 |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
106 alpha_II = util.matrixborrow(M4, h*S2 ); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
107 alpha_III = util.matrixborrow(M4, h^3*S3); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
108 fprintf('2nd order compatible\n') |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
109 fprintf('alpha_II: %.10f\n',alpha_II) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
110 fprintf('alpha_III: %.10f\n',alpha_III) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
111 fprintf('\n') |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
112 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
113 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
114 %% 4th order compatible |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
115 [H, HI, D1, D4, e_1, e_m, M4, Q, S2_1, S2_m, S3_1, S3_m, S_1, S_m] = sbp.higher_compatible4(m,h); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
116 S1 = S_1*S_1' + S_m*S_m'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
117 S2 = S2_1*S2_1' + S2_m*S2_m'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
118 S3 = S3_1*S3_1' + S3_m*S3_m'; |
0 | 119 |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
120 alpha_II = util.matrixborrow(M4, h*S2 ); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
121 alpha_III = util.matrixborrow(M4, h^3*S3); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
122 fprintf('4th order compatible\n') |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
123 fprintf('alpha_II: %.10f\n',alpha_II) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
124 fprintf('alpha_III: %.10f\n',alpha_III) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
125 fprintf('\n') |
0 | 126 |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
127 %% 6th order compatible |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
128 [H, HI, D1, D4, e_1, e_m, M4, Q, S2_1, S2_m, S3_1, S3_m, S_1, S_m] = sbp.higher_compatible6(m,h); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
129 S1 = S_1*S_1' + S_m*S_m'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
130 S2 = S2_1*S2_1' + S2_m*S2_m'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
131 S3 = S3_1*S3_1' + S3_m*S3_m'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
132 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
133 alpha_II = util.matrixborrow(M4, h*S2 ); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
134 alpha_III = util.matrixborrow(M4, h^3*S3); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
135 fprintf('6th order compatible\n') |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
136 fprintf('alpha_II: %.10f\n',alpha_II) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
137 fprintf('alpha_III: %.10f\n',alpha_III) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
138 fprintf('\n') |
147
03151dd46534
Fixed function name bug in calc_borrowing and added ordinary operators.
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
139 |
03151dd46534
Fixed function name bug in calc_borrowing and added ordinary operators.
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
140 |
03151dd46534
Fixed function name bug in calc_borrowing and added ordinary operators.
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
141 |
03151dd46534
Fixed function name bug in calc_borrowing and added ordinary operators.
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
142 |
03151dd46534
Fixed function name bug in calc_borrowing and added ordinary operators.
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
143 |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
144 % Ordinary |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
145 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
146 for order = [2 4 6 8 10] |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
147 op = sbp.Ordinary(m,h, order); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
148 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
149 S_1 = op.boundary.S_1; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
150 S_m = op.boundary.S_m; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
151 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
152 M = op.norms.M; |
147
03151dd46534
Fixed function name bug in calc_borrowing and added ordinary operators.
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
153 |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
154 S1 = S_1*S_1' + S_m*S_m'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
155 alpha = util.matrixborrow(M, h*S1); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
156 fprintf('%dth order Ordinary\n', order) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
157 fprintf('alpha: %.10f\n', alpha) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
158 fprintf('\n') |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
159 end |
147
03151dd46534
Fixed function name bug in calc_borrowing and added ordinary operators.
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
160 |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
161 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
162 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
163 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
164 end |
147
03151dd46534
Fixed function name bug in calc_borrowing and added ordinary operators.
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
165 |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
166 function [alpha_II, alpha_III] = d4_lonely(m, h, order, modifier) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
167 default_arg('modifier', []) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
168 func = sprintf('sbp.implementations.d4_lonely_%d', order); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
169 if ~isempty(modifier) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
170 func = sprintf('%s_%s', func, modifier); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
171 end |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
172 funcCall = sprintf('%s(%s,%s)', func, toString(m), toString(h)); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
173 [H, HI, D4, e_l, e_r, M4, d2_l, d2_r, d3_l, d3_r, d1_l, d1_r] = eval(funcCall); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
174 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
175 d2d2 = d2_l*d2_l' + d2_r*d2_r'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
176 alpha_II = util.matrixborrow(M4, h*d2d2); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
177 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
178 d3d3 = d3_l*d3_l' + d3_r*d3_r'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
179 alpha_III = util.matrixborrow(M4, h^3*d3d3); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
180 end |
147
03151dd46534
Fixed function name bug in calc_borrowing and added ordinary operators.
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
181 |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
182 function [alpha_II, alpha_III] = d4_variable(m, h, order) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
183 default_arg('modifier', []) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
184 func = sprintf('sbp.implementations.d4_variable_%d', order); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
185 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
186 funcCall = sprintf('%s(%s,%s)', func, toString(m), toString(h)); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
187 [H, HI, D1, D2, D4, e_l, e_r, M4, d2_l, d2_r, d3_l, d3_r, d1_l, d1_r] = eval(funcCall); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
188 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
189 d2d2 = d2_l*d2_l' + d2_r*d2_r'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
190 alpha_II = util.matrixborrow(M4, h*d2d2); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
191 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
192 d3d3 = d3_l*d3_l' + d3_r*d3_r'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
193 alpha_III = util.matrixborrow(M4, h^3*d3d3); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
194 end |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
195 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
196 function [d2_l, d2_r, d3_l, d3_r, M4] = getM4_lonely(m, h, order, modifier) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
197 fStr = getFunctionCallStr('d4_lonely', {order, modifier}, {m ,h}); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
198 [H, HI, D4, e_l, e_r, M4, d2_l, d2_r, d3_l, d3_r, d1_l, d1_r] = eval(funcCall); |
147
03151dd46534
Fixed function name bug in calc_borrowing and added ordinary operators.
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
199 end |
03151dd46534
Fixed function name bug in calc_borrowing and added ordinary operators.
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
200 |
03151dd46534
Fixed function name bug in calc_borrowing and added ordinary operators.
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
201 |
327
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
202 % Calculates the borrowing constants for a D4 operator. |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
203 % getM4 is a function handle on the form |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
204 % [d2_l, d2_r, d3_l, d3_r, M4] = getM4(m,h) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
205 function [a2, a3] = borrowFromD4(m, h, getM4) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
206 [d2_l, d2_r, d3_l, d3_r, M4] = getM4(m, h); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
207 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
208 d2d2 = d2_l*d2_l' + d2_r*d2_r'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
209 a2 = util.matrixborrow(M4, h*d2d2); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
210 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
211 d3d3 = d3_l*d3_l' + d3_r*d3_r'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
212 a3 = util.matrixborrow(M4, h^3*d3d3); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
213 end |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
214 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
215 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
216 function funcCallStr = getFunctionCallStr(baseName, postFix, parameters) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
217 default_arg('postFix', []) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
218 default_arg('parameters', []) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
219 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
220 funcCallStr = sprintf('sbp.implementations.%s', baseName); |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
221 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
222 for i = 1:length(postFix) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
223 if ischar(postFix{i}) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
224 funcCallStr = [funcCallStr '_' postFix{i}]; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
225 else |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
226 funcCallStr = [funcCallStr '_' toString(postFix{i})]; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
227 end |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
228 end |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
229 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
230 if isempty(parameters) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
231 return |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
232 end |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
233 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
234 funcCallStr = [funcCallStr '(' toString(parameters{1})]; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
235 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
236 for i = 2:length(parameters) |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
237 funcCallStr = [funcCallStr ', ' toString(parameters{i})]; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
238 end |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
239 |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
240 funcCallStr = [funcCallStr ')'; |
d24869abc7cd
Calculated borrowin for D4Lonely.
Jonatan Werpers <jonatan@werpers.com>
parents:
212
diff
changeset
|
241 end |