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