changeset 980:a3accd2f1283 feature/getBoundaryOp

Make mutliblock.DiffOp.getBoundaryOperator/Quadrature use scheme methods instead of properties.
author Martin Almquist <malmquist@stanford.edu>
date Mon, 07 Jan 2019 17:07:35 +0100
parents 1a30dbe99c7c
children a2fcc4cf2298
files +multiblock/DiffOp.m
diffstat 1 files changed, 6 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
diff -r 1a30dbe99c7c -r a3accd2f1283 +multiblock/DiffOp.m
--- a/+multiblock/DiffOp.m	Mon Jan 07 16:15:49 2019 +0100
+++ b/+multiblock/DiffOp.m	Mon Jan 07 17:07:35 2019 +0100
@@ -129,19 +129,20 @@
 
         % Get a boundary operator specified by opName for the given boundary/BoundaryGroup
         function op = getBoundaryOperator(obj, opName, boundary)
+            blockmatrixDiv = obj.blockmatrixDiv{1};
+
             switch class(boundary)
                 case 'cell'
-                    localOpName = [opName '_' boundary{2}];
                     blockId = boundary{1};
-                    localOp = obj.diffOps{blockId}.(localOpName);
+                    localOp = obj.diffOps{blockId}.getBoundaryOperator(opName, boundary{2});
 
-                    div = {obj.blockmatrixDiv{1}, size(localOp,2)};
+                    div = {blockmatrixDiv, size(localOp,2)};
                     blockOp = blockmatrix.zero(div);
                     blockOp{blockId,1} = localOp;
                     op = blockmatrix.toMatrix(blockOp);
                     return
                 case 'multiblock.BoundaryGroup'
-                    op = sparse(size(obj.D,1),0);
+                    op = sparse(sum(blockmatrixDiv),0);
                     for i = 1:length(boundary)
                         op = [op, obj.getBoundaryOperator(opName, boundary{i})];
                     end
@@ -151,13 +152,10 @@
         end
 
         function op = getBoundaryQuadrature(obj, boundary)
-            opName = 'H';
             switch class(boundary)
                 case 'cell'
-                    localOpName = [opName '_' boundary{2}];
                     blockId = boundary{1};
-                    op = obj.diffOps{blockId}.(localOpName);
-
+                    op = obj.diffOps{blockId}.getBoundaryQuadrature(boundary{2});
                     return
                 case 'multiblock.BoundaryGroup'
                     N = length(boundary);