comparison +multiblock/DiffOp.m @ 964:99c2ef883dc6 feature/poroelastic

Fix warning in getBoundaryWrapper methods
author Martin Almquist <malmquist@stanford.edu>
date Wed, 19 Dec 2018 07:09:24 +0100
parents 262b52c3f268
children a4ad90b37998
comparison
equal deleted inserted replaced
963:c75ddd568fcc 964:99c2ef883dc6
148 end 148 end
149 end 149 end
150 150
151 % Get a boundary operator specified by opName for the given boundary/BoundaryGroup 151 % Get a boundary operator specified by opName for the given boundary/BoundaryGroup
152 function op = getBoundaryOperatorWrapper(obj, opName, boundary, blockmatrixDiv) 152 function op = getBoundaryOperatorWrapper(obj, opName, boundary, blockmatrixDiv)
153 default_arg('blockmatrixDiv', obj.blockmatrixDiv); 153 default_arg('blockmatrixDiv', obj.blockmatrixDiv{1});
154 154
155 switch class(boundary) 155 switch class(boundary)
156 case 'cell' 156 case 'cell'
157 blockId = boundary{1}; 157 blockId = boundary{1};
158 localOp = obj.diffOps{blockId}.get_boundary_operator(opName, boundary{2}); 158 localOp = obj.diffOps{blockId}.get_boundary_operator(opName, boundary{2});
161 blockOp = blockmatrix.zero(div); 161 blockOp = blockmatrix.zero(div);
162 blockOp{blockId,1} = localOp; 162 blockOp{blockId,1} = localOp;
163 op = blockmatrix.toMatrix(blockOp); 163 op = blockmatrix.toMatrix(blockOp);
164 return 164 return
165 case 'multiblock.BoundaryGroup' 165 case 'multiblock.BoundaryGroup'
166 op = []; 166 op = sparse(sum(blockmatrixDiv),0);
167 for i = 1:length(boundary) 167 for i = 1:length(boundary)
168 op = [op, obj.getBoundaryOperatorWrapper(opName, boundary{i}, blockmatrixDiv)]; 168 op = [op, obj.getBoundaryOperatorWrapper(opName, boundary{i}, blockmatrixDiv)];
169 end 169 end
170 otherwise 170 otherwise
171 error('Unknown boundary indentifier') 171 error('Unknown boundary indentifier')
172 end 172 end
173 end 173 end
174 174
175 % Get a boundary cell of operators, specified by opName for the given boundary/BoundaryGroup 175 % Get a boundary cell of operators, specified by opName for the given boundary/BoundaryGroup
176 function opCell = getBoundaryCellOperator(obj, opName, boundary, blockmatrixDiv) 176 function opCell = getBoundaryCellOperator(obj, opName, boundary, blockmatrixDiv)
177 default_arg('blockmatrixDiv', obj.blockmatrixDiv); 177 default_arg('blockmatrixDiv', obj.blockmatrixDiv{1});
178 178
179 % Get size of cell 179 % Get size of cell
180 switch class(boundary) 180 switch class(boundary)
181 case 'cell' 181 case 'cell'
182 blockId = boundary{1}; 182 blockId = boundary{1};
202 blockOp{blockId,1} = localOp; 202 blockOp{blockId,1} = localOp;
203 op = blockmatrix.toMatrix(blockOp); 203 op = blockmatrix.toMatrix(blockOp);
204 opCell{i} = op; 204 opCell{i} = op;
205 205
206 case 'multiblock.BoundaryGroup' 206 case 'multiblock.BoundaryGroup'
207 op = sparse(size(obj.D,1),0); 207 op = sparse(sum(blockmatrixDiv),0);
208 for j = 1:length(boundary) 208 for j = 1:length(boundary)
209 localCell = obj.getBoundaryCellOperator(opName, boundary{j}, blockmatrixDiv); 209 localCell = obj.getBoundaryCellOperator(opName, boundary{j}, blockmatrixDiv);
210 op = [op, localCell{i}]; 210 op = [op, localCell{i}];
211 end 211 end
212 opCell{i} = op; 212 opCell{i} = op;