changeset 1330:855871e0b852 feature/D2_boundary_opt

Add size checks to the operators
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Thu, 17 Feb 2022 18:55:11 +0100
parents 7df63b17e078
children 60c875c18de3
files +sbp/+implementations/d2_noneq_variable_10.m +sbp/+implementations/d2_noneq_variable_12.m +sbp/+implementations/d2_noneq_variable_4.m +sbp/+implementations/d2_noneq_variable_6.m +sbp/+implementations/d2_noneq_variable_8.m +sbp/D2Nonequidistant.m
diffstat 6 files changed, 15 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
diff -r 7df63b17e078 -r 855871e0b852 +sbp/+implementations/d2_noneq_variable_10.m
--- a/+sbp/+implementations/d2_noneq_variable_10.m	Mon Feb 14 14:55:29 2022 +0100
+++ b/+sbp/+implementations/d2_noneq_variable_10.m	Thu Feb 17 18:55:11 2022 +0100
@@ -10,6 +10,9 @@
     % order: Accuracy of interior stencil
     BP = 10;
     order = 10;
+    if(N<2*BP)
+        error(['Operator requires at least ' num2str(2*BP) ' grid points']);
+    end
 
     %%%% Norm matrix %%%%%%%%
     P = zeros(BP, 1);
diff -r 7df63b17e078 -r 855871e0b852 +sbp/+implementations/d2_noneq_variable_12.m
--- a/+sbp/+implementations/d2_noneq_variable_12.m	Mon Feb 14 14:55:29 2022 +0100
+++ b/+sbp/+implementations/d2_noneq_variable_12.m	Thu Feb 17 18:55:11 2022 +0100
@@ -10,6 +10,9 @@
     % order: Accuracy of interior stencil
     BP = 12;
     order = 12;
+    if(N<2*BP)
+        error(['Operator requires at least ' num2str(2*BP) ' grid points']);
+    end
 
     %%%% Norm matrix %%%%%%%%
     P = zeros(BP, 1);
diff -r 7df63b17e078 -r 855871e0b852 +sbp/+implementations/d2_noneq_variable_4.m
--- a/+sbp/+implementations/d2_noneq_variable_4.m	Mon Feb 14 14:55:29 2022 +0100
+++ b/+sbp/+implementations/d2_noneq_variable_4.m	Thu Feb 17 18:55:11 2022 +0100
@@ -10,6 +10,9 @@
     % order: Accuracy of interior stencil
     BP = 4;
     order = 4;
+    if(N<2*BP)
+        error(['Operator requires at least ' num2str(2*BP) ' grid points']);
+    end
 
     %%%% Norm matrix %%%%%%%%
     P = zeros(BP, 1);
diff -r 7df63b17e078 -r 855871e0b852 +sbp/+implementations/d2_noneq_variable_6.m
--- a/+sbp/+implementations/d2_noneq_variable_6.m	Mon Feb 14 14:55:29 2022 +0100
+++ b/+sbp/+implementations/d2_noneq_variable_6.m	Thu Feb 17 18:55:11 2022 +0100
@@ -10,6 +10,9 @@
     % order: Accuracy of interior stencil
     BP = 6;
     order = 6;
+    if(N<2*BP)
+        error(['Operator requires at least ' num2str(2*BP) ' grid points']);
+    end
 
     %%%% Norm matrix %%%%%%%%
     P = zeros(BP, 1);
diff -r 7df63b17e078 -r 855871e0b852 +sbp/+implementations/d2_noneq_variable_8.m
--- a/+sbp/+implementations/d2_noneq_variable_8.m	Mon Feb 14 14:55:29 2022 +0100
+++ b/+sbp/+implementations/d2_noneq_variable_8.m	Thu Feb 17 18:55:11 2022 +0100
@@ -10,6 +10,9 @@
     % order: Accuracy of interior stencil
     BP = 8;
     order = 8;
+    if(N<2*BP)
+        error(['Operator requires at least ' num2str(2*BP) ' grid points']);
+    end
 
     %%%% Norm matrix %%%%%%%%
     P = zeros(BP, 1);
diff -r 7df63b17e078 -r 855871e0b852 +sbp/D2Nonequidistant.m
--- a/+sbp/D2Nonequidistant.m	Mon Feb 14 14:55:29 2022 +0100
+++ b/+sbp/D2Nonequidistant.m	Thu Feb 17 18:55:11 2022 +0100
@@ -49,12 +49,8 @@
                 case 4
                     [obj.H, obj.HI, obj.D1, obj.D2, obj.DI] = sbp.implementations.d2_noneq_variable_4(m, h, options);
                 case 6
-                    % [obj.H, obj.HI, obj.D1, D2, M, Q, obj.e_l, obj.e_r, obj.d1_l, obj.d1_r] = sbp.implementations.d2_noneq_6(m,h,2);
-                    % obj.D2 = @(c)D2;
                     [obj.H, obj.HI, obj.D1, obj.D2, obj.DI] = sbp.implementations.d2_noneq_variable_6(m, h, options);
                 case 8
-                    % [obj.H, obj.HI, obj.D1, D2, M, Q, obj.e_l, obj.e_r, obj.d1_l, obj.d1_r] = sbp.implementations.d2_noneq_8(m,h,1);
-                    % obj.D2 = @(c)D2;
                     [obj.H, obj.HI, obj.D1, obj.D2, obj.DI] = sbp.implementations.d2_noneq_variable_8(m, h, options);
                 case 10
                     [obj.H, obj.HI, obj.D1, obj.D2, obj.DI] = sbp.implementations.d2_noneq_variable_10(m, h, options);