Mercurial > repos > public > sbplib
diff +multiblock/DiffOp.m @ 902:306f5b3cd7bc
Merged in bcSetupExperiment (pull request #10)
Improved bulk boundary condition handling
Approved-by: Martin Almquist <malmquist@stanford.edu>
author | Jonatan Werpers <jonatan.werpers@it.uu.se> |
---|---|
date | Sat, 24 Nov 2018 14:55:48 +0000 |
parents | 57760d7088ad |
children | 386ef449df51 21394c78c72e |
line wrap: on
line diff
--- a/+multiblock/DiffOp.m Thu Nov 22 10:44:11 2018 +0100 +++ b/+multiblock/DiffOp.m Sat Nov 24 14:55:48 2018 +0000 @@ -201,33 +201,8 @@ [blockClosure, blockPenalty] = obj.diffOps{I}.boundary_condition(name, type); % Expand to matrix for full domain. - div = obj.blockmatrixDiv; - if ~iscell(blockClosure) - temp = blockmatrix.zero(div); - temp{I,I} = blockClosure; - closure = blockmatrix.toMatrix(temp); - else - for i = 1:length(blockClosure) - temp = blockmatrix.zero(div); - temp{I,I} = blockClosure{i}; - closure{i} = blockmatrix.toMatrix(temp); - end - end - - if ~iscell(blockPenalty) - div{2} = size(blockPenalty, 2); % Penalty is a column vector - p = blockmatrix.zero(div); - p{I} = blockPenalty; - penalty = blockmatrix.toMatrix(p); - else - % TODO: used by beam equation, should be eliminated. SHould only set one BC per call - for i = 1:length(blockPenalty) - div{2} = size(blockPenalty{i}, 2); % Penalty is a column vector - p = blockmatrix.zero(div); - p{I} = blockPenalty{i}; - penalty{i} = blockmatrix.toMatrix(p); - end - end + closure = multiblock.local2globalClosure(blockClosure, obj.blockmatrixDiv, I); + penalty = multiblock.local2globalPenalty(blockPenalty, obj.blockmatrixDiv, I); end function [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary)