annotate +multiblock/StaggeredSurface.m @ 1344:b4e5e45bd239 feature/D2_boundary_opt

Remove round off zeros from D2Nonequidistant operators
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Sat, 15 Oct 2022 15:48:20 +0200
parents 8aa0909125a4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1274
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
1 classdef StaggeredSurface < handle
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
2 properties
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
3 grid
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
4 surfs
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
5 gridGroup
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
6 subGrid
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
7
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
8 ZData
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
9 CData
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
10
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
11 end
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
12
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
13 methods
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
14 function obj = StaggeredSurface(g, gf, gridGroup, subGrid)
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
15
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
16 default_arg('gridGroup', 1);
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
17 default_arg('subGrid', 1);
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
18
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
19 obj.grid = g;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
20 obj.gridGroup = gridGroup;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
21 obj.subGrid = subGrid;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
22
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
23 % coords = obj.grid.points();
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
24 % X = obj.grid.funcToPlotMatrices(coords(:,1));
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
25 % Y = obj.grid.funcToPlotMatrices(coords(:,2));
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
26 % V = obj.grid.funcToPlotMatrices(gf);
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
27 X = {};
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
28 Y = {};
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
29 V = {};
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
30
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
31 holdState = ishold();
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
32 hold on
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
33
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
34 surfs = cell(1, obj.grid.nBlocks);
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
35 gfIndex = 1;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
36 for i = 1:g.nBlocks()
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
37
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
38 gi = g.grids{i}.gridGroups{gridGroup}{subGrid};
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
39
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
40 X{i} = grid.funcToPlotMatrix(gi, gi.coords(:,1));
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
41 Y{i} = grid.funcToPlotMatrix(gi, gi.coords(:,2));
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
42
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
43 Ni = gi.N();
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
44 gf_i = gf(gfIndex:gfIndex+Ni-1);
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
45 V{i} = grid.funcToPlotMatrix(gi, gf_i);
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
46
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
47 surfs{i} = surf(X{i}, Y{i}, V{i});
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
48 gfIndex = gfIndex + Ni;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
49 end
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
50
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
51 if holdState == false
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
52 hold off
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
53 end
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
54
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
55 obj.surfs = [surfs{:}];
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
56
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
57 obj.ZData = gf;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
58 obj.CData = gf;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
59 end
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
60
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
61 function set(obj, propertyName, propertyValue)
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
62 set(obj.surfs, propertyName, propertyValue);
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
63 end
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
64
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
65 function obj = set.ZData(obj, gf)
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
66 obj.ZData = gf;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
67
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
68 % V = obj.grid.funcToPlotMatrices(gf);
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
69 gfIndex = 1;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
70 for i = 1:obj.grid.nBlocks()
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
71 gi = obj.grid.grids{i}.gridGroups{obj.gridGroup}{obj.subGrid};
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
72 Ni = gi.N();
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
73 gf_i = gf(gfIndex:gfIndex+Ni-1);
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
74 Vi = grid.funcToPlotMatrix(gi, gf_i);
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
75 obj.surfs(i).ZData = Vi;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
76
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
77 gfIndex = gfIndex + Ni;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
78 end
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
79 end
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
80
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
81 function obj = set.CData(obj, gf)
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
82 obj.CData = gf;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
83
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
84 % V = obj.grid.funcToPlotMatrices(gf);
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
85 gfIndex = 1;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
86 for i = 1:obj.grid.nBlocks()
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
87 gi = obj.grid.grids{i}.gridGroups{obj.gridGroup}{obj.subGrid};
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
88 Ni = gi.N();
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
89 gf_i = gf(gfIndex:gfIndex+Ni-1);
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
90 Vi = grid.funcToPlotMatrix(gi, gf_i);
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
91 obj.surfs(i).CData = Vi;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
92
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
93 gfIndex = gfIndex + Ni;
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
94 end
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
95 end
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
96 end
8aa0909125a4 Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
97 end