Mercurial > repos > public > sbplib
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);