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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
98
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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