LIGGGHTS_Flexible_Fibers - "Segmentation fault" with single/multispheres & Single spheres deleted when multisphere integrator

Submitted by thboivin on Thu, 11/23/2023 - 17:13

Main reported bugs (happens only with LIGGGHTS_Flexible_Fibers): using single spheres and multispheres at the same time leads to "Segmentation fault" error / using multisphere integrator delete single spheres.
LIGGGHTS version: LIGGGHTS_Flexible_Fibers 3.8.0

Hello dear LIGGGHTS community,

I am currently facing an issue with the multisphere tool available in LIGGGHTS-PUBLIC.
My main objective is to obtain a mix a single spheres and multispheres within a same simulation and to add breakable bonds between them using the bonds model by Schramm et al. (2003). Up-to-date, this bonds model is available through the LIGGGHTS_Flexible_Fibers version 3.8.0 (see at the end for the git repositery).
To build my model, I took inspiration from different threads talking about dual single spheres/multispheres simulation:

- https://www.cfdem.com/forums/using-single-and-multisphere-together
- https://www.cfdem.com/forums/mixing-spheres-and-multispheres
- https://www.cfdem.com/forums/sphere-and-multisphere-mixing-rotary-drum

However, I meet some issues when I try to use single spheres and multispheres at the same time, especially when I use the LIGGGHTS_Flexible_Fibers version.

To illustrate my words, I built a self-sufficient minimal example, so I invite you to download the three available files attached:

- in1.sphere-multisphere-flexible-fibers-issue.txt: primary example
- in2.sphere-multisphere-flexible-fibers-issue.txt: secondary example
- cluster.multisphere.txt: multisphere template used in examples

The following development is based on the primary example (in1.sphere-multisphere-flexible-fibers-issue.txt).

~ Using the LIGGGHTS-PUBLIC version 3.8.0, I can easily play with the example without any issue. I can use a particle distribution with only single spheres, only multispheres or a mix of both, only by changing the fix particledistribution/discrete command. This works even if both integrators (fix multisphere and fix nve/sphere) are activated and associated to each multispheres or spheres groups, whatever the order of integrators activation (fix multisphere before fix nve/sphere or vice-versa).
~ Using the LIGGGHTS-PUBLIC-JKR version 3.8.0, the result is exactly the same and there is no issue to report.
~ Using the LIGGGHTS_Flexible_Fibers version 3.8.0, first issues appear, depending on the particles defined in the fix particledistribution/discrete command.
→ Only single particles → OK but only if the multisphere integrator is deactivated. If the multisphere integrator is activated, the generated single particles disappear.
→ Only multispheres → OK, no issue to report, even with both integrators are activated.
→ Both single particles and multispheres → ERROR. After the insertion of particles, computation crashes and leads to a "Segmentation fault" error message:
[aar096:32167] *** Process received signal ***
[aar096:32167] Signal: Segmentation fault (11)
[aar096:32167] Signal code: Address not mapped (1)
[aar096:32167] Failing at address: 0x20287a4e0
[aar096:32167] [ 0] /lib64/libpthread.so.0(+0xf630)[0x2b11d2b5c630

I also explored several leads:

- Running on only one core.
- Replacing single particles by a multisphere of one particle to get around the problem (but the particletemplate/multisphere fix command prevent the use of nspheres equal to 1).
- Separating both particles generations (as proposed in in2.sphere-multisphere-flexible-fibers-issue.txt: single spheres insertion and then multispheres insertion), but the presence of multisphere integrator delete the single particles as soon as they are inserted.

Consequently, it seems not possible to make a simulation with both single spheres and multispheres using the current LIGGGHTS_Flexible_Fibers version 3.8.0. It seems to come from the fact that, in this LIGGGHTS version, the activation of multisphere integrator (fix multisphere) deletes single spheres. This is my main hypothesis, but I am not 100% sure.
For now, I am running out of ideas, so I leave it to any other good intuition of experts.

Links to LIGGGHTS version studied:

- LIGGGHTS-PUBLIC → https://github.com/CFDEMproject/LIGGGHTS-PUBLIC.git
- LIGGGHTS-PUBLIC-JKR → https://github.com/eidevag/LIGGGHTS-PUBLIC-JKR.git
- LIGGGHTS_Flexible_Fibers → https://github.com/schrummy14/LIGGGHTS_Flexible_Fibers.git

Thank you very much in advance ! ☺
Best regards,
Theo