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; |
