[vtkusers] vtkGeometryFilter for quadratic tetra grids

Bill Lorensen bill.lorensen at gmail.com
Mon Aug 20 10:27:05 EDT 2018


Can you share your data? Could be a bug in GeometryFilter.

On Mon, Aug 20, 2018, 6:57 AM Nguyen, Giang Hoang <ghnguyen at wpi.edu> wrote:

> Hi,
>
>
> Thanks for the quick reply Kenichiro. I could see that the GeometryFilter
> does support quadratic tetra grids now. Still I have the issue with my
> large mesh. I'm reading from a file and this is the snippet to read that
> file:
>
> ----
> reader = vtkUnstructuredGridReader()
> reader.SetFileName(file_name)
> reader.Update()
> print reader.GetOutput()
> ----
>
> which prints out this to terminal:
>
> vtkUnstructuredGrid (0000000006521F50)
>   Debug: Off
>   Modified Time: 184
>   Reference Count: 2
>   Registered Events: (none)
>   Information: 00000000025B0F10
>   Data Released: False
>   Global Release Data: Off
>   UpdateTime: 189
>   Field Data:
>     Debug: Off
>     Modified Time: 161
>     Reference Count: 1
>     Registered Events: (none)
>     Number Of Arrays: 0
>     Number Of Components: 0
>     Number Of Tuples: 0
>   Number Of Points: 343399
>   Number Of Cells: 250935
>
> I suppose this means the reader was able to read the unstructured grid
> correctly and I have data integrity (which is also confirmed by Paraview,
> which was able to generate this UnstructuredGrid mesh). What I'm looking
> for is this snippet to work:
>
> ----
>
> geoFilter = vtkGeometryFilter()
> geoFilter.SetInputConnection(reader.GetOutputPort())
> geoFilter.Update()
> ----
>
> Unfortunately, the line geoFilter.Update() always makes vtkpython quit
> without any warning/error even with try catch surrounding. I'm not sure
> what the problem now is.
> ------------------------------
> *From:* kenichiro yoshimi <rccm.kyoshimi at gmail.com>
> *Sent:* Friday, August 17, 2018 11:04:27 PM
> *To:* Nguyen, Giang Hoang
> *Cc:* vtkusers at public.kitware.com
> *Subject:* Re: [vtkusers] vtkGeometryFilter for quadratic tetra grids
>
> Hi,
>
> Could you provide some more information on what happens in applying
> vtkGeometryFilter to quadratic tetra grids. At least, the following
> simple code works without any problem using vtk 7.1.1.
>
> ---
> import vtk
>
> def main():
>
>   points = vtk.vtkPoints()
>   points.InsertNextPoint(0, 0, 0)
>   points.InsertNextPoint(1, 0, 0)
>   points.InsertNextPoint(1, 1, 0)
>   points.InsertNextPoint(0.5, 0.5, 0.5)
>   points.InsertNextPoint(0.5, 0, 0)
>   points.InsertNextPoint(1, 0.5, 0)
>   points.InsertNextPoint(0.5, 0.5, 0)
>   points.InsertNextPoint(0.25, 0.25, 0.25)
>   points.InsertNextPoint(0.75, 0.25, 0.25)
>   points.InsertNextPoint(0.75, 0.75, 0.25)
>
>   unstructuredGrid = vtk.vtkUnstructuredGrid()
>   unstructuredGrid.SetPoints(points)
>
>   quadraticTetra = vtk.vtkQuadraticTetra()
>
>   for i in range(10):
>     quadraticTetra.GetPointIds().SetId(i, i)
>
>   cellArray = vtk.vtkCellArray()
>   cellArray.InsertNextCell(quadraticTetra)
>
>   unstructuredGrid.SetCells(vtk.VTK_QUADRATIC_TETRA, cellArray)
>
>   print('quadraticTetra: ')
>   print(' cell number: {}'.format(unstructuredGrid.GetNumberOfCells()))
>   print(' point number: {}\n'.format(unstructuredGrid.GetNumberOfPoints()))
>
>   geometryFilter = vtk.vtkGeometryFilter()
>   geometryFilter.SetInputData(unstructuredGrid)
>   geometryFilter.Update()
>
>   print('extracted surface: ')
>   print(' cell number:
> {}'.format(geometryFilter.GetOutput().GetNumberOfCells()))
>   print(' point number:
> {}'.format(geometryFilter.GetOutput().GetNumberOfPoints()))
>
>   mapper = vtk.vtkPolyDataMapper()
>   mapper.SetInputConnection(geometryFilter.GetOutputPort())
>
>   actor = vtk.vtkActor()
>   actor.SetMapper(mapper)
>   actor.GetProperty().EdgeVisibilityOn()
>
>   renderer = vtk.vtkRenderer()
>   renderer.AddActor(actor)
>
>   renderer.ResetCamera()
>   renderer.GetActiveCamera().Azimuth(210)
>   renderer.GetActiveCamera().Elevation(30)
>
>   renderWindow = vtk.vtkRenderWindow()
>   renderWindow.SetSize(640, 480)
>   renderWindow.AddRenderer(renderer)
>
>   renderWindowInteractor = vtk.vtkRenderWindowInteractor()
>   renderWindowInteractor.SetRenderWindow(renderWindow)
>
>   renderWindowInteractor.Start()
>
>
> if __name__ == '__main__':
>     main()
> ---
>
> Regards,
> 2018年8月18日(土) 4:17 Nguyen, Giang Hoang <ghnguyen at wpi.edu>:
> >
> > Hi,
> >
> >
> > I would like to confirm here if vtkGeometryFilter doesn't work for
> unstructured grids that are quadratic tetra (10 nodes per cell). I was
> using it to convert an unstructured grid to polydata, using vtkpython in
> conda environment. The exact code works fine for unstructured grids with
> triangle cells. I looked at the cxx source for vtkGeometryFilter at
> https://github.com/Kitware/VTK/blob/master/Filters/Geometry/vtkGeometryFilter.cxx
> and it seems like the quadratic cells are not supported? In that case, what
> other approaches should I look into? Thanks in advance.
> >
> >
> > Best,
> >
> > Giang
> >
> >
> > _______________________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> >
> > Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
> >
> > Search the list archives at: http://markmail.org/search/?q=vtkusers
> >
> > Follow this link to subscribe/unsubscribe:
> > https://public.kitware.com/mailman/listinfo/vtkusers
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Search the list archives at: http://markmail.org/search/?q=vtkusers
>
> Follow this link to subscribe/unsubscribe:
> https://public.kitware.com/mailman/listinfo/vtkusers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://public.kitware.com/pipermail/vtkusers/attachments/20180820/5c6fa646/attachment-0001.html>


More information about the vtkusers mailing list