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)