如何在 VTK 中通过坐标查找元素?
How do I find the element by coordinate in VTK?
我有一个由 Gmsh(*.vtu) 生成的网格文件,网格是一个立方体区域,由四面体组成。然后我在立方体中有一个点(由坐标给出),我想找到哪个四面体包含这个点,我是怎么做到的?
with pygmsh.occ.Geometry() as geom:
geom.add_box([0, 0, 0],
[1, 1, 1], mesh_size=0.1)
mesh = geom.generate_mesh()
mesh.write('original_gmsh.vtu')
uGridReader = vtkXMLUnstructuredGridReader()
uGridReader.SetFileName('original_gmsh.vtu')
uGridReader.Update()
uGrid: vtkUnstructuredGrid = uGridReader.GetOutput()
givenPoint = [0.5, 0.5, 0.5]
您应该能够使用 vtkUnstructuredGrid 从 vtkDataSet 继承的 FindAndGetCell() 方法。 python 文档可以在你的 python shell 中使用 help(vtkUnstructuredGrid.FindAndGetCell)
找到(假设你已经导入了 vtkUnstructuredGrid,如果没有像往常一样添加 vtk.
作为建议,考虑查看 PyVista 包,根据我的经验,它更容易使用,并且也使用 VTK 作为其后端。
我有一个由 Gmsh(*.vtu) 生成的网格文件,网格是一个立方体区域,由四面体组成。然后我在立方体中有一个点(由坐标给出),我想找到哪个四面体包含这个点,我是怎么做到的?
with pygmsh.occ.Geometry() as geom:
geom.add_box([0, 0, 0],
[1, 1, 1], mesh_size=0.1)
mesh = geom.generate_mesh()
mesh.write('original_gmsh.vtu')
uGridReader = vtkXMLUnstructuredGridReader()
uGridReader.SetFileName('original_gmsh.vtu')
uGridReader.Update()
uGrid: vtkUnstructuredGrid = uGridReader.GetOutput()
givenPoint = [0.5, 0.5, 0.5]
您应该能够使用 vtkUnstructuredGrid 从 vtkDataSet 继承的 FindAndGetCell() 方法。 python 文档可以在你的 python shell 中使用 help(vtkUnstructuredGrid.FindAndGetCell)
找到(假设你已经导入了 vtkUnstructuredGrid,如果没有像往常一样添加 vtk.
作为建议,考虑查看 PyVista 包,根据我的经验,它更容易使用,并且也使用 VTK 作为其后端。