Mercurial > repos > public > sbplib
changeset 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 | 443b14ea705b |
children | eaf557023fbe |
files | +multiblock/DiffOp.m +multiblock/Grid.m |
diffstat | 2 files changed, 14 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
diff -r 443b14ea705b -r b8ee5212f651 +multiblock/DiffOp.m --- a/+multiblock/DiffOp.m Tue Jul 12 16:32:36 2016 +0200 +++ b/+multiblock/DiffOp.m Tue Jul 12 17:08:15 2016 +0200 @@ -50,7 +50,8 @@ % Build the differentiation matrix - D = cell(nBlocks, nBlocks); + obj.blockmatrixDiv = {grid.Ns, grid.Ns}; + D = blockmatrix.zero(obj.blockmatrixDiv); for i = 1:nBlocks D{i,i} = obj.diffOps{i}.D; end @@ -64,16 +65,15 @@ [ii, ij] = obj.diffOps{i}.interface(intf{1}, obj.diffOps{j}, intf{2}); D{i,i} = D{i,i} + ii; - D{i,j} = ij; + D{i,j} = D{i,j} + ij; [jj, ji] = obj.diffOps{j}.interface(intf{2}, obj.diffOps{i}, intf{1}); D{j,j} = D{j,j} + jj; - D{j,i} = ji; + D{j,i} = D{j,i} + ji; end end obj.D = blockmatrix.toMatrix(D); - obj.blockmatrixDiv = blockmatrix.getDivision(D); function [getHand, getParam] = parseInput(doHand, grid, doParam) if ~isa(grid, 'multiblock.Grid')
diff -r 443b14ea705b -r b8ee5212f651 +multiblock/Grid.m --- a/+multiblock/Grid.m Tue Jul 12 16:32:36 2016 +0200 +++ b/+multiblock/Grid.m Tue Jul 12 17:08:15 2016 +0200 @@ -34,11 +34,20 @@ n = length(obj.grids); end - % n returns the number of points in the grid + % N returns the number of points in the grid function o = N(obj) o = obj.nPoints; end + % Ns returns the number of points in each sub grid as a vector + function o = Ns(obj) + ns = zeros(1,obj.nBlocks); + for i = 1:obj.nBlocks; + ns(i) = obj.grids{i}.N(); + end + o = ns; + end + function n = nBlocks(obj) n = length(obj.grids); end