annotate +multiblock/DiffOp.m @ 764:e05465aa2e25 feature/grids

Add methods for getting boundary quadratures from multiblock.DiffOP
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 20 Jun 2018 13:00:01 +0200
parents 89e14a85a2d0
children 5cf9fdf4c98f 517d6019d63c
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 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;
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
201 if ~iscell(blockClosure)
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
202 temp = blockmatrix.zero(div);
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
203 temp{I,I} = blockClosure;
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
204 closure = blockmatrix.toMatrix(temp);
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
205 else
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
206 for i = 1:length(blockClosure)
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
207 temp = blockmatrix.zero(div);
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
208 temp{I,I} = blockClosure{i};
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
209 closure{i} = blockmatrix.toMatrix(temp);
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
210 end
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
211 end
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
212
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
213 if ~iscell(blockPenalty)
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
214 div{2} = size(blockPenalty, 2); % Penalty is a column vector
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
215 p = blockmatrix.zero(div);
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
216 p{I} = blockPenalty;
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
217 penalty = blockmatrix.toMatrix(p);
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
218 else
618
c360bbecf260 Add some todos
Jonatan Werpers <jonatan@werpers.com>
parents: 584
diff changeset
219 % TODO: used by beam equation, should be eliminated. SHould only set one BC per call
533
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
220 for i = 1:length(blockPenalty)
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
221 div{2} = size(blockPenalty{i}, 2); % Penalty is a column vector
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
222 p = blockmatrix.zero(div);
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
223 p{I} = blockPenalty{i};
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
224 penalty{i} = blockmatrix.toMatrix(p);
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
225 end
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
226 end
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
227 end
06d1606d6977 Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents: 532
diff changeset
228
202
e2fefb6f0746 multiblock.DiffOp: Fleshed out boundary_condition() a bit more
Jonatan Werpers <jonatan@werpers.com>
parents: 201
diff changeset
229 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
230 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
231 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
232
201
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 186
diff changeset
233 % 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
234 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
235 N = 0;
201
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 186
diff changeset
236 for i = 1:length(obj.diffOps)
38f203f00f3a Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents: 186
diff changeset
237 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
238 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
239 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
240 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
241 end