Mercurial > repos > public > sbplib
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 |
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 |