comparison +multiblock/DiffOp.m @ 1007:9c8ed00732fd feature/getBoundaryOp

Revert to old code in multiblock.DiffOp.getBoundaryOperator.
author Martin Almquist <malmquist@stanford.edu>
date Wed, 16 Jan 2019 11:31:04 -0800
parents a3accd2f1283
children 60c875c18de3
comparison
equal deleted inserted replaced
1006:de8c979b9881 1007:9c8ed00732fd
127 ops = sparse2cell(op, obj.NNN); 127 ops = sparse2cell(op, obj.NNN);
128 end 128 end
129 129
130 % Get a boundary operator specified by opName for the given boundary/BoundaryGroup 130 % Get a boundary operator specified by opName for the given boundary/BoundaryGroup
131 function op = getBoundaryOperator(obj, opName, boundary) 131 function op = getBoundaryOperator(obj, opName, boundary)
132 blockmatrixDiv = obj.blockmatrixDiv{1};
133 132
134 switch class(boundary) 133 switch class(boundary)
135 case 'cell' 134 case 'cell'
136 blockId = boundary{1}; 135 blockId = boundary{1};
137 localOp = obj.diffOps{blockId}.getBoundaryOperator(opName, boundary{2}); 136 localOp = obj.diffOps{blockId}.getBoundaryOperator(opName, boundary{2});
138 137
139 div = {blockmatrixDiv, size(localOp,2)}; 138 div = {obj.blockmatrixDiv{1}, size(localOp,2)};
140 blockOp = blockmatrix.zero(div); 139 blockOp = blockmatrix.zero(div);
141 blockOp{blockId,1} = localOp; 140 blockOp{blockId,1} = localOp;
142 op = blockmatrix.toMatrix(blockOp); 141 op = blockmatrix.toMatrix(blockOp);
143 return 142 return
144 case 'multiblock.BoundaryGroup' 143 case 'multiblock.BoundaryGroup'
145 op = sparse(sum(blockmatrixDiv),0); 144 op = sparse(size(obj.D,1),0);
146 for i = 1:length(boundary) 145 for i = 1:length(boundary)
147 op = [op, obj.getBoundaryOperator(opName, boundary{i})]; 146 op = [op, obj.getBoundaryOperator(opName, boundary{i})];
148 end 147 end
149 otherwise 148 otherwise
150 error('Unknown boundary indentifier') 149 error('Unknown boundary indentifier')