Mercurial > repos > public > sbplib
changeset 266:bfa130b7abf6 operator_remake
Added error message for too few grid points to all implementation files.
line wrap: on
line diff
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_noneq_10.m --- a/+sbp/+implementations/d1_noneq_10.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_noneq_10.m Fri Sep 09 11:03:13 2016 +0200 @@ -6,6 +6,10 @@ L = 1; end +if(N<20) + error('Operator requires at least 20 grid points'); +end + % BP: Number of boundary points % m: Number of nonequidistant spacings % order: Accuracy of interior stencil
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_noneq_12.m --- a/+sbp/+implementations/d1_noneq_12.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_noneq_12.m Fri Sep 09 11:03:13 2016 +0200 @@ -6,6 +6,10 @@ L = 1; end +if(N<24) + error('Operator requires at least 24 grid points'); +end + % BP: Number of boundary points % m: Number of nonequidistant spacings % order: Accuracy of interior stencil
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_noneq_4.m --- a/+sbp/+implementations/d1_noneq_4.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_noneq_4.m Fri Sep 09 11:03:13 2016 +0200 @@ -6,6 +6,10 @@ L = 1; end +if(N<8) + error('Operator requires at least 8 grid points'); +end + % BP: Number of boundary points % m: Number of nonequidistant spacings % order: Accuracy of interior stencil
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_noneq_6.m --- a/+sbp/+implementations/d1_noneq_6.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_noneq_6.m Fri Sep 09 11:03:13 2016 +0200 @@ -6,6 +6,10 @@ L = 1; end +if(N<12) + error('Operator requires at least 12 grid points'); +end + % BP: Number of boundary points % m: Number of nonequidistant spacings % order: Accuracy of interior stencil
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_noneq_8.m --- a/+sbp/+implementations/d1_noneq_8.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_noneq_8.m Fri Sep 09 11:03:13 2016 +0200 @@ -6,6 +6,10 @@ L = 1; end +if(N<16) + error('Operator requires at least 16 grid points'); +end + % BP: Number of boundary points % m: Number of nonequidistant spacings % order: Accuracy of interior stencil
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_noneq_minimal_10.m --- a/+sbp/+implementations/d1_noneq_minimal_10.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_noneq_minimal_10.m Fri Sep 09 11:03:13 2016 +0200 @@ -6,6 +6,10 @@ L = 1; end +if(N<16) + error('Operator requires at least 16 grid points'); +end + % BP: Number of boundary points % m: Number of nonequidistant spacings % order: Accuracy of interior stencil
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_noneq_minimal_12.m --- a/+sbp/+implementations/d1_noneq_minimal_12.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_noneq_minimal_12.m Fri Sep 09 11:03:13 2016 +0200 @@ -6,6 +6,10 @@ L = 1; end +if(N<20) + error('Operator requires at least 20 grid points'); +end + % BP: Number of boundary points % m: Number of nonequidistant spacings % order: Accuracy of interior stencil
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_noneq_minimal_4.m --- a/+sbp/+implementations/d1_noneq_minimal_4.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_noneq_minimal_4.m Fri Sep 09 11:03:13 2016 +0200 @@ -6,6 +6,10 @@ L = 1; end +if(N<6) + error('Operator requires at least 6 grid points'); +end + % BP: Number of boundary points % m: Number of nonequidistant spacings % order: Accuracy of interior stencil
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_noneq_minimal_6.m --- a/+sbp/+implementations/d1_noneq_minimal_6.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_noneq_minimal_6.m Fri Sep 09 11:03:13 2016 +0200 @@ -6,6 +6,10 @@ L = 1; end +if(N<10) + error('Operator requires at least 10 grid points'); +end + % BP: Number of boundary points % m: Number of nonequidistant spacings % order: Accuracy of interior stencil
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_noneq_minimal_8.m --- a/+sbp/+implementations/d1_noneq_minimal_8.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_noneq_minimal_8.m Fri Sep 09 11:03:13 2016 +0200 @@ -6,6 +6,10 @@ L = 1; end +if(N<12) + error('Operator requires at least 12 grid points'); +end + % BP: Number of boundary points % m: Number of nonequidistant spacings % order: Accuracy of interior stencil
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_upwind_2.m --- a/+sbp/+implementations/d1_upwind_2.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_upwind_2.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,4 +1,9 @@ function [H, HI, Dp, Dm, e_1, e_m] = d1_upwind_2(m,h) + + if(m<4) + error('Operator requires at least 4 grid points'); + end + Hv=ones(m,1); Hv(1:2)=[0.1e1/0.4e1; 0.5e1/0.4e1;]; Hv(m-1:m)=rot90(Hv(1:2),2);
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_upwind_3.m --- a/+sbp/+implementations/d1_upwind_3.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_upwind_3.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,4 +1,9 @@ function [H, HI, Dp, Dm, e_1, e_m] = d1_upwind_3(m,h) + + if(m<6) + error('Operator requires at least 6 grid points'); + end + Hv = ones(m,1); Hv(1:3) = [3/8; 7/6; 23/24]; Hv(m-2:m) = rot90(Hv(1:3),2);
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_upwind_4.m --- a/+sbp/+implementations/d1_upwind_4.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_upwind_4.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,5 +1,9 @@ function [H, HI, Dp, Dm, e_1, e_m] = d1_upwind_4(m,h) + if(m<8) + error('Operator requires at least 8 grid points'); + end + Hv=ones(m,1); Hv(1:4)=[49/144 61/48 41/48 149/144]; Hv(m-3:m)=rot90(Hv(1:4),2);
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_upwind_5.m --- a/+sbp/+implementations/d1_upwind_5.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_upwind_5.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,4 +1,9 @@ function [H, HI, Dp, Dm, e_1, e_m] = d1_upwind_5(m,h) + + if(m<8) + error('Operator requires at least 8 grid points'); + end + Hv=ones(m,1); Hv(1:4)=[0.251e3/0.720e3; 0.299e3/0.240e3; 0.211e3/0.240e3; 0.739e3/0.720e3;]; Hv(m-3:m)=rot90(Hv(1:4),2);
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_upwind_6.m --- a/+sbp/+implementations/d1_upwind_6.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_upwind_6.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,4 +1,9 @@ function [H, HI, Dp, Dm, e_1, e_m] = d1_upwind_6(m,h) + + if(m<12) + error('Operator requires at least 12 grid points'); + end + Hv = ones(m,1); Hv(1:6)=[0.13613e5/0.43200e5; 0.12049e5/0.8640e4 ; 0.535e3/0.864e3 ; 0.1079e4/0.864e3 ; 0.7841e4/0.8640e4 ; 0.43837e5/0.43200e5]; Hv(m-5:m)=rot90(Hv(1:6),2);
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_upwind_7.m --- a/+sbp/+implementations/d1_upwind_7.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_upwind_7.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,5 +1,10 @@ function [H, HI, Dp, Dm, e_1, e_m] = d1_upwind_7(m,h) + BP = 6; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end + Hv=ones(m,1); Hv(1:6) = [0.19087e5/0.60480e5; 0.84199e5/0.60480e5; 0.18869e5/0.30240e5; 0.37621e5/0.30240e5; 0.55031e5/0.60480e5; 0.61343e5/0.60480e5; ]; Hv(m-5:m)=rot90(Hv(1:6),2);
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_upwind_8.m --- a/+sbp/+implementations/d1_upwind_8.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_upwind_8.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,4 +1,10 @@ function [H, HI, Dp, Dm, e_1, e_m] = d1_upwind_8(m,h) + + BP = 8; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end + Hv=ones(m,1); Hv(1:8) = [0.7489399e7/0.25401600e8; 0.5537831e7/0.3628800e7; 0.103373e6/0.403200e6; 0.261259e6/0.145152e6; 0.298231e6/0.725760e6; 0.515917e6/0.403200e6; 0.3349159e7/0.3628800e7; 0.25639991e8/0.25401600e8]; Hv(m-7:m)=rot90(Hv(1:8),2);
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d1_upwind_9.m --- a/+sbp/+implementations/d1_upwind_9.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d1_upwind_9.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,5 +1,10 @@ function [H, HI, Dp, Dm, e_1, e_m] = d1_upwind_9(m,h) + BP = 8; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end + Hv=ones(m,1); Hv(1:8) = [0.1070017e7/0.3628800e7; 0.5537111e7/0.3628800e7; 0.103613e6/0.403200e6; 0.261115e6/0.145152e6; 0.298951e6/0.725760e6; 0.515677e6/0.403200e6; 0.3349879e7/0.3628800e7; 0.3662753e7/0.3628800e7;]; Hv(m-7:m)=rot90(Hv(1:8),2);
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d2_10.m --- a/+sbp/+implementations/d2_10.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d2_10.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,5 +1,10 @@ function [H, HI, D1, D2, e_1, e_m, M, Q, S_1, S_m] = d2_10(m,h) + BP = 11; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end + H_U = [0.5261271563e10 / 0.18289152000e11 0 0 0 0 0 0 0 0 0 0; 0 0.2881040311e10 / 0.1828915200e10 0 0 0 0 0 0 0 0 0; 0 0 0.52175551e8 / 0.406425600e9 0 0 0 0 0 0 0 0; 0 0 0 0.11662993e8 / 0.6096384e7 0 0 0 0 0 0 0; 0 0 0 0 0.50124587e8 / 0.87091200e8 0 0 0 0 0 0; 0 0 0 0 0 0.50124587e8 / 0.72576000e8 0 0 0 0 0; 0 0 0 0 0 0 0.148333439e9 / 0.87091200e8 0 0 0 0; 0 0 0 0 0 0 0 0.63867949e8 / 0.152409600e9 0 0 0; 0 0 0 0 0 0 0 0 0.20608675e8 / 0.16257024e8 0 0; 0 0 0 0 0 0 0 0 0 0.1704508063e10 / 0.1828915200e10 0; 0 0 0 0 0 0 0 0 0 0 0.18425967263e11 / 0.18289152000e11;]; H=eye(m);
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d2_12.m --- a/+sbp/+implementations/d2_12.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d2_12.m Fri Sep 09 11:03:13 2016 +0200 @@ -2,6 +2,11 @@ % D2 = D1*D1, wide! +BP = 15; +if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); +end + H=diag(ones(m,1),0); H(1:15,1:15)=diag([2.880607858916397e-01,... 1.560376162339675e+00,...
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d2_2.m --- a/+sbp/+implementations/d2_2.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d2_2.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,4 +1,10 @@ function [H, HI, D1, D2, e_1, e_m, M, Q, S_1, S_m] = d2_2(m,h) + + BP = 1; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end + e_1=zeros(m,1);e_1(1)=1; e_m=zeros(m,1);e_m(m)=1;
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d2_4.m --- a/+sbp/+implementations/d2_4.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d2_4.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,4 +1,10 @@ function [H, HI, D1, D2, e_1, e_m, M, Q, S_1, S_m] = d2_4(m,h) + + BP = 4; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end + e_1=zeros(m,1);e_1(1)=1; e_m=zeros(m,1);e_m(m)=1;
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d2_6.m --- a/+sbp/+implementations/d2_6.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d2_6.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,4 +1,10 @@ function [H, HI, D1, D2, e_1, e_m, M, Q, S_1, S_m] = d2_6(m,h) + + BP = 6; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end + e_1=zeros(m,1);e_1(1)=1; e_m=zeros(m,1);e_m(m)=1;
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d2_8.m --- a/+sbp/+implementations/d2_8.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d2_8.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,4 +1,11 @@ function [H, HI, D1, D2, e_1, e_m, M, Q, S_1, S_m] = d2_8(m,h) + + + BP = 8; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end + H=diag(ones(m,1),0); H(1:8,1:8)=diag([1498139/5080320, 1107307/725760, 20761/80640, 1304999/725760, 299527/725760, 103097/80640, 670091/725760, 5127739/5080320]); H(m-7:m,m-7:m)=fliplr(flipud(diag([1498139/5080320, 1107307/725760, 20761/80640, 1304999/725760, 299527/725760, 103097/80640, 670091/725760, 5127739/5080320])));
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d2_blocknorm_10.m --- a/+sbp/+implementations/d2_blocknorm_10.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d2_blocknorm_10.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,4 +1,10 @@ function [H, HI, D1, D2, e_1, e_m, M, Q, S_1, S_m] = d2_blocknorm_10(m,h) + + BP = 9; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end + H_U=[0.428081020217e12 / 0.2633637888000e13 0.779032713983e12 / 0.2633637888000e13 -0.1187642619571e13 / 0.2633637888000e13 0.1642279196603e13 / 0.2633637888000e13 -0.339289243121e12 / 0.526727577600e12 0.1261055176253e13 / 0.2633637888000e13 -0.658216413073e12 / 0.2633637888000e13 0.33968779823e11 / 0.376233984000e12 -0.764998e6 / 0.40186125e8; 0.779032713983e12 / 0.2633637888000e13 0.317907052061e12 / 0.164602368000e12 -0.1082918052397e13 / 0.658409472000e12 0.176473501369e12 / 0.82301184000e11 -0.521625191587e12 / 0.263363788800e12 0.200523313337e12 / 0.164602368000e12 -0.279496000009e12 / 0.658409472000e12 -0.832e3 / 0.40186125e8 0.129794760887e12 / 0.2633637888000e13; -0.1187642619571e13 / 0.2633637888000e13 -0.1082918052397e13 / 0.658409472000e12 0.1304108863849e13 / 0.329204736000e12 -0.533093695961e12 / 0.131681894400e12 0.213949854133e12 / 0.52672757760e11 -0.1883976009151e13 / 0.658409472000e12 0.51084128e8 / 0.40186125e8 -0.92763684343e11 / 0.658409472000e12 -0.59058717923e11 / 0.526727577600e12; 0.1642279196603e13 / 0.2633637888000e13 0.176473501369e12 / 0.82301184000e11 -0.533093695961e12 / 0.131681894400e12 0.217677310051e12 / 0.32920473600e11 -0.1509120465127e13 / 0.263363788800e12 0.170839232e9 / 0.40186125e8 -0.1404096707137e13 / 0.658409472000e12 0.11789520859e11 / 0.32920473600e11 0.85652315431e11 / 0.526727577600e12; -0.339289243121e12 / 0.526727577600e12 -0.521625191587e12 / 0.263363788800e12 0.213949854133e12 / 0.52672757760e11 -0.1509120465127e13 / 0.263363788800e12 0.21849109e8 / 0.3214890e7 -0.1134422468377e13 / 0.263363788800e12 0.602448430967e12 / 0.263363788800e12 -0.4910542309e10 / 0.10534551552e11 -0.83039945231e11 / 0.526727577600e12; 0.1261055176253e13 / 0.2633637888000e13 0.200523313337e12 / 0.164602368000e12 -0.1883976009151e13 / 0.658409472000e12 0.170839232e9 / 0.40186125e8 -0.1134422468377e13 / 0.263363788800e12 0.681437038097e12 / 0.164602368000e12 -0.1108257453763e13 / 0.658409472000e12 0.31631872327e11 / 0.82301184000e11 0.37820115539e11 / 0.376233984000e12; -0.658216413073e12 / 0.2633637888000e13 -0.279496000009e12 / 0.658409472000e12 0.51084128e8 / 0.40186125e8 -0.1404096707137e13 / 0.658409472000e12 0.602448430967e12 / 0.263363788800e12 -0.1108257453763e13 / 0.658409472000e12 0.623491124887e12 / 0.329204736000e12 -0.146643738067e12 / 0.658409472000e12 -0.98874149197e11 / 0.2633637888000e13; 0.33968779823e11 / 0.376233984000e12 -0.832e3 / 0.40186125e8 -0.92763684343e11 / 0.658409472000e12 0.11789520859e11 / 0.32920473600e11 -0.4910542309e10 / 0.10534551552e11 0.31631872327e11 / 0.82301184000e11 -0.146643738067e12 / 0.658409472000e12 0.174599973347e12 / 0.164602368000e12 0.4625165773e10 / 0.526727577600e12; -0.764998e6 / 0.40186125e8 0.129794760887e12 / 0.2633637888000e13 -0.59058717923e11 / 0.526727577600e12 0.85652315431e11 / 0.526727577600e12 -0.83039945231e11 / 0.526727577600e12 0.37820115539e11 / 0.376233984000e12 -0.98874149197e11 / 0.2633637888000e13 0.4625165773e10 / 0.526727577600e12 0.525286231387e12 / 0.526727577600e12;];
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d2_blocknorm_4.m --- a/+sbp/+implementations/d2_blocknorm_4.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d2_blocknorm_4.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,4 +1,10 @@ function [H, HI, D1, D2, e_1, e_m, M, Q, S_1, S_m] = d2_blocknorm_4(m,h) + + BP = 4; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end + H_U=[0.751e3 / 0.3456e4 0.661e3 / 0.3456e4 -0.515e3 / 0.3456e4 0.5e1 / 0.128e3; 0.661e3 / 0.3456e4 0.1405e4 / 0.1152e4 -0.3e1 / 0.128e3 0.29e2 / 0.3456e4; -0.515e3 / 0.3456e4 -0.3e1 / 0.128e3 0.989e3 / 0.1152e4 0.149e3 / 0.3456e4; 0.5e1 / 0.128e3 0.29e2 / 0.3456e4 0.149e3 / 0.3456e4 0.3407e4 / 0.3456e4;];
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d2_blocknorm_6.m --- a/+sbp/+implementations/d2_blocknorm_6.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d2_blocknorm_6.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,4 +1,10 @@ function [H, HI, D1, D2, e_1, e_m, M, Q, S_1, S_m] = d2_blocknorm_6(m,h) + + BP = 6; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end + H_U=[0.8489084265971e13 / 0.45952647390720e14 0.24636450459943e14 / 0.98469958694400e14 -0.2796787072531e13 / 0.12308744836800e14 0.2793599068823e13 / 0.14360202309600e14 -0.66344569931569e14 / 0.689289710860800e15 0.3784697867191e13 / 0.137857942172160e15; 0.24636450459943e14 / 0.98469958694400e14 0.27815394775103e14 / 0.19693991738880e14 -0.445601472229e12 / 0.861612138576e12 0.3896159037731e13 / 0.17232242771520e14 -0.866505556741e12 / 0.27571588434432e14 -0.25625418493681e14 / 0.689289710860800e15; -0.2796787072531e13 / 0.12308744836800e14 -0.445601472229e12 / 0.861612138576e12 0.31409405327129e14 / 0.17232242771520e14 -0.1595539040819e13 / 0.3446448554304e13 0.2651608170899e13 / 0.17232242771520e14 0.1434714163381e13 / 0.43080606928800e14; 0.2793599068823e13 / 0.14360202309600e14 0.3896159037731e13 / 0.17232242771520e14 -0.1595539040819e13 / 0.3446448554304e13 0.6984350202787e13 / 0.5744080923840e13 -0.62662743973e11 / 0.861612138576e12 -0.435331581619e12 / 0.12308744836800e14; -0.66344569931569e14 / 0.689289710860800e15 -0.866505556741e12 / 0.27571588434432e14 0.2651608170899e13 / 0.17232242771520e14 -0.62662743973e11 / 0.861612138576e12 0.20320736807807e14 / 0.19693991738880e14 0.1368363924007e13 / 0.98469958694400e14; 0.3784697867191e13 / 0.137857942172160e15 -0.25625418493681e14 / 0.689289710860800e15 0.1434714163381e13 / 0.43080606928800e14 -0.435331581619e12 / 0.12308744836800e14 0.1368363924007e13 / 0.98469958694400e14 0.27414523542149e14 / 0.27571588434432e14;];
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d2_blocknorm_8.m --- a/+sbp/+implementations/d2_blocknorm_8.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d2_blocknorm_8.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,5 +1,11 @@ function [H, HI, D1, D2, e_1, e_m, M, Q, S_1, S_m] = d2_blocknorm_8(m,h) % Eighth order + + BP = 8; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end + e_1=zeros(m,1);e_1(1)=1; e_m=zeros(m,1);e_m(m)=1;
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d2_variable_4.m --- a/+sbp/+implementations/d2_variable_4.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d2_variable_4.m Fri Sep 09 11:03:13 2016 +0200 @@ -1,4 +1,10 @@ function [H, HI, D1, D2, e_l, e_r, d_l, d_r] = d2_variable_4(m,h) + + BP = 4; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end + N = m; H = speye(N);
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d4_4.m --- a/+sbp/+implementations/d4_4.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d4_4.m Fri Sep 09 11:03:13 2016 +0200 @@ -27,6 +27,11 @@ % Vi b?rjar med normen. Notera att alla SBP operatorer delar samma norm, % vilket ?r n?dv?ndigt f?r stabilitet + + BP = 6; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end H=diag(ones(m,1),0); H_U=[0.35809e5 / 0.100800e6 0 0 0 0 0; 0 0.13297e5 / 0.11200e5 0 0 0 0; 0 0 0.5701e4 / 0.5600e4 0 0 0; 0 0 0 0.45109e5 / 0.50400e5 0 0; 0 0 0 0 0.35191e5 / 0.33600e5 0; 0 0 0 0 0 0.33503e5 / 0.33600e5;];
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d4_6.m --- a/+sbp/+implementations/d4_6.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d4_6.m Fri Sep 09 11:03:13 2016 +0200 @@ -25,6 +25,11 @@ % Vi b?rjar med normen. Notera att alla SBP operatorer delar samma norm, % vilket ?r n?dv?ndigt f?r stabilitet + + BP = 8; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end H=diag(ones(m,1),0); H_U=[0.318365e6 / 0.1016064e7 0 0 0 0 0 0 0; 0 0.145979e6 / 0.103680e6 0 0 0 0 0 0; 0 0 0.139177e6 / 0.241920e6 0 0 0 0 0; 0 0 0 0.964969e6 / 0.725760e6 0 0 0 0; 0 0 0 0 0.593477e6 / 0.725760e6 0 0 0; 0 0 0 0 0 0.52009e5 / 0.48384e5 0 0; 0 0 0 0 0 0 0.141893e6 / 0.145152e6 0; 0 0 0 0 0 0 0 0.1019713e7 / 0.1016064e7;];
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d4_compatible_2.m --- a/+sbp/+implementations/d4_compatible_2.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d4_compatible_2.m Fri Sep 09 11:03:13 2016 +0200 @@ -25,6 +25,11 @@ % Vi b?rjar med normen. Notera att alla SBP operatorer delar samma norm, % vilket ?r n?dv?ndigt f?r stabilitet + + BP = 1; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end H=diag(ones(m,1),0);H(1,1)=1/2;H(m,m)=1/2;
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d4_compatible_4.m --- a/+sbp/+implementations/d4_compatible_4.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d4_compatible_4.m Fri Sep 09 11:03:13 2016 +0200 @@ -25,6 +25,11 @@ % Vi b?rjar med normen. Notera att alla SBP operatorer delar samma norm, % vilket ?r n?dv?ndigt f?r stabilitet + + BP = 6; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end H=diag(ones(m,1),0); H_U=[0.3e1 / 0.11e2 0 0 0 0 0; 0 0.2125516311e10 / 0.1311004640e10 0 0 0 0; 0 0 0.278735189e9 / 0.1966506960e10 0 0 0; 0 0 0 0.285925927e9 / 0.163875580e9 0 0; 0 0 0 0 0.1284335339e10 / 0.1966506960e10 0; 0 0 0 0 0 0.4194024163e10 / 0.3933013920e10;];
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d4_compatible_6.m --- a/+sbp/+implementations/d4_compatible_6.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d4_compatible_6.m Fri Sep 09 11:03:13 2016 +0200 @@ -25,6 +25,11 @@ % Vi b?rjar med normen. Notera att alla SBP operatorer delar samma norm, % vilket ?r n?dv?ndigt f?r stabilitet + + BP = 8; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end H=diag(ones(m,1),0); H_U=[0.7493827e7 / 0.25401600e8 0 0 0 0 0 0 0; 0 0.5534051e7 / 0.3628800e7 0 0 0 0 0 0; 0 0 0.104561e6 / 0.403200e6 0 0 0 0 0; 0 0 0 0.260503e6 / 0.145152e6 0 0 0 0; 0 0 0 0 0.43237e5 / 0.103680e6 0 0 0; 0 0 0 0 0 0.514081e6 / 0.403200e6 0 0; 0 0 0 0 0 0 0.3356179e7 / 0.3628800e7 0; 0 0 0 0 0 0 0 0.25631027e8 / 0.25401600e8;];
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d4_compatible_halfvariable_2.m --- a/+sbp/+implementations/d4_compatible_halfvariable_2.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d4_compatible_halfvariable_2.m Fri Sep 09 11:03:13 2016 +0200 @@ -26,6 +26,11 @@ % Vi b?rjar med normen. Notera att alla SBP operatorer delar samma norm, % vilket ?r n?dv?ndigt f?r stabilitet + + BP = 1; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end H=diag(ones(m,1),0);H(1,1)=1/2;H(m,m)=1/2;
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d4_compatible_halfvariable_4.m --- a/+sbp/+implementations/d4_compatible_halfvariable_4.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d4_compatible_halfvariable_4.m Fri Sep 09 11:03:13 2016 +0200 @@ -12,6 +12,11 @@ %m=20; %problemstorlek %h=1/(m-1); %h=1; + + BP = 4; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end c=ones(m,1);
diff -r 3e0432b3cb68 -r bfa130b7abf6 +sbp/+implementations/d4_compatible_halfvariable_6.m --- a/+sbp/+implementations/d4_compatible_halfvariable_6.m Fri Sep 09 10:41:31 2016 +0200 +++ b/+sbp/+implementations/d4_compatible_halfvariable_6.m Fri Sep 09 11:03:13 2016 +0200 @@ -25,6 +25,11 @@ % with the unknown stored as c(1), c(2), ..., c_m % x=1:h:m*h;x=x'; % c=x.^0; + + BP = 6; + if(m<2*BP) + error(['Operator requires at least ' num2str(2*BP) ' grid points']); + end H=diag(ones(m,1),0);