Mercurial > repos > public > sbplib
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 |