annotate +blockmatrix/isBlockmatrix.m @ 1037:2d7ba44340d0 feature/burgers1d

Pass scheme specific parameters as cell array. This will enabale constructDiffOps to be more general. In addition, allow for schemes returning function handles as diffOps, which is currently how non-linear schemes such as Burgers1d are implemented.
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Fri, 18 Jan 2019 09:02:02 +0100
parents a5f1b0267dba
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
203
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 function b = isBlockmatrix(bm)
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 if ~iscell(bm)
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 b = false;
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 return
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 end
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6
579
a5f1b0267dba Be less strict about what is considered a block matrix
Jonatan Werpers <jonatan@werpers.com>
parents: 203
diff changeset
7 % Make sure all blocks are numerical matrices
203
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 for i = 1:length(bm)
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 if ~isnumeric(bm{i})
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 b = false;
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 return
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 end
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 end
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 [N,M] = size(bm);
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 % Make sure column dimensions agree
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 for i = 1:N
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 d = [];
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 for j = 1:M
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 d_ij = size(bm{i,j},1);
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 if d_ij == 0
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 continue
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 end
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 if isempty(d)
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 d = d_ij;
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 continue
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 end
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 if d ~= d_ij
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 b = false;
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 return
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 end
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 end
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 end
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 % Make sure row dimensions agree
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 for j = 1:M
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 d = [];
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 for i = 1:N
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 d_ij = size(bm{i,j},2);
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 if d_ij == 0
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 continue
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 end
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 if isempty(d)
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 d = d_ij;
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 continue
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 end
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 if d ~= d_ij
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 b = false;
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 return
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 end
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55 end
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 end
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 b = true;
764438b52541 blockmatrix: Added functions to test for block matrcies and divisions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59 end