Mercurial > repos > public > sbplib
annotate +multiblock/DiffOp.m @ 862:517d6019d63c bcSetupExperiment
I remove cell support in multiblock.DiffOp.boundary_condition
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Wed, 25 Jul 2018 15:17:16 -0700 |
| parents | e05465aa2e25 |
| children | 1cc5a0d26453 |
| 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 classdef DiffOp < scheme.Scheme |
|
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 properties |
|
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 grid |
|
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 order |
|
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 diffOps |
|
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
|
6 D |
|
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 H |
|
210
39b7dcb2c724
multiblock: Implemented boundary conditions.
Jonatan Werpers <jonatan@werpers.com>
parents:
202
diff
changeset
|
8 |
|
39b7dcb2c724
multiblock: Implemented boundary conditions.
Jonatan Werpers <jonatan@werpers.com>
parents:
202
diff
changeset
|
9 blockmatrixDiv |
|
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
|
10 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
|
11 |
|
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
|
12 methods |
|
721
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
13 function obj = DiffOp(doHand, g, order, doParam) |
|
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
|
14 % doHand -- may either be a function handle or a cell array of |
|
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
|
15 % function handles for each grid. The function handle(s) |
|
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
|
16 % should be on the form do = doHand(grid, order, ...) |
|
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
|
17 % Additional parameters for each doHand may be provided in |
|
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
|
18 % the doParam input. |
|
721
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
19 % g -- a multiblock grid |
|
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 % order -- integer specifying the order of accuracy |
|
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
|
21 % doParam -- may either be a cell array or a cell array of cell arrays |
|
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
|
22 % for each block. If it is a cell array with length equal |
|
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
|
23 % to the number of blocks then each element is sent to the |
|
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
|
24 % corresponding function handle as extra parameters: |
|
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 % doHand(..., doParam{i}{:}) Otherwise doParam is sent as |
|
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
|
26 % extra parameters to all doHand: doHand(..., doParam{:}) |
|
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
|
27 default_arg('doParam', []) |
|
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
|
28 |
|
721
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
29 [getHand, getParam] = parseInput(doHand, g, doParam); |
|
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
|
30 |
|
721
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
31 nBlocks = g.nBlocks(); |
|
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
|
32 |
|
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
|
33 obj.order = order; |
|
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
|
34 |
|
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
|
35 % Create the diffOps for each block |
|
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
|
36 obj.diffOps = cell(1, nBlocks); |
|
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
|
37 for i = 1:nBlocks |
|
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
|
38 h = getHand(i); |
|
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
|
39 p = getParam(i); |
|
343
ac30761d7bdb
Fixed bug in parameter parsing.
Jonatan Werpers <jonatan@werpers.com>
parents:
335
diff
changeset
|
40 if ~iscell(p) |
|
ac30761d7bdb
Fixed bug in parameter parsing.
Jonatan Werpers <jonatan@werpers.com>
parents:
335
diff
changeset
|
41 p = {p}; |
|
ac30761d7bdb
Fixed bug in parameter parsing.
Jonatan Werpers <jonatan@werpers.com>
parents:
335
diff
changeset
|
42 end |
|
721
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
43 obj.diffOps{i} = h(g.grids{i}, order, p{:}); |
|
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
|
44 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
|
45 |
|
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
|
46 |
|
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
|
47 % Build the norm matrix |
|
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
|
48 H = cell(nBlocks, nBlocks); |
|
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
|
49 for i = 1:nBlocks |
|
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
|
50 H{i,i} = obj.diffOps{i}.H; |
|
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
|
51 end |
|
210
39b7dcb2c724
multiblock: Implemented boundary conditions.
Jonatan Werpers <jonatan@werpers.com>
parents:
202
diff
changeset
|
52 obj.H = blockmatrix.toMatrix(H); |
|
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
|
53 |
|
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
|
54 |
|
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
|
55 % Build the differentiation matrix |
|
721
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
56 obj.blockmatrixDiv = {g.Ns, g.Ns}; |
|
233
b8ee5212f651
multiblock: Added a function to return number of points in each block for a mbGrid. Fixed a bug in DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
220
diff
changeset
|
57 D = blockmatrix.zero(obj.blockmatrixDiv); |
|
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
|
58 for i = 1:nBlocks |
|
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
|
59 D{i,i} = obj.diffOps{i}.D; |
|
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
|
60 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
|
61 |
|
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
|
62 for i = 1:nBlocks |
|
237
0fc1de5cd85b
multigrid.DiffOp: Bug fix.
Jonatan Werpers <jonatan@werpers.com>
parents:
233
diff
changeset
|
63 for j = 1:nBlocks |
|
721
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
64 intf = g.connections{i,j}; |
|
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
|
65 if isempty(intf) |
|
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
|
66 continue |
|
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
|
67 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
|
68 |
|
237
0fc1de5cd85b
multigrid.DiffOp: Bug fix.
Jonatan Werpers <jonatan@werpers.com>
parents:
233
diff
changeset
|
69 |
|
201
38f203f00f3a
Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
186
diff
changeset
|
70 [ii, ij] = obj.diffOps{i}.interface(intf{1}, obj.diffOps{j}, intf{2}); |
|
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
|
71 D{i,i} = D{i,i} + ii; |
|
233
b8ee5212f651
multiblock: Added a function to return number of points in each block for a mbGrid. Fixed a bug in DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
220
diff
changeset
|
72 D{i,j} = D{i,j} + ij; |
|
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
|
73 |
|
201
38f203f00f3a
Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
186
diff
changeset
|
74 [jj, ji] = obj.diffOps{j}.interface(intf{2}, obj.diffOps{i}, intf{1}); |
|
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
|
75 D{j,j} = D{j,j} + jj; |
|
233
b8ee5212f651
multiblock: Added a function to return number of points in each block for a mbGrid. Fixed a bug in DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
220
diff
changeset
|
76 D{j,i} = D{j,i} + ji; |
|
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
|
77 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
|
78 end |
|
210
39b7dcb2c724
multiblock: Implemented boundary conditions.
Jonatan Werpers <jonatan@werpers.com>
parents:
202
diff
changeset
|
79 obj.D = blockmatrix.toMatrix(D); |
|
722
89e14a85a2d0
Add missing assignment of obj.grid in multiblock.DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
721
diff
changeset
|
80 obj.grid = g; |
|
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
|
81 |
|
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
|
82 |
|
721
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
83 function [getHand, getParam] = parseInput(doHand, g, doParam) |
|
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
84 if ~isa(g, 'multiblock.Grid') |
|
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
|
85 error('multiblock:DiffOp:DiffOp:InvalidGrid', 'Requires a multiblock grid.'); |
|
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
|
86 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
|
87 |
|
721
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
88 if iscell(doHand) && length(doHand) == g.nBlocks() |
|
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
|
89 getHand = @(i)doHand{i}; |
|
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
|
90 elseif isa(doHand, 'function_handle') |
|
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
|
91 getHand = @(i)doHand; |
|
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
|
92 else |
|
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
|
93 error('multiblock:DiffOp:DiffOp:InvalidGridDoHand', 'doHand must be a function handle or a cell array of length grid.nBlocks'); |
|
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
|
94 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
|
95 |
|
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
|
96 if isempty(doParam) |
|
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
|
97 getParam = @(i){}; |
|
392
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
98 return |
|
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
99 end |
|
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
100 |
|
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
101 if ~iscell(doParam) |
|
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
102 getParam = @(i)doParam; |
|
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
103 return |
|
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
104 end |
|
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
105 |
|
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
106 % doParam is a non-empty cell-array |
|
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
107 |
|
721
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
108 if length(doParam) == g.nBlocks() && all(cellfun(@iscell, doParam)) |
|
392
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
109 % doParam is a cell-array of cell-arrays |
|
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
|
110 getParam = @(i)doParam{i}; |
|
392
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
111 return |
|
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
|
112 end |
|
392
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
113 |
|
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
114 getParam = @(i)doParam; |
|
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
|
115 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
|
116 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
|
117 |
|
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
|
118 function ops = splitOp(obj, op) |
|
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
|
119 % Splits a matrix operator into a cell-matrix of matrix operators for |
|
721
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
120 % each g. |
|
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
|
121 ops = sparse2cell(op, obj.NNN); |
|
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
|
122 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
|
123 |
|
532
b29f04ab5d99
Implement getBoundaryOperator for boundaryGroups in multiblock.DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
529
diff
changeset
|
124 % Get a boundary operator specified by opName for the given boundary/BoundaryGroup |
|
b29f04ab5d99
Implement getBoundaryOperator for boundaryGroups in multiblock.DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
529
diff
changeset
|
125 function op = getBoundaryOperator(obj, opName, boundary) |
|
529
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
126 switch class(boundary) |
|
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
127 case 'cell' |
|
532
b29f04ab5d99
Implement getBoundaryOperator for boundaryGroups in multiblock.DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
529
diff
changeset
|
128 localOpName = [opName '_' boundary{2}]; |
|
529
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
129 blockId = boundary{1}; |
|
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
130 localOp = obj.diffOps{blockId}.(localOpName); |
|
344
61b75d6d4899
Added get method for boundary operators on multiblock DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
343
diff
changeset
|
131 |
|
529
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
132 div = {obj.blockmatrixDiv{1}, size(localOp,2)}; |
|
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
133 blockOp = blockmatrix.zero(div); |
|
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
134 blockOp{blockId,1} = localOp; |
|
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
135 op = blockmatrix.toMatrix(blockOp); |
|
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
136 return |
|
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
137 case 'multiblock.BoundaryGroup' |
|
584
b0386d2c180d
In case of empty grids, make grid functions with the correct dimensions
Jonatan Werpers <jonatan@werpers.com>
parents:
534
diff
changeset
|
138 op = sparse(size(obj.D,1),0); |
|
532
b29f04ab5d99
Implement getBoundaryOperator for boundaryGroups in multiblock.DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
529
diff
changeset
|
139 for i = 1:length(boundary) |
|
b29f04ab5d99
Implement getBoundaryOperator for boundaryGroups in multiblock.DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
529
diff
changeset
|
140 op = [op, obj.getBoundaryOperator(opName, boundary{i})]; |
|
b29f04ab5d99
Implement getBoundaryOperator for boundaryGroups in multiblock.DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
529
diff
changeset
|
141 end |
|
529
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
142 otherwise |
|
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
143 error('Unknown boundary indentifier') |
|
344
61b75d6d4899
Added get method for boundary operators on multiblock DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
343
diff
changeset
|
144 end |
|
61b75d6d4899
Added get method for boundary operators on multiblock DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
343
diff
changeset
|
145 end |
|
61b75d6d4899
Added get method for boundary operators on multiblock DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
343
diff
changeset
|
146 |
|
764
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
147 function op = getBoundaryQuadrature(obj, boundary) |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
148 opName = 'H'; |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
149 switch class(boundary) |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
150 case 'cell' |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
151 localOpName = [opName '_' boundary{2}]; |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
152 blockId = boundary{1}; |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
153 op = obj.diffOps{blockId}.(localOpName); |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
154 |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
155 return |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
156 case 'multiblock.BoundaryGroup' |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
157 N = length(boundary); |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
158 H_bm = cell(N,N); |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
159 for i = 1:N |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
160 H_bm{i,i} = obj.getBoundaryQuadrature(boundary{i}); |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
161 end |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
162 op = blockmatrix.toMatrix(H_bm); |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
163 otherwise |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
164 error('Unknown boundary indentifier') |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
165 end |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
166 end |
|
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
167 |
|
335
2d48db7151cf
Bug fix in boundary condition.
Jonatan Werpers <jonatan@werpers.com>
parents:
237
diff
changeset
|
168 % Creates the closure and penalty matrix for a given boundary condition, |
|
346
33b2ef863519
Allowed muliple closure BCs in multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
344
diff
changeset
|
169 % boundary -- the name of the boundary on the form {id,name} where |
|
202
e2fefb6f0746
multiblock.DiffOp: Fleshed out boundary_condition() a bit more
Jonatan Werpers <jonatan@werpers.com>
parents:
201
diff
changeset
|
170 % id is the number of a block and name is the name of a |
|
529
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
171 % boundary of that block example: {1,'s'} or {3,'w'}. It |
|
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
172 % can also be a boundary group |
|
335
2d48db7151cf
Bug fix in boundary condition.
Jonatan Werpers <jonatan@werpers.com>
parents:
237
diff
changeset
|
173 function [closure, penalty] = boundary_condition(obj, boundary, type) |
|
529
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
174 switch class(boundary) |
|
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
175 case 'cell' |
|
534
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
176 [closure, penalty] = obj.singleBoundaryCondition(boundary, type); |
|
529
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
177 case 'multiblock.BoundaryGroup' |
|
534
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
178 [n,m] = size(obj.D); |
|
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
179 closure = sparse(n,m); |
|
584
b0386d2c180d
In case of empty grids, make grid functions with the correct dimensions
Jonatan Werpers <jonatan@werpers.com>
parents:
534
diff
changeset
|
180 penalty = sparse(n,0); |
|
534
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
181 for i = 1:length(boundary) |
|
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
182 [closurePart, penaltyPart] = obj.boundary_condition(boundary{i}, type); |
|
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
183 closure = closure + closurePart; |
|
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
184 penalty = [penalty, penaltyPart]; |
|
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
185 end |
|
529
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
186 otherwise |
|
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
187 error('Unknown boundary indentifier') |
|
346
33b2ef863519
Allowed muliple closure BCs in multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
344
diff
changeset
|
188 end |
|
210
39b7dcb2c724
multiblock: Implemented boundary conditions.
Jonatan Werpers <jonatan@werpers.com>
parents:
202
diff
changeset
|
189 |
|
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
|
190 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
|
191 |
|
533
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
192 function [closure, penalty] = singleBoundaryCondition(obj, boundary, type) |
|
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
193 I = boundary{1}; |
|
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
194 name = boundary{2}; |
|
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
195 |
|
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
196 % Get the closure and penaly matrices |
|
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
197 [blockClosure, blockPenalty] = obj.diffOps{I}.boundary_condition(name, type); |
|
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
198 |
|
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
199 % Expand to matrix for full domain. |
|
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
200 div = obj.blockmatrixDiv; |
|
862
517d6019d63c
I remove cell support in multiblock.DiffOp.boundary_condition
Jonatan Werpers <jonatan@werpers.com>
parents:
764
diff
changeset
|
201 temp = blockmatrix.zero(div); |
|
517d6019d63c
I remove cell support in multiblock.DiffOp.boundary_condition
Jonatan Werpers <jonatan@werpers.com>
parents:
764
diff
changeset
|
202 temp{I,I} = blockClosure; |
|
517d6019d63c
I remove cell support in multiblock.DiffOp.boundary_condition
Jonatan Werpers <jonatan@werpers.com>
parents:
764
diff
changeset
|
203 closure = blockmatrix.toMatrix(temp); |
|
533
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
204 |
|
862
517d6019d63c
I remove cell support in multiblock.DiffOp.boundary_condition
Jonatan Werpers <jonatan@werpers.com>
parents:
764
diff
changeset
|
205 div{2} = size(blockPenalty, 2); % Penalty is a column vector |
|
517d6019d63c
I remove cell support in multiblock.DiffOp.boundary_condition
Jonatan Werpers <jonatan@werpers.com>
parents:
764
diff
changeset
|
206 p = blockmatrix.zero(div); |
|
517d6019d63c
I remove cell support in multiblock.DiffOp.boundary_condition
Jonatan Werpers <jonatan@werpers.com>
parents:
764
diff
changeset
|
207 p{I} = blockPenalty; |
|
517d6019d63c
I remove cell support in multiblock.DiffOp.boundary_condition
Jonatan Werpers <jonatan@werpers.com>
parents:
764
diff
changeset
|
208 penalty = blockmatrix.toMatrix(p); |
|
533
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
209 end |
|
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
210 |
|
202
e2fefb6f0746
multiblock.DiffOp: Fleshed out boundary_condition() a bit more
Jonatan Werpers <jonatan@werpers.com>
parents:
201
diff
changeset
|
211 function [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary) |
|
522
68178e013868
Add not-implemented-error for interface method in multiblock.DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
438
diff
changeset
|
212 error('not implemented') |
|
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
|
213 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
|
214 |
|
201
38f203f00f3a
Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
186
diff
changeset
|
215 % Size returns the number of degrees of freedom |
|
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
|
216 function N = size(obj) |
|
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
|
217 N = 0; |
|
201
38f203f00f3a
Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
186
diff
changeset
|
218 for i = 1:length(obj.diffOps) |
|
38f203f00f3a
Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
186
diff
changeset
|
219 N = N + obj.diffOps{i}.size(); |
|
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
|
220 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
|
221 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
|
222 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
|
223 end |
