Mercurial > repos > public > sbplib
changeset 903:703183ed8c8b feature/utux2D
Include interface type in multiblock.DiffOp, passed to all scheme.interface methods.
author | Martin Almquist <malmquist@stanford.edu> |
---|---|
date | Thu, 22 Nov 2018 22:01:58 -0800 |
parents | 0be9b4d6737b |
children | 14b093a344eb |
files | +multiblock/DiffOp.m |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
diff -r 0be9b4d6737b -r 703183ed8c8b +multiblock/DiffOp.m --- a/+multiblock/DiffOp.m Tue May 22 13:31:09 2018 -0700 +++ b/+multiblock/DiffOp.m Thu Nov 22 22:01:58 2018 -0800 @@ -10,7 +10,7 @@ end methods - function obj = DiffOp(doHand, grid, order, doParam) + function obj = DiffOp(doHand, grid, order, doParam, interfaceType) % doHand -- may either be a function handle or a cell array of % function handles for each grid. The function handle(s) % should be on the form do = doHand(grid, order, ...) @@ -24,11 +24,17 @@ % corresponding function handle as extra parameters: % doHand(..., doParam{i}{:}) Otherwise doParam is sent as % extra parameters to all doHand: doHand(..., doParam{:}) + % + % interfaceType -- nBlocks x nBlocks cell array of types that specify + % that particular block-coupling is handled. (Could + % be non-conforming interface, etc.) + % Default: empty cell array. default_arg('doParam', []) [getHand, getParam] = parseInput(doHand, grid, doParam); nBlocks = grid.nBlocks(); + default_arg('interfaceType', cell(nBlocks, nBlocks)); obj.order = order; @@ -66,12 +72,11 @@ continue end - - [ii, ij] = obj.diffOps{i}.interface(intf{1}, obj.diffOps{j}, intf{2}); + [ii, ij] = obj.diffOps{i}.interface(intf{1}, obj.diffOps{j}, intf{2}, interfaceType{i,j}); D{i,i} = D{i,i} + ii; D{i,j} = D{i,j} + ij; - [jj, ji] = obj.diffOps{j}.interface(intf{2}, obj.diffOps{i}, intf{1}); + [jj, ji] = obj.diffOps{j}.interface(intf{2}, obj.diffOps{i}, intf{1}, interfaceType{j,i}); D{j,j} = D{j,j} + jj; D{j,i} = D{j,i} + ji; end