Mercurial > repos > public > sbplib
comparison +multiblock/DiffOp.m @ 764:e05465aa2e25 feature/grids
Add methods for getting boundary quadratures from multiblock.DiffOP
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Wed, 20 Jun 2018 13:00:01 +0200 |
| parents | 89e14a85a2d0 |
| children | 5cf9fdf4c98f 517d6019d63c |
comparison
equal
deleted
inserted
replaced
| 763:f2f5efc3644f | 764:e05465aa2e25 |
|---|---|
| 137 case 'multiblock.BoundaryGroup' | 137 case 'multiblock.BoundaryGroup' |
| 138 op = sparse(size(obj.D,1),0); | 138 op = sparse(size(obj.D,1),0); |
| 139 for i = 1:length(boundary) | 139 for i = 1:length(boundary) |
| 140 op = [op, obj.getBoundaryOperator(opName, boundary{i})]; | 140 op = [op, obj.getBoundaryOperator(opName, boundary{i})]; |
| 141 end | 141 end |
| 142 otherwise | |
| 143 error('Unknown boundary indentifier') | |
| 144 end | |
| 145 end | |
| 146 | |
| 147 function op = getBoundaryQuadrature(obj, boundary) | |
| 148 opName = 'H'; | |
| 149 switch class(boundary) | |
| 150 case 'cell' | |
| 151 localOpName = [opName '_' boundary{2}]; | |
| 152 blockId = boundary{1}; | |
| 153 op = obj.diffOps{blockId}.(localOpName); | |
| 154 | |
| 155 return | |
| 156 case 'multiblock.BoundaryGroup' | |
| 157 N = length(boundary); | |
| 158 H_bm = cell(N,N); | |
| 159 for i = 1:N | |
| 160 H_bm{i,i} = obj.getBoundaryQuadrature(boundary{i}); | |
| 161 end | |
| 162 op = blockmatrix.toMatrix(H_bm); | |
| 142 otherwise | 163 otherwise |
| 143 error('Unknown boundary indentifier') | 164 error('Unknown boundary indentifier') |
| 144 end | 165 end |
| 145 end | 166 end |
| 146 | 167 |
