annotate +multiblock/DiffOpTest.m @ 1037:2d7ba44340d0 feature/burgers1d

Pass scheme specific parameters as cell array. This will enabale constructDiffOps to be more general. In addition, allow for schemes returning function handles as diffOps, which is currently how non-linear schemes such as Burgers1d are implemented.
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Fri, 18 Jan 2019 09:02:02 +0100
parents 38f203f00f3a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
186
1fc2eeb4f4e6 Moved multiblock grid to the multiblock package. Continued implementation. Added multiblock diffOp and removed some functions no longer needed.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 function tests = DiffOpTest()
1fc2eeb4f4e6 Moved multiblock grid to the multiblock package. Continued implementation. Added multiblock diffOp and removed some functions no longer needed.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 tests = functiontests(localfunctions);
1fc2eeb4f4e6 Moved multiblock grid to the multiblock package. Continued implementation. Added multiblock diffOp and removed some functions no longer needed.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 end
1fc2eeb4f4e6 Moved multiblock grid to the multiblock package. Continued implementation. Added multiblock diffOp and removed some functions no longer needed.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4
1fc2eeb4f4e6 Moved multiblock grid to the multiblock package. Continued implementation. Added multiblock diffOp and removed some functions no longer needed.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 function testCreation(testCase)
201
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
6 do = newMultiblockOp();
186
1fc2eeb4f4e6 Moved multiblock grid to the multiblock package. Continued implementation. Added multiblock diffOp and removed some functions no longer needed.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 end
1fc2eeb4f4e6 Moved multiblock grid to the multiblock package. Continued implementation. Added multiblock diffOp and removed some functions no longer needed.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8
201
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
9 function testSplitOp(testCase)
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
10 testCase.verifyFail();
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
11 end
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
12
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
13 function testBoundary_condition(testCase)
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
14 testCase.verifyFail();
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
15 end
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
16
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
17 function testInterface(testCase)
189
6054dcd3c8a9 Added a class for boundary groups. Added methods stubs and failing tests.
Jonatan Werpers <jonatan@werpers.com>
parents: 186
diff changeset
18 testCase.verifyFail();
6054dcd3c8a9 Added a class for boundary groups. Added methods stubs and failing tests.
Jonatan Werpers <jonatan@werpers.com>
parents: 186
diff changeset
19 end
186
1fc2eeb4f4e6 Moved multiblock grid to the multiblock package. Continued implementation. Added multiblock diffOp and removed some functions no longer needed.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20
201
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
21 function testSize(testCase)
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
22 mbDo = newMultiblockOp();
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
23 testCase.verifyEqual(mbDo.size(), 15)
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
24 end
186
1fc2eeb4f4e6 Moved multiblock grid to the multiblock package. Continued implementation. Added multiblock diffOp and removed some functions no longer needed.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25
201
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
26
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
27 function do = mockDiffOp(size, bc, interface)
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
28 do.H = 1;
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
29 do.D = 1;
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
30
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
31 do.size = size;
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
32 do.boundary_condition = bc;
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
33 do.interface = interface;
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
34 end
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
35
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
36
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
37 function do = newMultiblockOp()
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
38 grids = {
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
39 grid.Cartesian([0 1 2], [3 4 5]);
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
40 grid.Cartesian([1 2 3], [10 20]);
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
41 };
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
42
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
43 conn = cell(2,2);
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
44 conn{1, 2} = {'s','n'};
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
45
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
46 mbGrid = multiblock.Grid(grids, conn);
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
47
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
48 function [c, p] = boundary_condition(~,~,~,~)
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
49 c = 1; p = 1;
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
50 end
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
51
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
52 function [c, p] = interface(~,~,~,~)
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
53 c = 1; p = 1;
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
54 end
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
55
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
56 doHand = @(grid,~)mockDiffOp(@(~)prod(grid.size()), @boundary_condition, @interface);
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
57
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
58 do = multiblock.DiffOp(doHand, mbGrid, 0);
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 189
diff changeset
59 end