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 |