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