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.

openfoam logo

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

This cloudFunction is a face zone-based particle interaction[4], allowing to model some interaction type, including rebounding, escaping or sticking. Here is an example of the structure of this function :
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! 🙂

Leave a Comment

Your email address will not be published. Required fields are marked *