Changing geometry in npFEM - PALABOS solver for RBCs

Hello all!
I am using the npFEM module to simulate the dynamics of red blood cells in flow. I am interested in running simulations with different initial shapes of the red blood cell(different reduced volumes basically). Towards this, i have created a triangulated mesh using Delaunay triangulation and processed it in grasshopper to obtain the required .csv files.
I have also manually checked them to ensure that they are in the correct format. However, when i am running the flow around a cubical obstacle program (given in examples), i am getting physically unrealistic results where the cell is penetrating the solid obstacle.
I would request the developers to guide me on how to modify the code for making this work.



Did you try to modify the values in the obstacle_params.xml that adjust the collision response?
For example, you could change collisions_threshold_nonRep & collisions_weight_nonRep, which could result in higher collision forces (avoiding in this way the interpenetration).

Also, you could try to reduce the time/space discretization, because maybe in your setup it is not enough to capture the penetration. Finally, you could reduce the intensity of the flow (decrease u_p) which will slow down a bit the fluid flow.

By the way, did you try to run a stretching test from Grasshopper. You can check the validity of your material by doing a quick stretching test from within the Rhino-GH environment. For this you need to setup the material and above the solver you will find two buttons (Pause / Reset). By pressing them, you will be able to stretch your body and check if at this point you have something meaningful. If you observe a reasonable deformation, then you should not face many problems plugging it in Palabos.

Let me know if something of the above works for you.

Dear Dr. Kotsalos,
I have followed the steps outlined by you and i am able to obtain physically realistic results in the obstacle simulation by modulating the collision thresholds and i am also getting correct results in the Poiseuille flow example. However, i have constructed another program to study the flow of RBCs in a more complex geometry and it works fine for the RBC 258 surface vertices mesh, but when i am loading the spherical mesh instead, i am getting erroneous results.

About the geometry: I have created a stl mesh of a converging channel, and set it up as bounce-back nodes using a boolean function, by following the example given in PALABOS. I am initializing the velocity field from a steady state velocity profile using a .dat file, as explained in the tutorial.

Since, here there is no question of direct collision with the walls, i wonder what else could be the problem.

I also tried the running the stretching test in GH but it was throwing an error saying that it can’t open the npFEM.dll library, since i was able to solve the obstacle issue by tuning the collision parameters, i did not give it a closer look.


Hi Deviprasad,

I am happy that you managed to solve the previous problem.

From your description on the new geometry I am afraid that I cannot understand where is the problem. In any case, I would suggest you to run the stretching test in Rhino-GH because this will show you if your new body behaves correctly. Try to figure out why you have this error in GH (npFEM.dll) and then you will know at least where is the problem.

I have tried Palabos-npFEM with different geometries and I had no problem (see my latest article So, definitely you miss something in the process :slight_smile:

Let me know, how it proceeds.