comparison +multiblock/DiffOp.m @ 1100:27aaf8646a80 feature/timesteppers

Merge with default
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 09 Apr 2019 21:48:30 +0200
parents 9c8ed00732fd
children 60c875c18de3
comparison
equal deleted inserted replaced
1099:d4fe089b2c4a 1100:27aaf8646a80
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