FastSurfaceMultiblockRepresentation plugin for ParaView
Kitware has just released the fast surface multiblock representation plugin! Clone and compile it from here: https://gitlab.kitware.com/paraview/fastsurfacemultiblockrepresentationplugin
This plugin optimizes surface rendering of OpenFOAM datasets and other similarly structured multiblock datasets.
The specificity of those multiblocks lies within the existence of one node for the inner mesh, i.e. the volume, and several nodes corresponding to boundaries, i.e. external surfaces of the mesh.
When we ask for Surface Rendering in ParaView, the classic representation has to load the whole dataset, including inner volume and then apply a filter to extract the outer surface from the volumic geometry. This operation can be very time consuming for big datasets.
This is also frustrating and seems pointless when the computed surface is directly available as part of the dataset!
The FastRepresentation plugin is now here to help.
Designed for openFOAM dataset, this new representation directly uses the surfacic nodes of the multiblock dataset as the surface used for representation of the volume. The surface extraction operation is purely removed from the process, leading to obvious rendering speedup (see below).
This plugin adds two representations, Fast Surface
and Fast Surface With Edges
.
How to use
- Load the plugin
Go to `Tools / Manage Plugins`. Click on `Load New`, then `Load Selected`.
- Create a new RenderView
The current view is not able to find our new representation, so you need to create a new RenderView.
- Set Outline setting
The`Surface` representation is usually set as default and we want to avoid this. To do that, go to `Edit / Settings / RenderView` and change the `Outline Threshold` parameter to 0, so that outlines only will be rendered when loading a data.
- Load the data
Now load your dataset (be sure to select some boundary regions)
- Choose Fast Surface (With Edges) Mapper
Configure
By default, the fast representation uses the second block of the multiblock. In openFOAM, this is the ‘boundaries’ node, that contains the external surfaces as child nodes. If your data structure is slightly different, you can choose another block. Either in the `Display` panel or by changing the settings
Benchmark
This benchmark has been done on a 20M cells dataset. The timings have been taken three times for each measure and averaged.
- Classic Surface representation: 6910ms
- New Fast Surface representation: 0.74ms
- x 9300 speedup
- Classic Surface With Edges representation: 6970ms
- New Fast Surface With Edges representation: 0.61ms
- x 11300 speedup
Acknowledgements
This work was supported by Audi
Developments were done by Kitware Europe, France