OpenFOAM® v1912: New and improved post-processing
Improvements in particle post-processing
Cloud patch interaction models
Optionally write patch interaction statistics, e.g. number and mass of particles that stick, escape etc. to file using the optional writeToFile entry. As an example, if using the localInteraction particle patch interaction model, the new entry can be added as follows:
// New optional entry
Cloud function objects
The new fields entry can be used to select which particle fields to post-process; if empty or the entry is not given all fields are written (to maintain backwards compatibility)
// Optional new entry
fields (position "U.*" d T nParticle);
New bi-directional particle streamlines
The streamLines and wallBoundedStreamLines function objects have been extended to allow bi-directional tracking from the seed points. In addition the wallBoundedStreamlines function object now supports multiple tracks per boundary face.
The new functionality can be enabled through the new direction keyword (instead of the trackForward flag in earlier releases):
direction bidirectional; // or forward/backward
fields (U p);
The following images show the old behaviour, where two sets of function objects were required: one tracking forward; one backward:
compared to the new bi-directional tracking:
- Source code
New distance to surface function object
The new surfaceDistance function object generates a field (volScalarField) showing the distance to a provided geometry. This can be used to detect meshing problems e.g. insufficient resolution to mesh into gaps.
- the specification of the surface(s) is through a geometry entry, compatible with snappyHexMesh and foamyHexMesh.
- it does not limit search to any particular surface - it finds the nearest on any surface
- by default it will find the nearest also for all cell centres. This can be suppressed by unsetting the optional doCells boolean flag.
- the value on the boundary will be the distance from the face centre
A sample system/surfaceDistance dictionary:
// Where to load it from
Or to see how close the meshed surface is to the input geometry surfaces:
- Source code