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 |