diff +multiblock/DiffOp.m @ 220:5df8d20281fe feature/beams

Made scheme boundary_condition return a cell array of penalties if there are several of them.
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 28 Jun 2016 13:11:14 +0200
parents 8b10476b9bb7
children b8ee5212f651
line wrap: on
line diff
--- a/+multiblock/DiffOp.m	Mon Jun 27 13:26:02 2016 +0200
+++ b/+multiblock/DiffOp.m	Tue Jun 28 13:11:14 2016 +0200
@@ -119,14 +119,20 @@
             div = obj.blockmatrixDiv;
             closure = blockmatrix.zero(div);
             closure{I,I} = blockClosure;
+            closure = blockmatrix.toMatrix(closure);
 
             div{2} = 1; % Penalty is a column vector
-            penalty = blockmatrix.zero(div);
-            penalty{I} = blockPenalty;
-
-            % Convert to matrix
-            closure = blockmatrix.toMatrix(closure);
-            penalty = blockmatrix.toMatrix(penalty);
+            if ~iscell(blockPenalty)
+                p = blockmatrix.zero(div);
+                p{I} = blockPenalty;
+                penalty = blockmatrix.toMatrix(p);
+            else
+                for i = 1:length(blockPenalty)
+                    p = blockmatrix.zero(div);
+                    p{I} = blockPenalty{i};
+                    penalty{i} = blockmatrix.toMatrix(p);
+                end
+            end
         end
 
         function [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary)