Skip to main content

EnSight 2025 R2

test_dvs_python_reader_api

Last update: 16.07.2025
Go to the documentation of this file.
2
3
6
7# @cond Suppress Doxygen Warnings
8
9import dynamic_visualization_store as dvs
10import argparse
11import time
12import numpy
13
14parser = argparse.ArgumentParser()
15parser.add_argument("-c", "--cache_uri", help="Provide valid cache uri to read")
16parser.add_argument("--debug_wait", type=int)
17
18args = parser.parse_args()
19cache_uri = args.cache_uri
20debug_wait = args.debug_wait
21
22if debug_wait:
23 time.sleep(debug_wait)
24
25query = dvs.create_query_instance()
26
27
29
30
32
33
34
35print("\n***\n cache_uri = ", cache_uri, "\n***")
36query.add_uri(cache_uri)
37
38dataset_query = query.filter("/dataset.name/eq/dvsnode")
39print("\n***\nSub Query Test\n***")
40numdatasets = dataset_query.get_num_datasets()
41print("\n Number of datasets = ", numdatasets)
42for d in range(numdatasets):
43 dataset = query.get_dataset(d)
44 #print(dir(datasetobj))
45 dataset_name = dataset.get_name()
46 dataset_unit_system = dataset.get_unit_system()
47 print(" Dataset Name: ", dataset_name)
48 print(" Unit System: ", dataset_unit_system)
49 num_ranks = dataset.get_num_ranks()
50 print(" Number of ranks: ", num_ranks)
51 ranks = dataset.get_ranks()
52 for r in range(num_ranks):
53 print(" Rank: ", ranks[r])
54 num_chunks = dataset.get_num_chunks_per_rank()
55 print(" Number of chunks per rank: ", num_chunks)
56 chunks = dataset.get_chunks_per_rank()
57 for c in range(num_chunks):
58 print(" Chunk: ", chunks[c])
59 num_parts = dataset.get_num_parts()
60 print(" Num Parts: ", num_parts)
61 for p in range(num_parts):
62 part = dataset.get_part(p)
63 print(" Part Name: ", part.get_name())
64 num_plots = dataset.get_num_plots()
65 print(" Number of plots: ", num_plots)
66 for p in range(num_plots):
67 plot = dataset.get_plot(p)
68 print(" Plot: ", plot.get_name())
69 num_vars = dataset.get_num_variables()
70 print(" Num variables: ", num_vars)
71 for v in range(num_vars):
72 var = dataset.get_variable(v)
73 print(" Var Name: ", var.get_name())
74part_query = dataset_query.filter("/part.name/eq/volume-volume")
75num_mesh_chunks = part_query.get_num_mesh_chunks()
76print(" Num mesh chunks = ", num_mesh_chunks)
77
78for m in range(num_mesh_chunks):
79 mesh_chunk = part_query.get_mesh_chunk(m)
80 #print(dir(mesh_chunk))
81 if isinstance(mesh_chunk, dvs.IMeshChunkObject):
82 mesh_type = mesh_chunk.get_type()
83 part = mesh_chunk.get_object()
84 time = mesh_chunk.get_time()
85 rank = mesh_chunk.get_rank()
86 chunk = mesh_chunk.get_chunk()
87 coord_hash = mesh_chunk.get_hash()
88 coord_size = 0
89 print("\n***\n Mesh Chunk: ", m, "\n***")
90 print(" Type:{0}, Part:{1}, Rank:{2}, Chunk:{3}, Time:{4}, Hash:{5}".format(mesh_type, part.get_name(), rank, chunk, time, coord_hash))
91 if mesh_type == dvs.MESHCHUNK_UNSTRUCTURED:
92 # coord size
93 coord_size = mesh_chunk.get_coords_size()
94 # Get x,y,z coords list
95 result = mesh_chunk.get_coords()
96 x_coords, y_coords, z_coords = result
97 print(" \nFirst 3 coordinates out of : ", coord_size)
98 for c in range(3):
99 print(" X: {0}, Y: {1}, Z: {2}".format(x_coords[c], y_coords[c], z_coords[c]))
100 # Get interleaved coords
101 coord_interleaved = mesh_chunk.get_coords_interleaved()
102 print(" \n No. Interleaved coordinates :", coord_size)
103 elif mesh_type == dvs.MESHCHUNK_CURVILIEAR:
104 # Get coords size
105 coord_size = mesh_chunk.get_coords_curv_component_size()
106 print(" \nCurvilinear coordinates component size :", coord_size)
107 # Get localIJKMin, localIJKMax, globalIJKMax, x_coords, y_coords, z_coords
108 coords = mesh_chunk.get_coords_curv()
109 local_ijk_min, local_ijk_max, global_ijk_max, x_coords, y_coords, z_coords = coords
110 # Get Interleaved Coordinates
111 coords = mesh_chunk.get_coords_curv_interleaved()
112 local_ijk_min, local_ijk_max, global_ijk_max, coords_interleaved = coords
113 elif mesh_type == dvs.MESHCHUNK_PARALLELEPIPED:
114 # origin, dir_vec_i, dir_vec_j, dir_vec_k, local_ijk_max, local_ijk_min, global_ijk_max, ivals, jvals, kvals
115 coords = mesh_chunk.get_coords_parallele()
116 origin, dir_vec_i, dir_vec_j, dir_vec_k, local_ijk_max, local_ijk_min, global_ijk_max, ivals, jvals, kvals = coords
117 print(" Origin : ", origin)
118 print(" DirVecI: ", dir_vec_i)
119 print(" DirVecJ: ", dir_vec_j)
120 print(" DirVecK: ", dir_vec_k)
121 print(" LocalIJKMax : ", local_ijk_max)
122 print(" LocalIJKMin : ", local_ijk_min)
123 print(" GlobalIJKMax: ", global_ijk_max)
124
125 num_nodal_vars = mesh_chunk.get_num_variables()
126 print("\n Num Nodal Var: ", num_nodal_vars)
127 for nv in range(num_nodal_vars):
128 var = mesh_chunk.get_variable(nv)
129 #print(dir(var))
130 if isinstance(var, dvs.IVarObject):
131 var_loc = var.get_var_location()
132 var_name = var.get_name()
133 if var_loc == dvs.LOCATION_NODE:
134 # Get Hash by var_index
135 #nodal_var_hash_size_by_index = mesh_chunk.get_var_hash_size_by_var_index(nv)
136 #nodal_var_hash_size_by_def = mesh_chunk.get_var_hash_size_by_var_def(var)
137 #nodal_var_hash_by_index = mesh_chunk.get_var_hash_by_var_index(nv, nodal_var_hash_size_by_index)
138 #nodal_var_hash_by_def = mesh_chunk.get_var_hash_by_var_def(var, nodal_var_hash_size_by_def)
139 #if nodal_var_hash_by_index:
140 # print("Nodal VAR Hash by Index: ", nodal_var_hash_by_index)
141 #if nodal_var_hash_by_index != nodal_var_hash_by_def:
142 # print("Nodal var hash by var index is different that Nodal var hash by def")
143 var_values = mesh_chunk.get_variable_data(nv)
144 num_values = mesh_chunk.get_variable_data_size(nv)
145 print(" Var Name: {0}, Nodal values: {1}, Mesh Chunk: {2}".format(var_name, num_values, m))
146 print(" First 10 Values: ")
147 for n in range(10):
148 print(" ", var_values[n])
149 # Element Blocks
150 num_elem_blocks = mesh_chunk.get_num_element_blocks()
151 print("\n Num Element Blocks: ", num_elem_blocks)
152
153 element_block_types = mesh_chunk.get_element_block_types()
154 for et in element_block_types:
155 elem_block = mesh_chunk.get_element_block_by_type(et)
156 num_elements = 0
157 conn_size = 0
158 faces_per_elem_size = 0
159 nodes_per_face_size = 0
160 indices_size = 0
161 if isinstance(elem_block, dvs.IElemBlockObject):
162 match elem_block.get_element_type():
163 case dvs.ELEMTYPE_TETRAHEDRON | dvs.ELEMTYPE_TRIANGLE | dvs.ELEMTYPE_QUADRANGLE | dvs.ELEMTYPE_HEXAHEDRON:
164 num_elements = elem_block.get_num_elements()
165 connectivity = elem_block.get_connectivity()
166 connsize = elem_block.get_connectivity_size()
167 print(" Element Type: Standard")
168 print(" Connectivity Size: ", connsize)
169 for s in range(10):
170 print(" ",connectivity[s])
171 case dvs.ELEMTYPE_N_SIDED_POLYGON | dvs.ELEMTYPE_N_SIDED_POLYGON_GHOST:
172 print(" Element Type : ", elem_block.get_element_type())
173 num_elements = elem_block.get_num_elements()
174 print(" Num Elements : ", num_elements)
175 polygon_size = elem_block.get_connectivity_polygon_size()
176 nodes_per_polygon_size, indices_size = polygon_size
177 print(" Nodes per Polygon Size: ", nodes_per_polygon_size)
178 print(" Polygon Indices Size : ", indices_size)
179 connectivity = elem_block.get_connectivity_polygon()
180 nodes_per_polygon, indices = connectivity
181 #print(" Nodes Per Polygon: ")
182 #for np in nodes_per_polygon:
183 # print(" ", np)
184 #print(" Polygon Indices : ")
185 #for pi in indices:
186 # print(" ", pi)
187 case dvs.ELEMTYPE_CONVEX_POLYHEDRON | dvs.ELEMTYPE_CONVEX_POLYHEDRON_GHOST:
188 num_element = elem_block.get_num_elements()
189 print(" Element Type: POLYHEDRON", "Number of elements: ", num_element)
190 # Get connectivity Polyhedral
191 polyhedral_size = elem_block.get_connectivity_polyhedral_size()
192 faces_per_elem_size, nodes_per_face_size, indices_size = polyhedral_size
193 print(" Faces Per Elem Size :",faces_per_elem_size)
194 print(" Nodes Per Face Size :",nodes_per_face_size)
195 print(" Conn Indices Size :",indices_size)
196 conn_polyhedral = elem_block.get_connectivity_polyhedral()
197 faces_per_elem, nodes_per_face, conn_indices = conn_polyhedral
198 #print(" Faces Per Elem: ")
199 #for fp in faces_per_elem:
200 # print(" ", fp)
201 #print(" Nodes Per Face: ")
202 #for nf in nodes_per_face:
203 # print(" ", nf)
204 #print(" Conn Indices : ")
205 #for ci in conn_indices:
206 # print(" ", ci)
207 case dvs.ELEMTYPE_STRUCTURED:
208 num_elements = elem_block.get_num_elements()
209 nodes_per_elem = elem_block.get_nodes_per_element()
210 print(" Structured Element: Type:{0}, NPE:{1}".format(elem_block.get_element_type(), nodes_per_elem))
211 case dvs.ELEMTYPE_UNDEFINED | dvs.ELEMTYPE_UNDEFINED_PARALLELEPIPED | dvs.ELEMTYPE_UNDEFINED_CURVILINEAR:
212 print(" Undefined element type found")
213 case _:
214 print(" Default Element Type")
215 num_elements = elem_block.get_num_elements()
216 nodes_per_elem = elem_block.get_nodes_per_elem()
217 # Get Connectivity List
218 connectivity = elem_block.get_connectivity()
219 #print(" Print Connectivity: ")
220 #for i in connectivity:
221 # print(" ", i)
222print("\n***\nSub Queries Finished\n***")
223
224
225numtimesteps = query.get_num_timesteps()
226print("\n***\n Num timesteps = ", numtimesteps, "\n***")
227# Get timestep objects
228timesteps = query.get_timesteps()
229for timestep in timesteps:
230 print(" Time = ", timestep)
231
232
233numranks = query.get_num_ranks()
234print("\n***\n Number of Ranks: ", numranks, "\n***")
235#Get the unique ranks
236ranks = query.get_ranks()
237for rank in ranks:
238 print(" Rank : ", rank)
239
240
241numchunks_per_rank = query.get_num_chunks_per_rank()
242print("\n***\n Num Chunks Per Rank = ", numchunks_per_rank, "\n***")
243#Get chunks per rank
244#global_chunk_max = [None]*numchunks_per_rank
245global_chunks = query.get_chunks_per_rank()
246for chunk in global_chunks:
247 print(" Chunk: ", chunk)
248
249
250numparts = query.get_num_parts()
251print("\n***\n Number of parts = ", numparts, "\n***")
252for np in range(numparts):
253 part = query.get_part(np)
254 print(" Part {0}:{1} ".format(np+1, part.get_name()))
255
256
257numplots = query.get_num_plots()
258print("\n***\n NumPlots = ", numplots, "\n***")
259for pl in range(numplots):
260 plot = query.get_plot(pl)
261 print(" Plot {0}:{1}".format(pl+1, plot.get_name()))
262
263
264num_vars = query.get_num_variables()
265if num_vars > 0:
266 for nv in range(num_vars):
267 var = query.get_variable(nv)
268 var_name = var.get_name()
269 if isinstance(var, dvs.IVarObject) and var.get_var_location() == dvs.LOCATION_CASE:
270 print(" CASE Variable : ", var.get_name())
271 dataset = query.get_dataset(0)
272 dataset_name = dataset.get_name()
273 num_values = var.get_component_count_per_value()
274 for time in timesteps:
275 var_values = dataset.get_variable_data(dataset, var, time)
276 print("\nDataset:{0}, Var{1}, Time:{2}, Value{3}".format(dataset_name, var_name, time, var_values(0)))
277
278
279numvars = query.get_num_variables()
280#print("\n***\n Number of vars = ", numvars, "\n***")
281for v in range(numvars):
282 #Get IVar Object
283 varobj = query.get_variable(v)
284 #print(dir(varobj))
285 var_name = varobj.get_name()
286 var_location = varobj.get_var_location()
287 if isinstance(var, dvs.IVarObject) and var_location == dvs.LOCATION_PART:
288 dataset = varobj.get_dataset()
289 dataset_name = dataset.get_name()
290 numparts = dataset.get_num_parts()
291 num_vals = varobj.get_component_count_per_value()
292 for timestep in timesteps:
293 for p in range(numparts):
294 part = dataset.get_part(p)
295 part_name = part.get_name()
296 var_values = query.get_variable_data(part, varobj, time)
297 print("\n Dataset:{0}, Part{1}, Var{2}, Time:{3}, Value{4}".format(dataset_name, part_name, var_name, time, var_values(0)))
298
299
300print("\n--------------------------------")
301print(" Listing All Datasets for Query")
302print("\n--------------------------------")
303numdatasets = query.get_num_datasets()
304print("\n Number of datasets = ", numdatasets)
305
306for d in range(numdatasets):
307 dataset = query.get_dataset(d)
308 #print(dir(datasetobj))
309 dataset_name = dataset.get_name()
310 dataset_unit_system = dataset.get_unit_system()
311 print(" Dataset Name: ", dataset_name)
312 print(" Unit System: ", dataset_unit_system)
313 num_ranks = dataset.get_num_ranks()
314 print(" Number of ranks: ", num_ranks)
315 ranks = dataset.get_ranks()
316 for r in range(num_ranks):
317 print(" Rank: ", ranks[r])
318 num_chunks = dataset.get_num_chunks_per_rank()
319 print(" Number of chunks per rank: ", num_chunks)
320 chunks = dataset.get_chunks_per_rank()
321 for c in range(num_chunks):
322 print(" Chunk: ", chunks[c])
323 num_parts = dataset.get_num_parts()
324 print(" Num Parts: ", num_parts)
325 for p in range(num_parts):
326 part = dataset.get_part(p)
327 metadata = part.get_metadata()
328 print(" Metadata:", metadata)
329 print(" Part Name: ", part.get_name())
330 num_plots = dataset.get_num_plots()
331 print(" Number of plots: ", num_plots)
332 for p in range(num_plots):
333 plot = dataset.get_plot(p)
334 metadata = plot.get_metadata()
335 print(" Metadata", metadata)
336 print(" Plot: ", plot.get_name())
337 num_vars = dataset.get_num_variables()
338 print(" Num variables: ", num_vars)
339 for v in range(num_vars):
340 var = dataset.get_variable(v)
341 metadata = var.get_metadata()
342 print(" Metadata: ", metadata)
343 print(" Var Name: ", var.get_name())
344
345
346
347
348print("------------------------------------")
349print(" Listing All Mesh Chunks for Query")
350print("------------------------------------")
351num_mesh_chunks = query.get_num_mesh_chunks()
352print(" Num mesh chunks = ", num_mesh_chunks)
353
354for m in range(num_mesh_chunks):
355 mesh_chunk = query.get_mesh_chunk(m)
356 #print(dir(mesh_chunk))
357 if isinstance(mesh_chunk, dvs.IMeshChunkObject):
358 mesh_type = mesh_chunk.get_type()
359 part = mesh_chunk.get_object()
360 time = mesh_chunk.get_time()
361 rank = mesh_chunk.get_rank()
362 chunk = mesh_chunk.get_chunk()
363 coord_hash = mesh_chunk.get_hash()
364 coord_size = 0
365 print("\n***\n Mesh Chunk: ", m, "\n***")
366 print(" Type:{0}, Part:{1}, Rank:{2}, Chunk:{3}, Time:{4}, Hash:{5}".format(mesh_type, part.get_name(), rank, chunk, time, coord_hash))
367 if mesh_type == dvs.MESHCHUNK_UNSTRUCTURED:
368 # Get containing x,y,z coords list
369 coord_size = mesh_chunk.get_coords_size()
370 result = mesh_chunk.get_coords()
371 x_coords, y_coords, z_coords = result
372 print(" \nFirst 3 coordinates out of : ", coord_size)
373 for c in range(3):
374 print(" X: {0}, Y: {1}, Z: {2}".format(x_coords[c], y_coords[c], z_coords[c]))
375 # Get interleaved coords
376 coords = mesh_chunk.get_coords_interleaved()
377 elif mesh_type == dvs.MESHCHUNK_CURVILIEAR:
378 # Get Tuple containing localIJKMin, localIJKMax, globalIJKMax, x_coords, y_coords, z_coords
379 coords = mesh_chunk.get_coords_curv()
380 local_ijk_min, local_ijk_max, global_ijk_max, x_coords, y_coords, z_coords = coords
381 # Get Interleaved Coordinates
382 icoords = mesh_chunk.get_coords_curv_interleaved()
383 local_ijk_min, local_ijk_max, global_ijk_max, coords_interleaved = icoords
384 elif mesh_type == dvs.MESHCHUNK_PARALLELEPIPED:
385 # Get Tuple
386 # origin, dir_vec_i, dir_vec_j, dir_vec_k, local_ijk_max, local_ijk_min, global_ijk_max, ivals, jvals, kvals
387 coords = mesh_chunk.get_coords_parallele()
388 origin, dir_vec_i, dir_vec_j, dir_vec_k, local_ijk_max, local_ijk_min, global_ijk_max, ivals, jvals, kvals = coords
389 print(" Origin : ", origin)
390 print(" DirVecI: ", dir_vec_i)
391 print(" DirVecJ: ", dir_vec_j)
392 print(" DirVecK: ", dir_vec_k)
393 print(" LocalIJKMax : ", local_ijk_max)
394 print(" LocalIJKMin : ", local_ijk_min)
395 print(" GlobalIJKMax: ", global_ijk_max)
396
397 num_nodal_vars = mesh_chunk.get_num_variables()
398 print("\n Num Nodal Var: ", num_nodal_vars)
399 for nv in range(num_nodal_vars):
400 var = mesh_chunk.get_variable(nv)
401 #print(dir(var))
402 if isinstance(var, dvs.IVarObject):
403 var_loc = var.get_var_location()
404 var_name = var.get_name()
405 if var_loc == dvs.LOCATION_NODE:
406 # Get Hash by var_index
407 #nodal_var_hash_size_by_def = mesh_chunk.get_var_hash(var)
408 #if nodal_var_hash_size_by_def:
409 # print("Nodal VAR Hash by Def: ", nodal_var_hash_size_by_def)
410 num_values = mesh_chunk.get_variable_data_size(nv)
411 var_values = mesh_chunk.get_variable_data(nv)
412 print(" Var Name: {0}, Nodal values: {1}, Mesh Chunk: {2}".format(var_name, num_values, m))
413 print(" First 10 Values: ")
414 for n in range(10):
415 print(" ", var_values[n])
416 # Element Blocks
417 num_elem_blocks = mesh_chunk.get_num_element_blocks()
418 print("\n Num Element Blocks: ", num_elem_blocks)
419
420 element_block_types = mesh_chunk.get_element_block_types()
421 for et in element_block_types:
422 elem_block = mesh_chunk.get_element_block_by_type(et)
423 num_elements = 0
424 conn_size = 0
425 faces_per_elem_size = 0
426 nodes_per_face_size = 0
427 indices_size = 0
428 if isinstance(elem_block, dvs.IElemBlockObject):
429 match elem_block.get_element_type():
430 case dvs.ELEMTYPE_TETRAHEDRON | dvs.ELEMTYPE_TRIANGLE | dvs.ELEMTYPE_QUADRANGLE | dvs.ELEMTYPE_HEXAHEDRON:
431 num_elements = elem_block.get_num_elements()
432 connsize = elem_block.get_connectivity_size()
433 connectivity = elem_block.get_connectivity()
434 print(" Element Type: ", elem_block.get_element_type())
435 print(" Connectivity Size: ", connsize)
436 for s in range(10):
437 print(" ",connectivity[s])
438 case dvs.ELEMTYPE_N_SIDED_POLYGON | dvs.ELEMTYPE_N_SIDED_POLYGON_GHOST:
439 print(" Element Type : ", elem_block.get_element_type())
440 num_elements = elem_block.get_num_elements()
441 print(" Num Elements : ", num_elements)
442
443 polygon_size = elem_block.get_connectivity_polygon_size()
444 nodes_per_polygon_size, indices_size = polygon_size
445 connectivity = elem_block.get_connectivity_polygon()
446 nodes_per_polygon, indices = connectivity
447 print(" Nodes per Polygon Size: ", nodes_per_polygon_size)
448 print(" Polygon Indices Size : ", indices_size)
449 #print(" Nodes Per Polygon: ")
450 #for np in nodes_per_polygon:
451 # print(" ", np)
452 #print(" Polygon Indices : ")
453 #for pi in polygon_indices:
454 # print(" ", pi)
455 case dvs.ELEMTYPE_CONVEX_POLYHEDRON | dvs.ELEMTYPE_CONVEX_POLYHEDRON_GHOST:
456 num_element = elem_block.get_num_elements()
457 print(" Element Type: ",elem_block.get_element_type())
458 print(" Number of elements: ", num_element)
459 # Get connectivity Polyhedral
460 polyhedral_size = elem_block.get_connectivity_polyhedral_size()
461 faces_per_elem_size, nodes_per_face_size, indices_size = polyhedral_size
462 conn_polyhedral = elem_block.get_connectivity_polyhedral()
463 faces_per_elem, nodes_per_face, conn_indices = conn_polyhedral
464 print(" Faces Per Elem Size :",faces_per_elem_size)
465 print(" Nodes Per Face Size :",nodes_per_face_size)
466 print(" Conn Indices Size :",indices_size)
467 #print(" Faces Per Elem: ")
468 #for fp in faces_per_elem:
469 # print(" ", fp)
470 #print(" Nodes Per Face: ")
471 #for nf in nodes_per_face:
472 # print(" ", nf)
473 #print(" Conn Indices : ")
474 #for ci in conn_indices:
475 # print(" ", ci)
476 case dvs.ELEMTYPE_STRUCTURED:
477 num_elements = elem_block.get_num_elements()
478 nodes_per_elem = elem_block.get_nodes_per_element()
479 print(" Structured Element: Type:{0}, NPE:{1}".format(elem_block.get_element_type(), nodes_per_elem))
480 case dvs.ELEMTYPE_UNDEFINED | dvs.ELEMTYPE_UNDEFINED_PARALLELEPIPED | dvs.ELEMTYPE_UNDEFINED_CURVILINEAR:
481 print(" Undefined element type found")
482 case _:
483 print(" Default Element Type")
484 num_elements = elem_block.get_num_elements()
485 nodes_per_elem = elem_block.get_nodes_per_element()
486 # Get Connectivity List
487 result = elem_block.get_connectivity()
488 connsize, connectivity = result
489 #print(" Print Connectivity: ")
490 #for i in connectivity:
491 # print(" ", i)
492
493print("\n-----------------------------------")
494print(" Listing All Plot Chunks for Query")
495print("-------------------------------------")
496num_plot_chunks = query.get_num_plot_chunks()
497for np in range(num_plot_chunks):
498 plot = query.get_plot_chunk(np)
499 if isinstance(plot, dvs.IPlotChunkObject):
500 plot_def = plot.get_object()
501 plot_name = plot_def.get_name()
502 time = plot.get_time()
503 rank = plot.get_rank()
504 plot_hash = plot.get_hash()
505 print(" Plot Name: ", plot_name)
506 plot_data = plot.get_data()
507 x_values, y_values = plot_data
508 print(" Plot Hash: ", plot_hash)
509 print(" X Values: ")
510 for x in x_values:
511 print(" ", x)
512 print(" Y Values: ")
513 for y in y_values:
514 print(" ", y)
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530

Connect with Ansys