import math from typing import List import pyvista as pv def vertical_column_from_mesh(mesh): last_seen = math.inf relevant_indices = [] first_x = 0 first_y = 0 for index, point in enumerate(mesh.points): if index == 0: first_x = point[0] first_y = point[1] if (point[0] != first_x or point[1] != first_y) and point[2] == last_seen: continue relevant_indices.append(index) last_seen = point[2] return relevant_indices def get_values_from_indices(array, indices) -> List[float]: return [array[index] for index in indices] if __name__ == "__main__": mesh = pv.read("output/mq/mq10000/mq0_10000.ascii.vtu") indices = vertical_column_from_mesh(mesh) values = get_values_from_indices(mesh.get_array("Vx"), indices) print(len(indices)) print(values)