comparison +multiblock/DiffOp.m @ 920:386ef449df51 feature/d1_staggered

Merge with default.
author Martin Almquist <malmquist@stanford.edu>
date Wed, 28 Nov 2018 17:35:19 -0800
parents 7d4f57725192 57760d7088ad
children
comparison
equal deleted inserted replaced
890:c70131daaa6e 920:386ef449df51
221 221
222 % Get the closure and penaly matrices 222 % Get the closure and penaly matrices
223 [blockClosure, blockPenalty] = obj.diffOps{I}.boundary_condition(name, type); 223 [blockClosure, blockPenalty] = obj.diffOps{I}.boundary_condition(name, type);
224 224
225 % Expand to matrix for full domain. 225 % Expand to matrix for full domain.
226 div = obj.blockmatrixDiv; 226 closure = multiblock.local2globalClosure(blockClosure, obj.blockmatrixDiv, I);
227 if ~iscell(blockClosure) 227 penalty = multiblock.local2globalPenalty(blockPenalty, obj.blockmatrixDiv, I);
228 temp = blockmatrix.zero(div);
229 temp{I,I} = blockClosure;
230 closure = blockmatrix.toMatrix(temp);
231 else
232 for i = 1:length(blockClosure)
233 temp = blockmatrix.zero(div);
234 temp{I,I} = blockClosure{i};
235 closure{i} = blockmatrix.toMatrix(temp);
236 end
237 end
238
239 if ~iscell(blockPenalty)
240 div{2} = size(blockPenalty, 2); % Penalty is a column vector
241 p = blockmatrix.zero(div);
242 p{I} = blockPenalty;
243 penalty = blockmatrix.toMatrix(p);
244 else
245 % TODO: used by beam equation, should be eliminated. SHould only set one BC per call
246 for i = 1:length(blockPenalty)
247 div{2} = size(blockPenalty{i}, 2); % Penalty is a column vector
248 p = blockmatrix.zero(div);
249 p{I} = blockPenalty{i};
250 penalty{i} = blockmatrix.toMatrix(p);
251 end
252 end
253 end 228 end
254 229
255 function [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary) 230 function [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary)
256 error('not implemented') 231 error('not implemented')
257 end 232 end