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 |