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
diff -r d18096820ed4 -r 38f203f00f3a +multiblock/DiffOp.m
--- 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
diff -r d18096820ed4 -r 38f203f00f3a +multiblock/DiffOpTest.m
--- 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