cfdemSolverIB bug - force calculation on non-uniform meshes is incorrect

Nucleophobe's picture
Submitted by Nucleophobe on Wed, 09/02/2015 - 19:29


Over the past few months, I have been experimenting with the fictitious domain solver 'cfdemSolverIB' and have discovered a few bugs / limitations (CFDEMcoupling v. 2.7.1). I realize the solver is experimental, but I thought I'd share what I've found to raise awareness for new users and to identify areas for future development.

From my experience, as implemented, the fictitious domain solver cfdemSolverIB does not appropriately handle force calculations when the immersed particle occupies cells with differing cell volumes.

For example, here is a test case with a falling particle in a small vessel. In the first case, the mesh is uniform (i.e., constant cell volume). In the second case, there is a mesh refinement region in the bottom half of the container:

Case 1: uniform mesh:
Case 2: mesh with refinement region:

It appears that when the particle moves into the refinement region that the calculation of the forces along the particle boundary is not performed properly (i.e., the forces originating from the cells in the refinement region are larger than they should be). I need to investigate this further to understand what's happening, but I thought I would raise awareness for now.


Edit: I can confirm that the bug persists in version CFDEMcoupling v. 2.9.0

bnaar | Tue, 03/29/2016 - 18:00

Dear Nuc,

As I am now working on a cylindrical mesh I was wondering if you have made any progress on this incompatibility with a non-uniform mesh?

Kind regards,


NTT1508 | Wed, 03/30/2016 - 00:20

Dear Nuc,

Thank for posting, this is interesting. But I think these two cases are not quite the same to compare and see exactly what happens. And why did not you plot the force generated in cells in these cases?


Nucleophobe's picture

Nucleophobe | Thu, 03/31/2016 - 22:41


I have performed simulations using a cylindrical domain that I created with snappyHexMesh, and it seems to work okay.

I first created the block mesh with cuboid cells. Then, I pointed snappyHexMesh to an STL I created for the cylindrical boundary, and made sure that no refinement regions were created. I also turned off the layer addition iteration.

The result is a roughly cuboid mesh, with some of the cells near the wall snapped to the cylindrical boundary. I think there is some error in the force calculations when the particles travel near the wall, but it has not affected the results for my application.

Let me know if you need any clarification and I can upload a screenshot or something.

NTT1508, bnaar:
I may have plotted the forces at some point, but I don't remember exactly what I saw. That would be the right place to start.

In general, though, I'm not sure if the fictitious domain method can easily be adapted to handle unstructured grids. Maybe a quick literature search would be informative?

Arghavani | Mon, 12/02/2019 - 11:55

Hello everyone,

Does anybody know about that cfdemSolverIB works for nonuniform mesh or not?
kind regards,