comparison +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
comparison
equal deleted inserted replaced
898:bd79326ebcd0 902:306f5b3cd7bc
199 199
200 % Get the closure and penaly matrices 200 % Get the closure and penaly matrices
201 [blockClosure, blockPenalty] = obj.diffOps{I}.boundary_condition(name, type); 201 [blockClosure, blockPenalty] = obj.diffOps{I}.boundary_condition(name, type);
202 202
203 % Expand to matrix for full domain. 203 % Expand to matrix for full domain.
204 div = obj.blockmatrixDiv; 204 closure = multiblock.local2globalClosure(blockClosure, obj.blockmatrixDiv, I);
205 if ~iscell(blockClosure) 205 penalty = multiblock.local2globalPenalty(blockPenalty, obj.blockmatrixDiv, I);
206 temp = blockmatrix.zero(div);
207 temp{I,I} = blockClosure;
208 closure = blockmatrix.toMatrix(temp);
209 else
210 for i = 1:length(blockClosure)
211 temp = blockmatrix.zero(div);
212 temp{I,I} = blockClosure{i};
213 closure{i} = blockmatrix.toMatrix(temp);
214 end
215 end
216
217 if ~iscell(blockPenalty)
218 div{2} = size(blockPenalty, 2); % Penalty is a column vector
219 p = blockmatrix.zero(div);
220 p{I} = blockPenalty;
221 penalty = blockmatrix.toMatrix(p);
222 else
223 % TODO: used by beam equation, should be eliminated. SHould only set one BC per call
224 for i = 1:length(blockPenalty)
225 div{2} = size(blockPenalty{i}, 2); % Penalty is a column vector
226 p = blockmatrix.zero(div);
227 p{I} = blockPenalty{i};
228 penalty{i} = blockmatrix.toMatrix(p);
229 end
230 end
231 end 206 end
232 207
233 function [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary) 208 function [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary)
234 error('not implemented') 209 error('not implemented')
235 end 210 end