comparison +multiblock/DiffOp.m @ 1197:433c89bf19e0 feature/rv

Merge with default
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Wed, 07 Aug 2019 15:23:42 +0200
parents 9c8ed00732fd
children 60c875c18de3
comparison
equal deleted inserted replaced
1196:f6c571d8f22f 1197:433c89bf19e0
127 ops = sparse2cell(op, obj.NNN); 127 ops = sparse2cell(op, obj.NNN);
128 end 128 end
129 129
130 % Get a boundary operator specified by opName for the given boundary/BoundaryGroup 130 % Get a boundary operator specified by opName for the given boundary/BoundaryGroup
131 function op = getBoundaryOperator(obj, opName, boundary) 131 function op = getBoundaryOperator(obj, opName, boundary)
132
132 switch class(boundary) 133 switch class(boundary)
133 case 'cell' 134 case 'cell'
134 localOpName = [opName '_' boundary{2}];
135 blockId = boundary{1}; 135 blockId = boundary{1};
136 localOp = obj.diffOps{blockId}.(localOpName); 136 localOp = obj.diffOps{blockId}.getBoundaryOperator(opName, boundary{2});
137 137
138 div = {obj.blockmatrixDiv{1}, size(localOp,2)}; 138 div = {obj.blockmatrixDiv{1}, size(localOp,2)};
139 blockOp = blockmatrix.zero(div); 139 blockOp = blockmatrix.zero(div);
140 blockOp{blockId,1} = localOp; 140 blockOp{blockId,1} = localOp;
141 op = blockmatrix.toMatrix(blockOp); 141 op = blockmatrix.toMatrix(blockOp);
149 error('Unknown boundary indentifier') 149 error('Unknown boundary indentifier')
150 end 150 end
151 end 151 end
152 152
153 function op = getBoundaryQuadrature(obj, boundary) 153 function op = getBoundaryQuadrature(obj, boundary)
154 opName = 'H';
155 switch class(boundary) 154 switch class(boundary)
156 case 'cell' 155 case 'cell'
157 localOpName = [opName '_' boundary{2}];
158 blockId = boundary{1}; 156 blockId = boundary{1};
159 op = obj.diffOps{blockId}.(localOpName); 157 op = obj.diffOps{blockId}.getBoundaryQuadrature(boundary{2});
160
161 return 158 return
162 case 'multiblock.BoundaryGroup' 159 case 'multiblock.BoundaryGroup'
163 N = length(boundary); 160 N = length(boundary);
164 H_bm = cell(N,N); 161 H_bm = cell(N,N);
165 for i = 1:N 162 for i = 1:N