Introduction

This page briefly describes the main characteristics of CFDEM®coupling.

What is CFDEM®coupling?

CFDEM®coupling is an open-source, parallel, coupled CFD-DEM framework combining the strengths of Aspherix® DEM code and the open-source CFD package OpenFOAM®(*). The CFDEM®coupling toolbox uses OpenFOAM®(*) technology to build separate solvers solving the Navier-Stokes equations in the presence of particles. While the fluid flow is solved inside the CFDEM®coupling solver, the particle motion is calculated in a separate DEM code, e.g. Aspherix®.

It is possible to import particle data from any DEM solver (see e.g. cfdemPostproc). In CFDEM®coupling the particle representation within the CFD solver is organized by “cloud” classes. Key functionalities are organised in sub-models (e.g. force models, data exchange models, etc.) which can easily be selected and combined by dictionary settings. The whole workflow of case setup, execution and post-processing of a coupled CFD-DEM simulation can be done either based on graphical user interface (GUI)


Main features

CFDEM®coupling includes the following main features:

  • Modular approach to allow the users to easily implement new models

  • MPI parallelization to enable the solution of large-scale problems

  • CFDEM®coupling is widely used in industry and academia both pushing its functionality to a cutting-edge level

  • Documentation is provided


File structure

The CFDEM®coupling files are organized in the following structure:

  • src directory contains the source-code files of the CFDEM®coupling toolbox library and models

  • applications directory contains the solver source files for coupled CFD-DEM simulations

  • doc directory including the documentation of CFDEM®coupling

  • tutorials directory including basic tutorial cases showing the functionality

The functionality of this CFD-DEM framework is described in the tutorial page, showing how to use different solvers and models.


Physical model

CFDEM®coupling includes different solvers (e.g., cfdemSolverPiso) which calculate a numerical solution of the Navier-Stokes equations in presence of a solid phase. A general formulation of the Navier-Stokes equations with a solid phase is the following:

\ddt{\alpha_l \rho_l} + \div{\alpha_l \rho_l \vec{u}_l} &= 0 \\
\ddt{\alpha_l \rho_l \vec{u}_l} + \div{\alpha_l \rho_l \vec{u}_l \vec{u}_l} &= \alpha_l
\nabla p - K_{sl}\left( \bm{u}_l - \vec{u}_s \right) + \div{\alpha_l \bm{\tau}} + \alpha_l \rho_l \vec{g} + \vec{f}

where l and s denote respectively fluid and solid properties. The void fraction \alpha_{l} denotes the fluid content of a calculation-cell, \rho_l is the fluid density, \vec{u}_l is the fluid velocity, p is the pressure, K_{sl} is the implicit momentum exchange term between solid and liquid phase, \vec{u}_{s} is the solid velocity, \bm{\tau} is the liquid-stress-tensor, \vec{g} the gravity vector and t is the time. The term \vec{f} can be used to explicitly exchange momentum from the solid to the liquid phase.

All CFDEM®coupling solvers use a “cfdemCloud” object which:

  • Control and communicate with the Aspherix® DEM solver (see commandModel and dataExchangeModel)

  • Find the cell ID of a certain position, e.g. the particle center (see locateModel)

  • Calculate the void fraction field from particle positions, particle volumes and cell volumes (voidFractionModel)

  • Calculate the forces on the CFD field and the particle forces. These may be assembled by various forceModels, e.g. buyoancy and a drag-law (see forceModel and forceSubModel)

  • Calculate the implicit and, if necessary, explicit source terms from the force fields for the Navier-Stokes equations (see momCoupleModel)

  • Calculate the \vec{u}_{s} field from particle data, map the particle data to the CFD field (see averagingModel)

With the standard setting, the momentum coupling model takes the forces calculated by the forceModels and produces the implicit momentum source term K_{sl} according to:

K_{sl} = \frac{\alpha_l \left| \sum_{i} \vec{F}_{drag} \right|}{V_{cell} \left| \vec{u}_l - \vec{u}_p \right|}

More advanced solvers have also an explicit source term field \vec{f} which is assembled from those forces which have the treatForceExplicit=true flag (see forceSubModels).


(*) This offering is not approved or endorsed by OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM® and OpenCFD® trade marks.