OpenFOAM® v1806: New and improved post-processing

29/06/2018

New In-situ processing with ParaView Catalyst

The new function object adaptor for ParaView Catalyst marks a significant addition in post-processing and visualisation capabilities for OpenFOAM.

Catalyst adds in-situ and live visualisation capabilities to arbitrary OpenFOAM simulations. Rather than post-processing at the end of a simulation, it is now possible to harness the capabilities of ParaView and generate visualisation results simultaneous to the simulation. The scripts for the visualisation pipelines can be created interactively using the ParaView GUI.

There can be several benefits of using the Catalyst in-situ visualisation. In general, it is more efficient to avoid writing intermediate results solely for the sake of visualisation. It is faster and uses less disk space to generate the desired visualisation images directly. This becomes extremely important for large meshes and when a high temporal resolution is required for the visualisation.

The example animation below shows an overset case where the images have been created at a high temporal frequency during the calculation, and the view configured to produce the composite image for all mesh regions:

The live visualisation option can also be useful to examine the current simulation fields without writing to disk. Since the live visualisation is incorporated into the OpenFOAM time loop, it can be used to pause the simulation and set breakpoints. These features make it invaluable during the development of new solvers or physics, to gain insights of the behaviour of the simulation and models.

The Catalyst function object is run-time selectable and supports in-situ conversion of the following types:

• finite volume meshes and fields. Single or multi-region.
• finite area meshes and fields. Single region.
• lagrangian (clouds). Single or multiple clouds.

The Catalyst function object is a community module that has been developed by OpenCFD in collaboration with Simone Bna (CINECA) and with the kind support of Andy Bauer (Kitware). The work has been partially supported by PRACE.

Installation support with spack is current approaching completion and will be available within a few weeks.

Build requirements
• ParaView 5.4 or newer, compiled with python support.

ParaView 5.5 or newer is recommended for its more advanced script generation support. If building from source, the additional patches applied by the ThirdParty makeParaView script are also recommended for better support of the OpenFOAM -case option.

Source code
$WM_PROJECT_DIR/modules/catalyst Examples$WM_PROJECT_DIR/modules/catalyst/tutorials/finiteArea/sphereSurfactantFoam/sphereTransport
$WM_PROJECT_DIR/modules/catalyst/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater$WM_PROJECT_DIR/modules/catalyst/tutorials/incompressible/icoFoam/cavity
$WM_PROJECT_DIR/modules/catalyst/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek$FOAM_TUTORIALS/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/catalyst

Writing residual fields

The residuals function object now enables users to create linear solver residual fields, which are stored on the mesh database and can be optionally written to disk according to the chosen write controls. The following animation shows the evolution of the p_rgh field and its initial residual for the BernardCells tutorial case.

Source code
$FOAM_SRC/functionObjects/utilities/residuals Examples$FOAM_TUTORIALS/heatTransfer/buoyantBoussinesqPimpleFoam/BernardCells/system/residuals
Examples
Examples
$FOAM_TUTORIALS/lagrangian/coalChemistryFoam/simplifiedSiwek Updated writing of Ensight format data EnSight format for sampled surfaces The sampled surface geometry is now written in the same directories as the sampled fields. This allows a more flexible response to changes in the underlying sampled surface geometry. The surface output writers are now triggered when a change in the surface geometry occurs. This fixes a previous bug where the collated EnSight surface format would not follow changes the iso-surfaces. Updated ensightWrite function object Now disabled in -postProcess mode to avoid accidental overwrite of run-time conversions. The ensight mesh geometry is now stored in the same location as the fields, so there is no initial distinction in the output between moving and non-moving simulations. Only when the ensight case file is written will a distinction be seen. For moving cases, the geometry varies with time and a combination of a time-set and a data mask are used to locate the files. GEOMETRY model: 1 data/********/geometry For non-moving cases, the geometry is time-invariant and is referenced directly. GEOMETRY model: data/00000000/geometry The ensight case file is now flushed every time the function object write is called. This ensures that the case file always contains the current values and allows immediate loading of the case file and processing of the data during the calculation. The ensightWrite function object now supports the nodeValues option for consistency with the foamToEnsight utility. Source code$FOAM_SRC/functionObjects/utilities/ensightWrite
Examples
$FOAM_TUTORIALS/incompressible/simpleFoam/windAroundBuildings$FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D˙pimpleFoam
Examples
$FOAM_SRC/compressible/rhoSimpleFoam/squareBend Bounded sampling planes The new bounds entry for sampling planes enables users to restrict the extent of the plane, as shown below: plane1 { type plane; source cells; planeType pointAndNormal; pointAndNormalDict { normal (-1 0 0); point (-0.04 0 0); } bounds (-1 -1 -1) (0 0 1); } Distance surface sampling Users can now define non-closed signed distance surfaces. This allows their use as flexible alternative to a sampled plane with bounding box restrictions, or to sample on arbitrary surface, e.g. a hemisphere in an outflow. Source code$FOAM_SRC/sampling/sampledSurface/distanceSurface
$FOAM_SRC/sampling/surfMeshSample/distanceSurface/surfMeshSampleDistanceSurface Examples$FOAM_SRC/compressible/rhoSimpleFoam/squareBend

Derived sampled fields

Now support the specification of a rhoRef when calculating rhoU or pTotal as a derived sampled surface field for incompressible cases.

Source code
$FOAM_SRC/sampling/surfMeshSample/surfMeshSamplers Examples$FOAM_SRC/incompressible/rhoSimpleFoam/squareBend

New uniformity index

Added a new flow uniformity operation to the surfaceFieldValue function object, available in regular, weighted and absolute weighted versions.

Note: When the mass-flow is taken for the weight field, an intermediate sampling into surfFields is likely to be required.

Source code
$FOAM_SRC/functionObjects/field/fieldValues/surfaceFieldValue Example case$FOAM_TUTORIALS/compressible/rhoSimpleFoam/squareBend
\$FOAM_TUTORIALS/incompressible/simpleFoam/squareBend