annotate +sbp/+implementations/d2_variable_4.m @ 1037:2d7ba44340d0 feature/burgers1d

Pass scheme specific parameters as cell array. This will enabale constructDiffOps to be more general. In addition, allow for schemes returning function handles as diffOps, which is currently how non-linear schemes such as Burgers1d are implemented.
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Fri, 18 Jan 2019 09:02:02 +0100
parents 43d02533bea3
children b758d1cf4c8e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
1 function [H, HI, D1, D2, e_l, e_r, d1_l, d1_r] = d2_variable_4(m,h)
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
2
341
43d02533bea3 Fixed error in boundary point check.
Jonatan Werpers <jonatan@werpers.com>
parents: 303
diff changeset
3 BP = 6;
266
bfa130b7abf6 Added error message for too few grid points to all implementation files.
Martin Almquist <martin.almquist@it.uu.se>
parents: 261
diff changeset
4 if(m<2*BP)
bfa130b7abf6 Added error message for too few grid points to all implementation files.
Martin Almquist <martin.almquist@it.uu.se>
parents: 261
diff changeset
5 error(['Operator requires at least ' num2str(2*BP) ' grid points']);
bfa130b7abf6 Added error message for too few grid points to all implementation files.
Martin Almquist <martin.almquist@it.uu.se>
parents: 261
diff changeset
6 end
bfa130b7abf6 Added error message for too few grid points to all implementation files.
Martin Almquist <martin.almquist@it.uu.se>
parents: 261
diff changeset
7
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
8
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
9
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
10
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
11 % Norm
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
12 Hv = ones(m,1);
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
13 Hv(1:4) = [17/48 59/48 43/48 49/48];
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
14 Hv(m-3:m) = rot90(Hv(1:4),2);
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
15 Hv = h*Hv;
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
16 H = spdiag(Hv, 0);
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
17 HI = spdiag(1./Hv, 0);
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
18
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
19
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
20 % Boundary operators
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
21 e_l = sparse(m,1);
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
22 e_l(1) = 1;
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
23 e_r = rot90(e_l, 2);
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
24
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
25 d1_l = sparse(m,1);
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
26 d1_l(1:4) = 1/h*[-11/6 3 -3/2 1/3];
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
27 d1_r = -rot90(d1_l, 2);
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
28
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
29
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
30
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
31
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
32 S = d1_l*d1_l' + d1_r*d1_r';
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
33
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
34 stencil = [1/12 -2/3 0 2/3 -1/12];
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
35 diags = -2:2;
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
36
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
37 Q_U = [
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
38 0 0.59e2/0.96e2 -0.1e1/0.12e2 -0.1e1/0.32e2;
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
39 -0.59e2/0.96e2 0 0.59e2/0.96e2 0;
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
40 0.1e1/0.12e2 -0.59e2/0.96e2 0 0.59e2/0.96e2;
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
41 0.1e1/0.32e2 0 -0.59e2/0.96e2 0;
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
42 ];
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
43
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
44 Q = stripeMatrix(stencil, diags, m);
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
45 Q(1:4,1:4) = Q_U;
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
46 Q(m-3:m,m-3:m) = -rot90(Q_U, 2);
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
47
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
48 D1 = HI*(Q - 1/2*e_l*e_l' + 1/2*e_r*e_r');
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
49
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
50
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
51 N = m;
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
52 function D2 = D2_fun(c)
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
53 M = 78+(N-12)*5;
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
54 %h = 1/(N-1);
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
55
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
56
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
57 U = [
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
58 48/(17)*(0.12e2/0.17e2 * c(1) + 0.59e2/0.192e3 * c(2) + 0.27010400129e11/0.345067064608e12 * c(3) + 0.69462376031e11/0.2070402387648e13 * c(4)) 48/(17)*(-0.59e2/0.68e2 * c(1) - 0.6025413881e10/0.21126554976e11 * c(3) - 0.537416663e9/0.7042184992e10 * c(4)) 48/(17)*(0.2e1/0.17e2 * c(1) - 0.59e2/0.192e3 * c(2) + 0.213318005e9/0.16049630912e11 * c(4) + 0.2083938599e10/0.8024815456e10 * c(3)) 48/(17)*(0.3e1/0.68e2 * c(1) - 0.1244724001e10/0.21126554976e11 * c(3) + 0.752806667e9/0.21126554976e11 * c(4)) 48/(17)*(0.49579087e8/0.10149031312e11 * c(3) - 0.49579087e8/0.10149031312e11 * c(4)) 48/(17)*(-c(4)/0.784e3 + c(3)/0.784e3);...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
59 48/(59)*(-0.59e2/0.68e2 * c(1) - 0.6025413881e10/0.21126554976e11 * c(3) - 0.537416663e9/0.7042184992e10 * c(4)) 48/(59)*(0.3481e4/0.3264e4 * c(1) + 0.9258282831623875e16/0.7669235228057664e16 * c(3) + 0.236024329996203e15/0.1278205871342944e16 * c(4)) 48/(59)*(-0.59e2/0.408e3 * c(1) - 0.29294615794607e14/0.29725717938208e14 * c(3) - 0.2944673881023e13/0.29725717938208e14 * c(4)) 48/(59)*(-0.59e2/0.1088e4 * c(1) + 0.260297319232891e15/0.2556411742685888e16 * c(3) - 0.60834186813841e14/0.1278205871342944e16 * c(4)) 48/(59)*(-0.1328188692663e13/0.37594290333616e14 * c(3) + 0.1328188692663e13/0.37594290333616e14 * c(4)) 48/(59)*(-0.8673e4/0.2904112e7 * c(3) + 0.8673e4/0.2904112e7 * c(4));...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
60 48/(43)*(0.2e1/0.17e2 * c(1) - 0.59e2/0.192e3 * c(2) + 0.213318005e9/0.16049630912e11 * c(4) + 0.2083938599e10/0.8024815456e10 * c(3)) 48/(43)*(-0.59e2/0.408e3 * c(1) - 0.29294615794607e14/0.29725717938208e14 * c(3) - 0.2944673881023e13/0.29725717938208e14 * c(4)) 48/(43)*(c(1)/0.51e2 + 0.59e2/0.192e3 * c(2) + 0.13777050223300597e17/0.26218083221499456e17 * c(4) + 0.564461e6/0.13384296e8 * c(5) + 0.378288882302546512209e21/0.270764341349677687456e21 * c(3)) 48/(43)*(c(1)/0.136e3 - 0.125059e6/0.743572e6 * c(5) - 0.4836340090442187227e19/0.5525802884687299744e19 * c(3) - 0.17220493277981e14/0.89177153814624e14 * c(4)) 48/(43)*(-0.10532412077335e14/0.42840005263888e14 * c(4) + 0.1613976761032884305e19/0.7963657098519931984e19 * c(3) + 0.564461e6/0.4461432e7 * c(5)) 48/(43)*(-0.960119e6/0.1280713392e10 * c(4) - 0.3391e4/0.6692148e7 * c(5) + 0.33235054191e11/0.26452850508784e14 * c(3));...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
61 48/(49)*(0.3e1/0.68e2 * c(1) - 0.1244724001e10/0.21126554976e11 * c(3) + 0.752806667e9/0.21126554976e11 * c(4)) 48/(49)*(-0.59e2/0.1088e4 * c(1) + 0.260297319232891e15/0.2556411742685888e16 * c(3) - 0.60834186813841e14/0.1278205871342944e16 * c(4)) 48/(49)*(c(1)/0.136e3 - 0.125059e6/0.743572e6 * c(5) - 0.4836340090442187227e19/0.5525802884687299744e19 * c(3) - 0.17220493277981e14/0.89177153814624e14 * c(4)) 48/(49)*(0.3e1/0.1088e4 * c(1) + 0.507284006600757858213e21/0.475219048083107777984e21 * c(3) + 0.1869103e7/0.2230716e7 * c(5) + c(6)/0.24e2 + 0.1950062198436997e16/0.3834617614028832e16 * c(4)) 48/(49)*(-0.4959271814984644613e19/0.20965546238960637264e20 * c(3) - c(6)/0.6e1 - 0.15998714909649e14/0.37594290333616e14 * c(4) - 0.375177e6/0.743572e6 * c(5)) 48/(49)*(-0.368395e6/0.2230716e7 * c(5) + 0.752806667e9/0.539854092016e12 * c(3) + 0.1063649e7/0.8712336e7 * c(4) + c(6)/0.8e1);...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
62 0.49579087e8/0.10149031312e11 * c(3) - 0.49579087e8/0.10149031312e11 * c(4) -0.1328188692663e13/0.37594290333616e14 * c(3) + 0.1328188692663e13/0.37594290333616e14 * c(4) -0.10532412077335e14/0.42840005263888e14 * c(4) + 0.1613976761032884305e19/0.7963657098519931984e19 * c(3) + 0.564461e6/0.4461432e7 * c(5) -0.4959271814984644613e19/0.20965546238960637264e20 * c(3) - c(6)/0.6e1 - 0.15998714909649e14/0.37594290333616e14 * c(4) - 0.375177e6/0.743572e6 * c(5) 0.8386761355510099813e19/0.128413970713633903242e21 * c(3) + 0.2224717261773437e16/0.2763180339520776e16 * c(4) + 0.5e1/0.6e1 * c(6) + c(7)/0.24e2 + 0.280535e6/0.371786e6 * c(5) -0.35039615e8/0.213452232e9 * c(4) - c(7)/0.6e1 - 0.13091810925e11/0.13226425254392e14 * c(3) - 0.1118749e7/0.2230716e7 * c(5) - c(6)/0.2e1;...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
63 -c(4)/0.784e3 + c(3)/0.784e3 -0.8673e4/0.2904112e7 * c(3) + 0.8673e4/0.2904112e7 * c(4) -0.960119e6/0.1280713392e10 * c(4) - 0.3391e4/0.6692148e7 * c(5) + 0.33235054191e11/0.26452850508784e14 * c(3) -0.368395e6/0.2230716e7 * c(5) + 0.752806667e9/0.539854092016e12 * c(3) + 0.1063649e7/0.8712336e7 * c(4) + c(6)/0.8e1 -0.35039615e8/0.213452232e9 * c(4) - c(7)/0.6e1 - 0.13091810925e11/0.13226425254392e14 * c(3) - 0.1118749e7/0.2230716e7 * c(5) - c(6)/0.2e1 0.3290636e7/0.80044587e8 * c(4) + 0.5580181e7/0.6692148e7 * c(5) + 0.5e1/0.6e1 * c(7) + c(8)/0.24e2 + 0.660204843e9/0.13226425254392e14 * c(3) + 0.3e1/0.4e1 * c(6)
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
64 ];
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
65
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
66
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
67 L = [
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
68 c(N-7)/0.24e2 + 0.5e1/0.6e1 * c(N-6) + 0.5580181e7/0.6692148e7 * c(N-4) + 0.4887707739997e13/0.119037827289528e15 * c(N-3) + 0.3e1/0.4e1 * c(N-5) + 0.660204843e9/0.13226425254392e14 * c(N-2) + 0.660204843e9/0.13226425254392e14 * c(N-1) -c(N-6)/0.6e1 - 0.1618585929605e13/0.9919818940794e13 * c(N-3) - c(N-5)/0.2e1 - 0.1118749e7/0.2230716e7 * c(N-4) - 0.13091810925e11/0.13226425254392e14 * c(N-2) - 0.13091810925e11/0.13226425254392e14 * c(N-1) -0.368395e6/0.2230716e7 * c(N-4) + c(N-5)/0.8e1 + 0.48866620889e11/0.404890569012e12 * c(N-3) + 0.752806667e9/0.539854092016e12 * c(N-2) + 0.752806667e9/0.539854092016e12 * c(N-1) -0.3391e4/0.6692148e7 * c(N-4) - 0.238797444493e12/0.119037827289528e15 * c(N-3) + 0.33235054191e11/0.26452850508784e14 * c(N-2) + 0.33235054191e11/0.26452850508784e14 * c(N-1) -0.8673e4/0.2904112e7 * c(N-2) - 0.8673e4/0.2904112e7 * c(N-1) + 0.8673e4/0.1452056e7 * c(N-3) -c(N-3)/0.392e3 + c(N-2)/0.784e3 + c(N-1)/0.784e3;...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
69 -c(N-6)/0.6e1 - 0.1618585929605e13/0.9919818940794e13 * c(N-3) - c(N-5)/0.2e1 - 0.1118749e7/0.2230716e7 * c(N-4) - 0.13091810925e11/0.13226425254392e14 * c(N-2) - 0.13091810925e11/0.13226425254392e14 * c(N-1) c(N-6)/0.24e2 + 0.5e1/0.6e1 * c(N-5) + 0.3896014498639e13/0.4959909470397e13 * c(N-3) + 0.8386761355510099813e19/0.128413970713633903242e21 * c(N-2) + 0.280535e6/0.371786e6 * c(N-4) + 0.3360696339136261875e19/0.171218627618178537656e21 * c(N-1) -c(N-5)/0.6e1 - 0.4959271814984644613e19/0.20965546238960637264e20 * c(N-2) - 0.375177e6/0.743572e6 * c(N-4) - 0.13425842714e11/0.33740880751e11 * c(N-3) - 0.193247108773400725e18/0.6988515412986879088e19 * c(N-1) -0.365281640980e12/0.1653303156799e13 * c(N-3) + 0.564461e6/0.4461432e7 * c(N-4) + 0.1613976761032884305e19/0.7963657098519931984e19 * c(N-2) - 0.198407225513315475e18/0.7963657098519931984e19 * c(N-1) -0.1328188692663e13/0.37594290333616e14 * c(N-2) + 0.2226377963775e13/0.37594290333616e14 * c(N-1) - 0.8673e4/0.363014e6 * c(N-3) c(N-3)/0.49e2 + 0.49579087e8/0.10149031312e11 * c(N-2) - 0.256702175e9/0.10149031312e11 * c(N-1);...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
70 48/(49)*(-0.368395e6/0.2230716e7 * c(N-4) + c(N-5)/0.8e1 + 0.48866620889e11/0.404890569012e12 * c(N-3) + 0.752806667e9/0.539854092016e12 * c(N-2) + 0.752806667e9/0.539854092016e12 * c(N-1)) 48/(49)*(-c(N-5)/0.6e1 - 0.4959271814984644613e19/0.20965546238960637264e20 * c(N-2) - 0.375177e6/0.743572e6 * c(N-4) - 0.13425842714e11/0.33740880751e11 * c(N-3) - 0.193247108773400725e18/0.6988515412986879088e19 * c(N-1)) 48/(49)*(c(N-5)/0.24e2 + 0.1869103e7/0.2230716e7 * c(N-4) + 0.507284006600757858213e21/0.475219048083107777984e21 * c(N-2) + 0.3e1/0.1088e4 * c(N) + 0.31688435395e11/0.67481761502e11 * c(N-3) + 0.27769176016102795561e20/0.712828572124661666976e21 * c(N-1)) 48/(49)*(-0.125059e6/0.743572e6 * c(N-4) + c(N)/0.136e3 - 0.23099342648e11/0.101222642253e12 * c(N-3) - 0.4836340090442187227e19/0.5525802884687299744e19 * c(N-2) + 0.193950157930938693e18/0.5525802884687299744e19 * c(N-1)) 48/(49)*(0.260297319232891e15/0.2556411742685888e16 * c(N-2) - 0.59e2/0.1088e4 * c(N) - 0.106641839640553e15/0.1278205871342944e16 * c(N-1) + 0.26019e5/0.726028e6 * c(N-3)) 48/(49)*(-0.1244724001e10/0.21126554976e11 * c(N-2) + 0.3e1/0.68e2 * c(N) + 0.752806667e9/0.21126554976e11 * c(N-1));...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
71 48/(43)*(-0.3391e4/0.6692148e7 * c(N-4) - 0.238797444493e12/0.119037827289528e15 * c(N-3) + 0.33235054191e11/0.26452850508784e14 * c(N-2) + 0.33235054191e11/0.26452850508784e14 * c(N-1)) 48/(43)*(-0.365281640980e12/0.1653303156799e13 * c(N-3) + 0.564461e6/0.4461432e7 * c(N-4) + 0.1613976761032884305e19/0.7963657098519931984e19 * c(N-2) - 0.198407225513315475e18/0.7963657098519931984e19 * c(N-1)) 48/(43)*(-0.125059e6/0.743572e6 * c(N-4) + c(N)/0.136e3 - 0.23099342648e11/0.101222642253e12 * c(N-3) - 0.4836340090442187227e19/0.5525802884687299744e19 * c(N-2) + 0.193950157930938693e18/0.5525802884687299744e19 * c(N-1)) 48/(43)*(0.564461e6/0.13384296e8 * c(N-4) + 0.470299699916357e15/0.952302618316224e15 * c(N-3) + 0.550597048646198778781e21/0.1624586048098066124736e22 * c(N-1) + c(N)/0.51e2 + 0.378288882302546512209e21/0.270764341349677687456e21 * c(N-2)) 48/(43)*(-0.59e2/0.408e3 * c(N) - 0.29294615794607e14/0.29725717938208e14 * c(N-2) - 0.2234477713167e13/0.29725717938208e14 * c(N-1) - 0.8673e4/0.363014e6 * c(N-3)) 48/(43)*(-0.59e2/0.3136e4 * c(N-3) - 0.13249937023e11/0.48148892736e11 * c(N-1) + 0.2e1/0.17e2 * c(N) + 0.2083938599e10/0.8024815456e10 * c(N-2));...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
72 48/(59)*(-0.8673e4/0.2904112e7 * c(N-2) - 0.8673e4/0.2904112e7 * c(N-1) + 0.8673e4/0.1452056e7 * c(N-3)) 48/(59)*(-0.1328188692663e13/0.37594290333616e14 * c(N-2) + 0.2226377963775e13/0.37594290333616e14 * c(N-1) - 0.8673e4/0.363014e6 * c(N-3)) 48/(59)*(0.260297319232891e15/0.2556411742685888e16 * c(N-2) - 0.59e2/0.1088e4 * c(N) - 0.106641839640553e15/0.1278205871342944e16 * c(N-1) + 0.26019e5/0.726028e6 * c(N-3)) 48/(59)*(-0.59e2/0.408e3 * c(N) - 0.29294615794607e14/0.29725717938208e14 * c(N-2) - 0.2234477713167e13/0.29725717938208e14 * c(N-1) - 0.8673e4/0.363014e6 * c(N-3)) 48/(59)*(0.9258282831623875e16/0.7669235228057664e16 * c(N-2) + 0.3481e4/0.3264e4 * c(N) + 0.228389721191751e15/0.1278205871342944e16 * c(N-1) + 0.8673e4/0.1452056e7 * c(N-3)) 48/(59)*(-0.6025413881e10/0.21126554976e11 * c(N-2) - 0.59e2/0.68e2 * c(N) - 0.537416663e9/0.7042184992e10 * c(N-1));...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
73 48/(17)*(-c(N-3)/0.392e3 + c(N-2)/0.784e3 + c(N-1)/0.784e3) 48/(17)*(c(N-3)/0.49e2 + 0.49579087e8/0.10149031312e11 * c(N-2) - 0.256702175e9/0.10149031312e11 * c(N-1)) 48/(17)*(-0.1244724001e10/0.21126554976e11 * c(N-2) + 0.3e1/0.68e2 * c(N) + 0.752806667e9/0.21126554976e11 * c(N-1)) 48/(17)*(-0.59e2/0.3136e4 * c(N-3) - 0.13249937023e11/0.48148892736e11 * c(N-1) + 0.2e1/0.17e2 * c(N) + 0.2083938599e10/0.8024815456e10 * c(N-2)) 48/(17)*(-0.6025413881e10/0.21126554976e11 * c(N-2) - 0.59e2/0.68e2 * c(N) - 0.537416663e9/0.7042184992e10 * c(N-1)) 48/(17)*(0.3e1/0.3136e4 * c(N-3) + 0.27010400129e11/0.345067064608e12 * c(N-2) + 0.234566387291e12/0.690134129216e12 * c(N-1) + 0.12e2/0.17e2 * c(N))
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
74 ];
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
75
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
76
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
77
267
f7ac3cd6eeaa Sparsified all implementation files, removed all matlab warnings, fixed small bugs on minimum grid points.
Martin Almquist <martin.almquist@it.uu.se>
parents: 266
diff changeset
78 R = sparse(M,1);
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
79 R(1:24) = reshape(U(1:4,:)',24,1);
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
80 R(25:30) = U(5,:);
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
81 R(31) = -c(5+1)/0.6e1 + c(5)/0.8e1 + c(5+2)/0.8e1;
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
82 R(32:37) = U(6,:);
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
83 R(38:39) = [-c(6-1)/0.6e1 - c(6+2)/0.6e1 - c(6)/0.2e1 - c(6+1)/0.2e1;...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
84 -c(6+1)/0.6e1 + c(6)/0.8e1 + c(6+2)/0.8e1];
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
85
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
86 R(M-38:M-37) = [-c(N-6)/0.6e1 + c(N-7)/0.8e1 + c(N-5)/0.8e1;...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
87 -c(N-7)/0.6e1 - c(N-4)/0.6e1 - c(N-6)/0.2e1 - c(N-5)/0.2e1];
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
88 R(M-36:M-31) = L(1,:);
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
89 R(M-30) = -c(N-5)/0.6e1 + c(N-6)/0.8e1 + c(N-4)/0.8e1;
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
90 R(M-29:M-24) = L(2,:);
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
91 R(M-23:M) = reshape(L(3:6,:)',24,1);
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
92
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
93 for i=7:N-6
303
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
94 R(40+(i-7)*5:44+(i-7)*5) = [
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
95 -c(i-1)/0.6e1 + c(i-2)/0.8e1 + c(i)/0.8e1,...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
96 -c(i-2)/0.6e1 - c(i+1)/0.6e1 - c(i-1)/0.2e1 - c(i)/0.2e1,...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
97 c(i-2)/0.24e2 + 0.5e1/0.6e1 * c(i-1) + 0.5e1/0.6e1 * c(i+1) + c(i+2)/0.24e2 + 0.3e1/0.4e1 * c(i),...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
98 -c(i-1)/0.6e1 - c(i+2)/0.6e1 - c(i)/0.2e1 - c(i+1)/0.2e1,...
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
99 -c(i+1)/0.6e1 + c(i)/0.8e1 + c(i+2)/0.8e1
f18142c1530b Fixed Wave2dCurve for new operators. Some cleanup in d2_variable_4.
Jonatan Werpers <jonatan@werpers.com>
parents: 267
diff changeset
100 ];
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
101 end
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
102
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
103 R = R/h/h;
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
104 D2 = -R;
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
105 D2(1:4) = -48/17/h/h*[c(1)*(-11/6);c(1)*3;c(1)*(-3/2);c(1)*1/3] + D2(1:4);
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
106 D2(M-3:M) = -48/17/h/h*[c(N)*1/3;c(N)*(-3/2);c(N)*3;c(N)*(-11/6)] + D2(M-3:M);
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
107
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
108
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
109
267
f7ac3cd6eeaa Sparsified all implementation files, removed all matlab warnings, fixed small bugs on minimum grid points.
Martin Almquist <martin.almquist@it.uu.se>
parents: 266
diff changeset
110 % BS = sparse(N,N);
f7ac3cd6eeaa Sparsified all implementation files, removed all matlab warnings, fixed small bugs on minimum grid points.
Martin Almquist <martin.almquist@it.uu.se>
parents: 266
diff changeset
111 % BS(1,1:4) = -c(1)*1/h*[(-11/6);3;(-3/2);1/3];
f7ac3cd6eeaa Sparsified all implementation files, removed all matlab warnings, fixed small bugs on minimum grid points.
Martin Almquist <martin.almquist@it.uu.se>
parents: 266
diff changeset
112 % BS(N,N-3:N) = c(N)*1/h*[(-1/3);3/2;(-3);11/6];
f7ac3cd6eeaa Sparsified all implementation files, removed all matlab warnings, fixed small bugs on minimum grid points.
Martin Almquist <martin.almquist@it.uu.se>
parents: 266
diff changeset
113 % BS = sparse(BS);
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
114
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
115 % %%Row and column indices%%
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
116 M = 78+(N-12)*5;
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
117 rows = [kron([1;2;3;4],ones(6,1));...
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
118 5*ones(7,1);...
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
119 6*ones(8,1);...
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
120 kron((7:N-6)',ones(5,1));...
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
121 (N-5)*ones(8,1);...
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
122 (N-4)*ones(7,1);...
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
123 kron([N-3;N-2;N-1;N],ones(6,1))];
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
124
267
f7ac3cd6eeaa Sparsified all implementation files, removed all matlab warnings, fixed small bugs on minimum grid points.
Martin Almquist <martin.almquist@it.uu.se>
parents: 266
diff changeset
125 cols = sparse(M,1);
261
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
126 cols(1:24) = kron(ones(4,1),[1;2;3;4;5;6]);
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
127 cols(25:39) = [(1:7)';(1:8)'];
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
128 cols(M-23:M) = kron(ones(4,1),[N-5;N-4;N-3;N-2;N-1;N]);
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
129 cols(M-38:M-24) = [(N-7:N)';(N-6:N)'];
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
130 for i=7:N-6
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
131 cols(40+(i-7)*5:44+(i-7)*5) = [i-2;i-1;i;i+1;i+2];
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
132 end
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
133 D2 = sparse(rows,cols,D2);
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
134 end
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
135 D2 = @D2_fun;
6009f2712d13 Moved and renamned all implementations.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff changeset
136 end