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.

Fig 1: Typical openFOAM structure: index 1 is the inner mesh. Index 2 is the parent for all boundaries.

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`.
Fig 2: The Manage Plugins panel.
  • 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.
Fig 3: The settings panel allow to force outline representation on data load.
  • Load the data
    Now load your dataset (be sure to select some boundary regions)
Fig 4: Data default to outline
  • Choose Fast Surface (With Edges) Mapper
Fig 5: The two variant of the fast representation

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

Fig 6: Default used block can be selected in the settings
Fig 7: The extracted block can also be changed in the Display panel, useful for comparison

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 

Leave a Reply