Mercurial > repos > public > sbplib
comparison +multiblock/DiffOp.m @ 532:b29f04ab5d99 feature/boundaryGroup
Implement getBoundaryOperator for boundaryGroups in multiblock.DiffOp
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Thu, 03 Aug 2017 17:38:05 +0200 |
| parents | 2ec8080027ab |
| children | 06d1606d6977 |
comparison
equal
deleted
inserted
replaced
| 531:d5bc51537a8c | 532:b29f04ab5d99 |
|---|---|
| 118 % Splits a matrix operator into a cell-matrix of matrix operators for | 118 % Splits a matrix operator into a cell-matrix of matrix operators for |
| 119 % each grid. | 119 % each grid. |
| 120 ops = sparse2cell(op, obj.NNN); | 120 ops = sparse2cell(op, obj.NNN); |
| 121 end | 121 end |
| 122 | 122 |
| 123 % Get a boundary operator specified by op for the given boundary/BoundaryGroup | 123 % Get a boundary operator specified by opName for the given boundary/BoundaryGroup |
| 124 function op = getBoundaryOperator(obj, op, boundary) | 124 function op = getBoundaryOperator(obj, opName, boundary) |
| 125 switch class(boundary) | 125 switch class(boundary) |
| 126 case 'cell' | 126 case 'cell' |
| 127 localOpName = [op '_' boundary{2}]; | 127 localOpName = [opName '_' boundary{2}]; |
| 128 blockId = boundary{1}; | 128 blockId = boundary{1}; |
| 129 localOp = obj.diffOps{blockId}.(localOpName); | 129 localOp = obj.diffOps{blockId}.(localOpName); |
| 130 | 130 |
| 131 div = {obj.blockmatrixDiv{1}, size(localOp,2)}; | 131 div = {obj.blockmatrixDiv{1}, size(localOp,2)}; |
| 132 blockOp = blockmatrix.zero(div); | 132 blockOp = blockmatrix.zero(div); |
| 133 blockOp{blockId,1} = localOp; | 133 blockOp{blockId,1} = localOp; |
| 134 op = blockmatrix.toMatrix(blockOp); | 134 op = blockmatrix.toMatrix(blockOp); |
| 135 return | 135 return |
| 136 case 'multiblock.BoundaryGroup' | 136 case 'multiblock.BoundaryGroup' |
| 137 error('not implemented') | 137 op = []; |
| 138 for i = 1:length(boundary) | |
| 139 op = [op, obj.getBoundaryOperator(opName, boundary{i})]; | |
| 140 end | |
| 138 otherwise | 141 otherwise |
| 139 error('Unknown boundary indentifier') | 142 error('Unknown boundary indentifier') |
| 140 end | 143 end |
| 141 end | 144 end |
| 142 | 145 |
