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:
{
patches
(
"(walls|cyc.*)"
{
type rebound;
}
"inlet|outlet"
{
type escape;
}
);
// New optional entry
writeToFile yes;
}
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)
{
type patchPostProcessing;
// Optional new entry
fields (position "U.*" d T nParticle);
maxStoredParcels 20;
patches
(
cycLeft_half0
cycLeft_half1
);
}
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
- $FOAM_SRC/functionObjects/field/streamLine
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
libs (fieldFunctionObjects);
type surfaceDistance;
geometry
{
motorBike.obj
{
type triSurfaceMesh;
}
}
}
Or to see how close the meshed surface is to the input geometry surfaces:
- Source code
- $FOAM_SRC/functionObjects/field/surfaceDistance