Mercurial > repos > public > sbplib
annotate +multiblock/DiffOp.m @ 962:262b52c3f268 feature/poroelastic
Bugfix in multiblock.DiffOp/getBoundaryOperatorWrapper
author | Martin Almquist <malmquist@stanford.edu> |
---|---|
date | Wed, 19 Dec 2018 06:54:47 +0100 |
parents | 72cd29107a9a |
children | 99c2ef883dc6 |
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 |
729
aa8cf3851de8
Update multiblock.DiffOp to work for systems.
Martin Almquist <malmquist@stanford.edu>
parents:
618
diff
changeset
|
56 Ns = zeros(nBlocks,1); |
aa8cf3851de8
Update multiblock.DiffOp to work for systems.
Martin Almquist <malmquist@stanford.edu>
parents:
618
diff
changeset
|
57 for i = 1:nBlocks |
aa8cf3851de8
Update multiblock.DiffOp to work for systems.
Martin Almquist <malmquist@stanford.edu>
parents:
618
diff
changeset
|
58 Ns(i) = length(obj.diffOps{i}.D); |
aa8cf3851de8
Update multiblock.DiffOp to work for systems.
Martin Almquist <malmquist@stanford.edu>
parents:
618
diff
changeset
|
59 end |
aa8cf3851de8
Update multiblock.DiffOp to work for systems.
Martin Almquist <malmquist@stanford.edu>
parents:
618
diff
changeset
|
60 obj.blockmatrixDiv = {Ns, 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
|
61 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
|
62 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
|
63 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
|
64 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
|
65 |
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 for i = 1:nBlocks |
237
0fc1de5cd85b
multigrid.DiffOp: Bug fix.
Jonatan Werpers <jonatan@werpers.com>
parents:
233
diff
changeset
|
67 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
|
68 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
|
69 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
|
70 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
|
71 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
|
72 |
237
0fc1de5cd85b
multigrid.DiffOp: Bug fix.
Jonatan Werpers <jonatan@werpers.com>
parents:
233
diff
changeset
|
73 |
201
38f203f00f3a
Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
186
diff
changeset
|
74 [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
|
75 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
|
76 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
|
77 |
201
38f203f00f3a
Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
186
diff
changeset
|
78 [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
|
79 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
|
80 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
|
81 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
|
82 end |
210
39b7dcb2c724
multiblock: Implemented boundary conditions.
Jonatan Werpers <jonatan@werpers.com>
parents:
202
diff
changeset
|
83 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
|
84 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
|
85 |
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 |
721
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
87 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
|
88 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
|
89 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
|
90 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
|
91 |
721
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
92 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
|
93 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
|
94 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
|
95 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
|
96 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
|
97 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
|
98 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
|
99 |
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
|
100 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
|
101 getParam = @(i){}; |
392
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
102 return |
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
103 end |
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
104 |
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
105 if ~iscell(doParam) |
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
106 getParam = @(i)doParam; |
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
107 return |
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
108 end |
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
109 |
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
110 % doParam is a non-empty cell-array |
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
111 |
721
c29eca357028
Change name of grid parameter in multiblock.DiffOp to avoid conflict with package
Jonatan Werpers <jonatan@werpers.com>
parents:
618
diff
changeset
|
112 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
|
113 % 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
|
114 getParam = @(i)doParam{i}; |
392
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
115 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
|
116 end |
392
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
117 |
30ff8879162e
Better input parsing for multiblock DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
346
diff
changeset
|
118 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
|
119 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
|
120 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
|
121 |
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 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
|
123 % Splits a matrix operator into a cell-matrix of matrix operators for |
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
|
124 % each 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
|
125 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
|
126 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
|
127 |
532
b29f04ab5d99
Implement getBoundaryOperator for boundaryGroups in multiblock.DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
529
diff
changeset
|
128 % 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
|
129 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
|
130 switch class(boundary) |
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
131 case 'cell' |
532
b29f04ab5d99
Implement getBoundaryOperator for boundaryGroups in multiblock.DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
529
diff
changeset
|
132 localOpName = [opName '_' boundary{2}]; |
529
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
133 blockId = boundary{1}; |
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
134 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
|
135 |
529
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
136 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
|
137 blockOp = blockmatrix.zero(div); |
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
138 blockOp{blockId,1} = localOp; |
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
139 op = blockmatrix.toMatrix(blockOp); |
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
140 return |
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
141 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
|
142 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
|
143 for i = 1:length(boundary) |
b29f04ab5d99
Implement getBoundaryOperator for boundaryGroups in multiblock.DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
529
diff
changeset
|
144 op = [op, obj.getBoundaryOperator(opName, boundary{i})]; |
b29f04ab5d99
Implement getBoundaryOperator for boundaryGroups in multiblock.DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
529
diff
changeset
|
145 end |
529
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
146 otherwise |
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
147 error('Unknown boundary indentifier') |
344
61b75d6d4899
Added get method for boundary operators on multiblock DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
343
diff
changeset
|
148 end |
61b75d6d4899
Added get method for boundary operators on multiblock DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
343
diff
changeset
|
149 end |
61b75d6d4899
Added get method for boundary operators on multiblock DiffOp
Jonatan Werpers <jonatan@werpers.com>
parents:
343
diff
changeset
|
150 |
884
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
151 % Get a boundary operator specified by opName for the given boundary/BoundaryGroup |
962
262b52c3f268
Bugfix in multiblock.DiffOp/getBoundaryOperatorWrapper
Martin Almquist <malmquist@stanford.edu>
parents:
958
diff
changeset
|
152 function op = getBoundaryOperatorWrapper(obj, opName, boundary, blockmatrixDiv) |
262b52c3f268
Bugfix in multiblock.DiffOp/getBoundaryOperatorWrapper
Martin Almquist <malmquist@stanford.edu>
parents:
958
diff
changeset
|
153 default_arg('blockmatrixDiv', obj.blockmatrixDiv); |
262b52c3f268
Bugfix in multiblock.DiffOp/getBoundaryOperatorWrapper
Martin Almquist <malmquist@stanford.edu>
parents:
958
diff
changeset
|
154 |
884
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
155 switch class(boundary) |
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
156 case 'cell' |
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
157 blockId = boundary{1}; |
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
158 localOp = obj.diffOps{blockId}.get_boundary_operator(opName, boundary{2}); |
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
159 |
962
262b52c3f268
Bugfix in multiblock.DiffOp/getBoundaryOperatorWrapper
Martin Almquist <malmquist@stanford.edu>
parents:
958
diff
changeset
|
160 div = {blockmatrixDiv, size(localOp,2)}; |
884
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
161 blockOp = blockmatrix.zero(div); |
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
162 blockOp{blockId,1} = localOp; |
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
163 op = blockmatrix.toMatrix(blockOp); |
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
164 return |
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
165 case 'multiblock.BoundaryGroup' |
962
262b52c3f268
Bugfix in multiblock.DiffOp/getBoundaryOperatorWrapper
Martin Almquist <malmquist@stanford.edu>
parents:
958
diff
changeset
|
166 op = []; |
884
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
167 for i = 1:length(boundary) |
962
262b52c3f268
Bugfix in multiblock.DiffOp/getBoundaryOperatorWrapper
Martin Almquist <malmquist@stanford.edu>
parents:
958
diff
changeset
|
168 op = [op, obj.getBoundaryOperatorWrapper(opName, boundary{i}, blockmatrixDiv)]; |
884
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
169 end |
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
170 otherwise |
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
171 error('Unknown boundary indentifier') |
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
172 end |
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
173 end |
7d4f57725192
Add a getBoundaryOperator method in multiblock.DiffOp that uses the the diffop get_boundary_operator method rather than its properties. Werpers might not like this.
Martin Almquist <malmquist@stanford.edu>
parents:
797
diff
changeset
|
174 |
958
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
175 % Get a boundary cell of operators, specified by opName for the given boundary/BoundaryGroup |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
176 function opCell = getBoundaryCellOperator(obj, opName, boundary, blockmatrixDiv) |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
177 default_arg('blockmatrixDiv', obj.blockmatrixDiv); |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
178 |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
179 % Get size of cell |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
180 switch class(boundary) |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
181 case 'cell' |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
182 blockId = boundary{1}; |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
183 localCell = obj.diffOps{blockId}.get_boundary_operator(opName, boundary{2}); |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
184 case 'multiblock.BoundaryGroup' |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
185 blockId = boundary{1}{1}; |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
186 localCell = obj.diffOps{blockId}.get_boundary_operator(opName, boundary{1}{2}); |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
187 otherwise |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
188 error('Unknown boundary indentifier') |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
189 end |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
190 |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
191 % Loop over cell elements and build the boundary operator in each cell |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
192 opCell = cell(size(localCell)); |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
193 for i = 1:numel(opCell) |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
194 switch class(boundary) |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
195 case 'cell' |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
196 blockId = boundary{1}; |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
197 localOpCell = obj.diffOps{blockId}.get_boundary_operator(opName, boundary{2}); |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
198 localOp = localOpCell{i}; |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
199 |
962
262b52c3f268
Bugfix in multiblock.DiffOp/getBoundaryOperatorWrapper
Martin Almquist <malmquist@stanford.edu>
parents:
958
diff
changeset
|
200 div = {blockmatrixDiv, size(localOp,2)}; |
958
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
201 blockOp = blockmatrix.zero(div); |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
202 blockOp{blockId,1} = localOp; |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
203 op = blockmatrix.toMatrix(blockOp); |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
204 opCell{i} = op; |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
205 |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
206 case 'multiblock.BoundaryGroup' |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
207 op = sparse(size(obj.D,1),0); |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
208 for j = 1:length(boundary) |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
209 localCell = obj.getBoundaryCellOperator(opName, boundary{j}, blockmatrixDiv); |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
210 op = [op, localCell{i}]; |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
211 end |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
212 opCell{i} = op; |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
213 otherwise |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
214 error('Unknown boundary indentifier') |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
215 end |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
216 end |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
217 end |
72cd29107a9a
Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
Martin Almquist <malmquist@stanford.edu>
parents:
884
diff
changeset
|
218 |
764
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
219 function op = getBoundaryQuadrature(obj, boundary) |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
220 opName = 'H'; |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
221 switch class(boundary) |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
222 case 'cell' |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
223 localOpName = [opName '_' boundary{2}]; |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
224 blockId = boundary{1}; |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
225 op = obj.diffOps{blockId}.(localOpName); |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
226 |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
227 return |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
228 case 'multiblock.BoundaryGroup' |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
229 N = length(boundary); |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
230 H_bm = cell(N,N); |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
231 for i = 1:N |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
232 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
|
233 end |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
234 op = blockmatrix.toMatrix(H_bm); |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
235 otherwise |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
236 error('Unknown boundary indentifier') |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
237 end |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
238 end |
e05465aa2e25
Add methods for getting boundary quadratures from multiblock.DiffOP
Jonatan Werpers <jonatan@werpers.com>
parents:
722
diff
changeset
|
239 |
335
2d48db7151cf
Bug fix in boundary condition.
Jonatan Werpers <jonatan@werpers.com>
parents:
237
diff
changeset
|
240 % 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
|
241 % 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
|
242 % 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
|
243 % 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
|
244 % can also be a boundary group |
335
2d48db7151cf
Bug fix in boundary condition.
Jonatan Werpers <jonatan@werpers.com>
parents:
237
diff
changeset
|
245 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
|
246 switch class(boundary) |
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
247 case 'cell' |
534
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
248 [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
|
249 case 'multiblock.BoundaryGroup' |
534
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
250 [n,m] = size(obj.D); |
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
251 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
|
252 penalty = sparse(n,0); |
534
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
253 for i = 1:length(boundary) |
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
254 [closurePart, penaltyPart] = obj.boundary_condition(boundary{i}, type); |
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
255 closure = closure + closurePart; |
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
256 penalty = [penalty, penaltyPart]; |
55a7777dfcd0
Implement boundary_condition for boundary groups
Jonatan Werpers <jonatan@werpers.com>
parents:
533
diff
changeset
|
257 end |
529
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
258 otherwise |
2ec8080027ab
Add some documentation and decide on public function signatures
Jonatan Werpers <jonatan@werpers.com>
parents:
522
diff
changeset
|
259 error('Unknown boundary indentifier') |
346
33b2ef863519
Allowed muliple closure BCs in multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
344
diff
changeset
|
260 end |
210
39b7dcb2c724
multiblock: Implemented boundary conditions.
Jonatan Werpers <jonatan@werpers.com>
parents:
202
diff
changeset
|
261 |
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
|
262 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
|
263 |
533
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
264 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
|
265 I = boundary{1}; |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
266 name = boundary{2}; |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
267 |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
268 % 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
|
269 [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
|
270 |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
271 % 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
|
272 div = obj.blockmatrixDiv; |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
273 if ~iscell(blockClosure) |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
274 temp = blockmatrix.zero(div); |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
275 temp{I,I} = blockClosure; |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
276 closure = blockmatrix.toMatrix(temp); |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
277 else |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
278 for i = 1:length(blockClosure) |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
279 temp = blockmatrix.zero(div); |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
280 temp{I,I} = blockClosure{i}; |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
281 closure{i} = blockmatrix.toMatrix(temp); |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
282 end |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
283 end |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
284 |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
285 if ~iscell(blockPenalty) |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
286 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
|
287 p = blockmatrix.zero(div); |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
288 p{I} = blockPenalty; |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
289 penalty = blockmatrix.toMatrix(p); |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
290 else |
618 | 291 % 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
|
292 for i = 1:length(blockPenalty) |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
293 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
|
294 p = blockmatrix.zero(div); |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
295 p{I} = blockPenalty{i}; |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
296 penalty{i} = blockmatrix.toMatrix(p); |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
297 end |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
298 end |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
299 end |
06d1606d6977
Factor out function for handling a single boundary condition
Jonatan Werpers <jonatan@werpers.com>
parents:
532
diff
changeset
|
300 |
202
e2fefb6f0746
multiblock.DiffOp: Fleshed out boundary_condition() a bit more
Jonatan Werpers <jonatan@werpers.com>
parents:
201
diff
changeset
|
301 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
|
302 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
|
303 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
|
304 |
201
38f203f00f3a
Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
186
diff
changeset
|
305 % 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
|
306 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
|
307 N = 0; |
201
38f203f00f3a
Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
186
diff
changeset
|
308 for i = 1:length(obj.diffOps) |
38f203f00f3a
Exeendend tests of multiblock.DiffOp.
Jonatan Werpers <jonatan@werpers.com>
parents:
186
diff
changeset
|
309 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
|
310 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
|
311 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
|
312 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
|
313 end |