Mercurial > repos > public > sbplib
changeset 201:38f203f00f3a feature/grids
Exeendend tests of multiblock.DiffOp.
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 14 Jun 2016 15:07:34 +0200 |
parents | d18096820ed4 |
children | e2fefb6f0746 |
files | +multiblock/DiffOp.m +multiblock/DiffOpTest.m |
diffstat | 2 files changed, 54 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/+multiblock/DiffOp.m Mon Jun 13 16:50:16 2016 +0200 +++ b/+multiblock/DiffOp.m Tue Jun 14 15:07:34 2016 +0200 @@ -35,7 +35,7 @@ for i = 1:nBlocks h = getHand(i); p = getParam(i); - obj.diffOps{i} = h(grid.grid{i}, order, p{:}); + obj.diffOps{i} = h(grid.grids{i}, order, p{:}); end @@ -60,11 +60,11 @@ continue end - [ii, ij] = obj.diffOps{i}.inteface_coupling(intf{1}, obj.diffOps{j}, intf{2}); + [ii, ij] = obj.diffOps{i}.interface(intf{1}, obj.diffOps{j}, intf{2}); D{i,i} = D{i,i} + ii; D{i,j} = D{i,j} + ij; - [jj, ji] = obj.diffOps{j}.inteface_coupling(intf{2}, obj.diffOps{i}, intf{1}); + [jj, ji] = obj.diffOps{j}.interface(intf{2}, obj.diffOps{i}, intf{1}); D{j,j} = D{j,j} + jj; D{j,i} = D{j,i} + ji; end @@ -111,10 +111,11 @@ end + % Size returns the number of degrees of freedom function N = size(obj) N = 0; - for i = 1:length(diffOps) - N = N + diffOps.size(); + for i = 1:length(obj.diffOps) + N = N + obj.diffOps{i}.size(); end end end
--- a/+multiblock/DiffOpTest.m Mon Jun 13 16:50:16 2016 +0200 +++ b/+multiblock/DiffOpTest.m Tue Jun 14 15:07:34 2016 +0200 @@ -3,18 +3,57 @@ end function testCreation(testCase) - g = multiblock.Grid({},{}); - doHand = @(grid,order)[]; - order = 0; - do = multiblock.DiffOp(doHand, g, order); + do = newMultiblockOp(); end -function testMissing(testCase) +function testSplitOp(testCase) + testCase.verifyFail(); +end + +function testBoundary_condition(testCase) + testCase.verifyFail(); +end + +function testInterface(testCase) testCase.verifyFail(); end +function testSize(testCase) + mbDo = newMultiblockOp(); + testCase.verifyEqual(mbDo.size(), 15) +end -% function do = mockDiffOp() -% do.H = 1; -% do.D = 1; -% end \ No newline at end of file + +function do = mockDiffOp(size, bc, interface) + do.H = 1; + do.D = 1; + + do.size = size; + do.boundary_condition = bc; + do.interface = interface; +end + + +function do = newMultiblockOp() + grids = { + grid.Cartesian([0 1 2], [3 4 5]); + grid.Cartesian([1 2 3], [10 20]); + }; + + conn = cell(2,2); + conn{1, 2} = {'s','n'}; + + mbGrid = multiblock.Grid(grids, conn); + + function [c, p] = boundary_condition(~,~,~,~) + c = 1; p = 1; + end + + function [c, p] = interface(~,~,~,~) + c = 1; p = 1; + end + + doHand = @(grid,~)mockDiffOp(@(~)prod(grid.size()), @boundary_condition, @interface); + + do = multiblock.DiffOp(doHand, mbGrid, 0); +end \ No newline at end of file