Help with Rotational Extrusion

Hello all,

I must be doing something wrong with the Rotational Extrusion filter. I was hoping that someone could point me in the right direction. I am using Paraview 5.5.2 on Linux.

My input data is a VTK file with 2d data organized in x and y and one unit deep in z. The y-axis of the input data is the axis which I would like to rotate around.

My workflow is:
1 [vtk file] -> type unstructured grid
2 Transform -> Rotate 90 on x axis so that the axis of symmetry is now the z-axis. Output data type is unstructured grid.
3 ExtractSurface -> output data type is Polygonal mesh
4 RotationalExtrusion (resolution 12, angle 270, no capping angle) - output is polygonal mesh with 0 cells.

If I try RotationalExtrusion (resolution 12, angle 270, capping angle) - just generates the capping faces but no rotational extrusion between them.

Clearly I’m doing something wrong. I suspect that my error lies in the Extract Surface step. In this step I currently use the default settings (piece invarient, 1 level). Perhaps the fact that my input data set is one unit deep on the original z axis (before translation) is the reason? The output data from this step also looks like it is one unit deep rather than being a 2d surface.

Thank you in advance for any suggestions.

-A

Followup.

I was able to fix my issue by using the slice filter in place of the ExtractSurface filter. Hopefully this will help others.

Best,
-A

One further question.

Here’s what I am trying to do: I ran a simulation using radial symmetry. I’m analyzing the results and wanted to integrate several result quantities. My thought process was that I would extrude the 2d simulation results to create a cylinder volume, and the integrate the variables that I wanted across that cylindrical volume.

I realize now that the rotational extrusion generates a surface, not a volume.

Are there other approaches to get to what I was trying to do? That is, taking a 2d data set that represents a cross section of a cylinder and using this to calculate what the volumetric integration of those quantities would look like?

Thank you in advance,

-A

Hi Andrew,
Did you ever find an answer to this question? I’m interested in doing something very similar.
Thanks!
Kevin

You can try to use the “Delaunay 3D” filter. It will mesh your polygonal data into a volume.

HTH

Also, if you want to preserve the connectivity of the original mesh and save some time, there’s a VTK filter called vtkVolumeOfRevolutionFilter which can rotate 2d polygonal data around an arbitrary axis to create 3d volumetric output. There isn’t a Paraview interface for it, so I wrote a small XML-only plugin for it:

VolumeOfRevolution.xml (1.9 KB)

Since the filter is already in VTK, this XML file can be loaded using the plugin manager to allow rotation of 2d axisymmetric data into a 3D volume mesh with variable resolution around an arbitrary axis; it’s almost an identical interface to the Rotational Extrusion filter, but actually makes volumes. Hope this helps!!

2 Likes

Turns out this solution doesn’t work yet, as there was a bug found just this morning (7/21/2022) in vtkVolumeOfRevolutionFilter that causes it to not properly copy pointData:

https://gitlab.kitware.com/vtk/vtk/-/issues/18622

If you have a custom Paraview build, you could update the necessary VTK code either once it gets approved to merge or in your own source code; otherwise, it looks like the using the Angular Periodic Filter followed by Delaunay3D is the only option until this is fixed.

This bug fix has been merged. Thanks!

2 Likes

Nice filter Jonah, just tried it in 5.10.1 and it seems to work well!