annotate +multiblock/Line.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 24b2487b01c2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
542
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 classdef Line < handle
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 properties
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 grid
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 lines
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 YData
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 end
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 methods
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 function obj = Line(g, gf)
546
19951684588e Add type assertion
Jonatan Werpers <jonatan@werpers.com>
parents: 542
diff changeset
11 assertType(g, 'multiblock.Grid')
542
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 obj.grid = g;
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 X = obj.grid.splitFunc(obj.grid.points());
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 Y = obj.grid.splitFunc(gf);
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 holdState = ishold();
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 hold on
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19
548
24b2487b01c2 Fix bugs in cell array initialization
Jonatan Werpers <jonatan@werpers.com>
parents: 546
diff changeset
20 lines = cell(1, obj.grid.nBlocks);
542
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 for i = 1:obj.grid.nBlocks
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 lines{i} = plot(X{i}, Y{i});
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 end
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 if holdState == false
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 hold off
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 end
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 obj.lines = [lines{:}];
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 obj.YData = gf;
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 end
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 function set(obj, propertyName, propertyValue)
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 set(obj.lines, propertyName, propertyValue);
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36 end
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 function obj = set.YData(obj, gf)
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 obj.YData = gf;
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 Y = obj.grid.funcToPlotMatrices(gf);
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 for i = 1:obj.grid.nBlocks
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 obj.lines(i).YData = Y{i};
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 end
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 end
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 end
febd750965c4 Add classes for easy plotting of functions on a multi block grid
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 end