Mercurial > repos > public > sbplib
comparison +multiblock/DiffOp.m @ 233:b8ee5212f651 feature/beams
multiblock: Added a function to return number of points in each block for a mbGrid. Fixed a bug in DiffOp.
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Tue, 12 Jul 2016 17:08:15 +0200 |
| parents | 5df8d20281fe |
| children | 0fc1de5cd85b |
comparison
equal
deleted
inserted
replaced
| 232:443b14ea705b | 233:b8ee5212f651 |
|---|---|
| 48 end | 48 end |
| 49 obj.H = blockmatrix.toMatrix(H); | 49 obj.H = blockmatrix.toMatrix(H); |
| 50 | 50 |
| 51 | 51 |
| 52 % Build the differentiation matrix | 52 % Build the differentiation matrix |
| 53 D = cell(nBlocks, nBlocks); | 53 obj.blockmatrixDiv = {grid.Ns, grid.Ns}; |
| 54 D = blockmatrix.zero(obj.blockmatrixDiv); | |
| 54 for i = 1:nBlocks | 55 for i = 1:nBlocks |
| 55 D{i,i} = obj.diffOps{i}.D; | 56 D{i,i} = obj.diffOps{i}.D; |
| 56 end | 57 end |
| 57 | 58 |
| 58 for i = 1:nBlocks | 59 for i = 1:nBlocks |
| 62 continue | 63 continue |
| 63 end | 64 end |
| 64 | 65 |
| 65 [ii, ij] = obj.diffOps{i}.interface(intf{1}, obj.diffOps{j}, intf{2}); | 66 [ii, ij] = obj.diffOps{i}.interface(intf{1}, obj.diffOps{j}, intf{2}); |
| 66 D{i,i} = D{i,i} + ii; | 67 D{i,i} = D{i,i} + ii; |
| 67 D{i,j} = ij; | 68 D{i,j} = D{i,j} + ij; |
| 68 | 69 |
| 69 [jj, ji] = obj.diffOps{j}.interface(intf{2}, obj.diffOps{i}, intf{1}); | 70 [jj, ji] = obj.diffOps{j}.interface(intf{2}, obj.diffOps{i}, intf{1}); |
| 70 D{j,j} = D{j,j} + jj; | 71 D{j,j} = D{j,j} + jj; |
| 71 D{j,i} = ji; | 72 D{j,i} = D{j,i} + ji; |
| 72 end | 73 end |
| 73 end | 74 end |
| 74 obj.D = blockmatrix.toMatrix(D); | 75 obj.D = blockmatrix.toMatrix(D); |
| 75 | 76 |
| 76 obj.blockmatrixDiv = blockmatrix.getDivision(D); | |
| 77 | 77 |
| 78 function [getHand, getParam] = parseInput(doHand, grid, doParam) | 78 function [getHand, getParam] = parseInput(doHand, grid, doParam) |
| 79 if ~isa(grid, 'multiblock.Grid') | 79 if ~isa(grid, 'multiblock.Grid') |
| 80 error('multiblock:DiffOp:DiffOp:InvalidGrid', 'Requires a multiblock grid.'); | 80 error('multiblock:DiffOp:DiffOp:InvalidGrid', 'Requires a multiblock grid.'); |
| 81 end | 81 end |
