1adj = load('cell_to_node_quad.txt') + 1;  %% load node adjacency table, increment by 1 for 1-based indexing
2
3nodes = load('nodes.txt');  %% load node coordinates
4
5data_obj = importdata('state.txt', ' ', 2);  %% we need to skip the first two lines
6state = data_obj.data;
7data_obj = importdata('map_state.txt', ' ', 9);  %% we need to skip the first 9 lines
8map_state = data_obj.data;
9map_state = map_state(1:2:end)+1;
10[tmp, state_permute] = sort(map_state);
11state = state(state_permute);  %% we need to permute the state according to parallel maps
12
13N = 3*length(nodes);
14% Extract x-velocity
15Ux = state(1:3:N);
16% Extract y-velocity
17Uy = state(2:3:N);
18% Extract pressure
19P  = state(3:3:N);
20
21figure,
22trisurf(adj, nodes(:,1), nodes(:,2), Ux);
23shading interp;
24view(0,90)
25axis equal
26axis tight
27
28figure,
29trisurf(adj, nodes(:,1), nodes(:,2), Uy);
30shading interp;
31view(0,90)
32axis equal
33axis tight
34
35figure,
36trisurf(adj, nodes(:,1), nodes(:,2), sqrt(Ux.^2 + Uy.^2));
37shading interp;
38view(0,90)
39axis equal
40axis tight
41
42figure,
43trisurf(adj, nodes(:,1), nodes(:,2), P);
44shading interp;
45view(0,90)
46axis equal
47axis tight
48
49figure,
50quiver(nodes(:,1), nodes(:,2), Ux, Uy);
51axis equal
52axis tight
53
54data_obj = importdata('control.txt', ' ', 2);  %% we need to skip the first two lines
55control = data_obj.data;
56data_obj = importdata('map_control.txt', ' ', 9);  %% we need to skip the first 9 lines
57map_control = data_obj.data;
58map_control = map_control(1:2:end)+1;
59[tmp, control_permute] = sort(map_control);
60control = control(control_permute);  %% we need to permute the control according to parallel maps
61
62% Extract x-velocity
63Zx = control(1:3:N);
64% Extract y-velocity
65Zy = control(2:3:N);
66% Extract pressure
67P  = control(3:3:N);
68
69figure,
70trisurf(adj, nodes(:,1), nodes(:,2), Zx);
71shading interp;
72view(0,90)
73axis equal
74axis tight
75
76figure,
77trisurf(adj, nodes(:,1), nodes(:,2), Zy);
78shading interp;
79view(0,90)
80axis equal
81axis tight
82
83figure,
84trisurf(adj, nodes(:,1), nodes(:,2), P);
85shading interp;
86view(0,90)
87axis equal
88axis tight
89
90figure,
91quiver(nodes(:,1), nodes(:,2), Zx, Zy);
92axis equal
93axis tight
94
95figure,
96idx = find((nodes(:,1) == 1) .* (nodes(:,2) <= 0.5));
97ZX = zeros(size(Zx)); ZX(idx) = Zx(idx);
98ZY = zeros(size(Zy)); ZY(idx) = Zy(idx);
99quiver(nodes(:,1), nodes(:,2), ZX, ZY);
100axis equal
101axis tight
102xlim([0.6,1.2]);
103ylim([-0.2,0.7]);
104
105figure,
106idx = find((nodes(:,1) == 1) .* (nodes(:,2) <= 0.5));
107UX = zeros(size(Ux)); UX(idx) = Ux(idx);
108UY = zeros(size(Uy)); UY(idx) = Uy(idx);
109quiver(nodes(:,1), nodes(:,2), UX, UY);
110axis equal
111axis tight
112xlim([0.6,1.2]);
113ylim([-0.2,0.7]);
114