У меня есть некоторые результаты CFD, полученные из существующего решателя (nektar++), и я хотел бы выполнить некоторую постобработку в Python. Мне нужно извлечь поле (u, v, p) и объем ячейки для каждой ячейки.
Мне удалось извлечь поля в массивы numpy с помощью этого кода:
import vtk
import vtk.util.numpy_support as VN
import numpy as np
filename = "t_2.vtk"
reader = vtk.vtkUnstructuredGridReader()
reader.ReadAllScalarsOn()
reader.ReadAllVectorsOn()
reader.SetFileName(filename)
reader.Update()
num_points = reader.GetOutput().GetNumberOfPoints()
p = VN.vtk_to_numpy(reader.GetOutput().GetPointData().GetScalars('p'))
u = VN.vtk_to_numpy(reader.GetOutput().GetPointData().GetVectors('u'))
v = VN.vtk_to_numpy(reader.GetOutput().GetPointData().GetVectors('v'))
P = vtk_to_numpy(p)
U = vtk_to_numpy(u)
V = vtk_to_numpy(v)
Однако я не понимаю, есть ли способ или нет (возможно, информация об объеме ячейки отсутствует на выходе), чтобы узнать также значение объема ячейки.
Я предполагаю, что правильная инструкция должна быть примерно такой:
Vol = VN.vtk_to_numpy(reader.GetOutput().GetPointData().GetScalars('Volume'))
Может кто сталкивался/сталкивается с такой же проблемой?
Большое спасибо за Вашу помощь.
Привет, Риккардо