annotate +multiblock/Def.m @ 541:3377bedf371f feature/grids

Fix typo
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 14 Aug 2017 09:25:31 +0200
parents 6c6a3040a678
children 9924f1f8c906
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
536
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 classdef Def
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 properties
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 nBlocks
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 blockMaps % Maps from logical blocks to physical blocks build from transfinite interpolation
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 blockNames
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 connections % Cell array specifying connections between blocks
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 boundaryGroups % Structure of boundaryGroups
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 methods
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 % Defines a multiblock setup for transfinite interpolation blocks
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 % TODO: How to bring in plotting of points?
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 function obj = Def(blockMaps, connections, boundaryGroups, blockNames)
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 default_arg('boundaryGroups', struct());
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 default_arg('blockNames',{});
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 nBlocks = length(blockMaps);
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 obj.nBlocks = nBlocks;
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 obj.blockMaps = blockMaps;
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 assert(all(size(connections) == [nBlocks, nBlocks]));
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 obj.connections = connections;
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 if isempty(blockNames)
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 obj.blockNames = cell(1, nBlocks);
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 for i = 1:length(blockMaps)
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 obj.blockNames{i} = sprintf('%d', i);
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 else
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 assert(length(blockNames) == nBlocks);
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 obj.blockNames = blockNames;
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 obj.boundaryGroups = boundaryGroups;
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 function g = getGrid(obj, varargin)
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 ms = obj.getGridSizes(varargin{:});
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 grids = cell(1, obj.nBlocks);
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 for i = 1:obj.nBlocks
541
3377bedf371f Fix typo
Jonatan Werpers <jonatan@werpers.com>
parents: 536
diff changeset
45 grids{i} = grid.equidistantCurvilinear(obj.blockMaps{i}.S, ms{i});
536
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 g = multiblock.Grid(grids, obj.connections, obj.boundaryGroups);
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 function show(obj, label, gridLines, varargin)
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 default_arg('label', true)
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 default_arg('gridLines', false);
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55 if ~label && ~gridLines
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 for i = 1:obj.nBlocks
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57 obj.blockMaps{i}.show(2,2);
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59 axis equal
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 return
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63 if gridLines
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 ms = obj.getGridSizes(varargin{:});
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
65 for i = 1:obj.nBlocks
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
66 obj.blockMaps{i}.show(ms{i}(1),ms{i}(2));
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
70 if label
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71 for i = 1:obj.nBlocks
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
72 parametrization.Ti.label(obj.blockMaps{i}, obj.blockNames{i});
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
73 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
74 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
75
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
76 axis equal
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
77 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
78 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
79
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
80 methods (Abstract)
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
81 % Returns the grid size of each block in a cell array
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
82 % The input parameters are determined by the subclass
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
83 ms = getGridSizes(obj, varargin)
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
84 % end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
85 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
86
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
87 end
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
88
6c6a3040a678 Add an abstrac class as help when defining transfinite multiblock grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
89