Mercurial > repos > public > sbplib
comparison +multiblock/DiffOp.m @ 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 | 1fc2eeb4f4e6 |
| children | e2fefb6f0746 |
comparison
equal
deleted
inserted
replaced
| 199:d18096820ed4 | 201:38f203f00f3a |
|---|---|
| 33 % Create the diffOps for each block | 33 % Create the diffOps for each block |
| 34 obj.diffOps = cell(1, nBlocks); | 34 obj.diffOps = cell(1, nBlocks); |
| 35 for i = 1:nBlocks | 35 for i = 1:nBlocks |
| 36 h = getHand(i); | 36 h = getHand(i); |
| 37 p = getParam(i); | 37 p = getParam(i); |
| 38 obj.diffOps{i} = h(grid.grid{i}, order, p{:}); | 38 obj.diffOps{i} = h(grid.grids{i}, order, p{:}); |
| 39 end | 39 end |
| 40 | 40 |
| 41 | 41 |
| 42 % Build the norm matrix | 42 % Build the norm matrix |
| 43 H = cell(nBlocks, nBlocks); | 43 H = cell(nBlocks, nBlocks); |
| 58 intf = grid.connections{i,j}; | 58 intf = grid.connections{i,j}; |
| 59 if isempty(intf) | 59 if isempty(intf) |
| 60 continue | 60 continue |
| 61 end | 61 end |
| 62 | 62 |
| 63 [ii, ij] = obj.diffOps{i}.inteface_coupling(intf{1}, obj.diffOps{j}, intf{2}); | 63 [ii, ij] = obj.diffOps{i}.interface(intf{1}, obj.diffOps{j}, intf{2}); |
| 64 D{i,i} = D{i,i} + ii; | 64 D{i,i} = D{i,i} + ii; |
| 65 D{i,j} = D{i,j} + ij; | 65 D{i,j} = D{i,j} + ij; |
| 66 | 66 |
| 67 [jj, ji] = obj.diffOps{j}.inteface_coupling(intf{2}, obj.diffOps{i}, intf{1}); | 67 [jj, ji] = obj.diffOps{j}.interface(intf{2}, obj.diffOps{i}, intf{1}); |
| 68 D{j,j} = D{j,j} + jj; | 68 D{j,j} = D{j,j} + jj; |
| 69 D{j,i} = D{j,i} + ji; | 69 D{j,i} = D{j,i} + ji; |
| 70 end | 70 end |
| 71 end | 71 end |
| 72 obj.D = cell2sparse(D); | 72 obj.D = cell2sparse(D); |
| 109 function m = interface(obj,boundary,neighbour_scheme,neighbour_boundary) | 109 function m = interface(obj,boundary,neighbour_scheme,neighbour_boundary) |
| 110 | 110 |
| 111 end | 111 end |
| 112 | 112 |
| 113 | 113 |
| 114 % Size returns the number of degrees of freedom | |
| 114 function N = size(obj) | 115 function N = size(obj) |
| 115 N = 0; | 116 N = 0; |
| 116 for i = 1:length(diffOps) | 117 for i = 1:length(obj.diffOps) |
| 117 N = N + diffOps.size(); | 118 N = N + obj.diffOps{i}.size(); |
| 118 end | 119 end |
| 119 end | 120 end |
| 120 end | 121 end |
| 121 end | 122 end |
