Particle filtering modelling in OpenFOAM The faceInteraction cloudFunction
Hi everybody!
In our category Tips & Tricks for CFD, here is a brief description of a useful function concerning particle filtering modelling with OpenFOAM. Let’s go! 🙂
About OpenFOAM
OpenFOAM (Open-source Field Operation And Manipulation) is an open-source CFD software licensed under the GNU General Public License Version 3, with a very large range of features concerning pre-processing, numerical and physics solvers, and post-processing. Three main OpenFOAM variants currently coexist:
- OpenFOAM, released by OpenCFD Ltd.[1]
- OpenFOAM, released by OpenFOAM Foundation.[2]
- FOAM-Extend, released by Wikki Ltd.[3]
This post is based on a feature developed in the OpenFOAM variant released by OpenCFD, and available since v2112 version.

Filter modelling
In lots of industrial processes, filters can be of paramount importance. Most of the time, in CFD simulations, it’s not possible to directly model these filters, as this would require overly large mesh sizes.
Regarding the flow itself, a classic approach is to simulate filters with pressure / head losses based on porosity models. Typically, CFD engineers often use the Darcy-Forchheimer law, a tensor model or rank 1, which allows to define flow-directed pressure drops :
S = -({\mu}d + \cfrac{{\rho}|U|}{2}f)U
where d is the Darcy coefficient, and f the Forchheimer coefficient.
However, in the case of biphasic flows with a Lagrangian approach concerning particles, the actual filtering role isn’t taken into account with that. Fortunately, some features exist in OpenFOAM to deal with it. We focus here on one function, named faceInteraction.
The faceInteraction cloudFunction
cloudFunctions { faceInteraction1 { type faceInteraction; // List of (faceZone interactionType) faceZones ( (poroFz stick) ); // Optional limiting to diameter range dMin 200e-6; dMax 2000e-6; // File written per faceZone as postProcessing/lagrangian/cloudName/modelName/time/modelName_faceZone.dat writeToFile yes; // default = yes } }With this definition, particles with a diameter between 200.10-6m and 2000.10-6m will be stuck on the face zone named poroFz.Below is a little CFD simulation of a channel with such a flow (biphasic with a Lagrangian approach concerning particles), and the previously defined face-zone interaction. Injected particles diameter is based on a normal distribution, with a mean of 200.10-6m and a standard deviation of 50.10-6m. Used spheres for the visualisation are coloured with diameter range.
In a case with lots of particles and a coupling with the flow, we can imagine filter properties (pressure loss) depending on time! By the way, you need to be careful about the simulation convergence ;-).
Thank you for reading this article, and for visiting our website! 🙂