annotate +grid/Nodes.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 5b06d4afa732
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
875
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 classdef Nodes < grid.Grid
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 properties
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 coords
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 end
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 methods
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 % Creates a grid with one point for each row in coords.
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 % The dimension equals the number of columns in coords.
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 function obj = Nodes(coords)
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 obj.coords = coords;
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 end
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 function o = N(obj)
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 o = size(obj.coords, 1);
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 end
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 % d returns the spatial dimension of the grid
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 function o = D(obj)
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 o = size(obj.coords, 2);
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 end
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 % points returns a n x d matrix containing the coordinates for all points.
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 function X = points(obj)
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 X = obj.coords;
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 end
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 % Restricts the grid function gf on obj to the subgrid g.
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 function gf = restrictFunc(obj, gf, g)
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 error('Not implemented');
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 end
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 % Projects the grid function gf on obj to the grid g.
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 function gf = projectFunc(obj, gf, g)
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 error('Not implemented');
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 end
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 % Return the grid.boundaryIdentifiers of all boundaries in a cell array.
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 function bs = getBoundaryNames(obj)
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 error('Not implemented');
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 end
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 % Return coordinates for the given boundary
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 function b = getBoundary(obj, name)
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 error('Not implemented');
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 end
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 end
5b06d4afa732 Add grid for just a collection of nodes
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 end