Cell merging in porous materials

Hi everyone ! So I wanna know if it’s possible to merge cell by using Paravie. What I mean is that I visualize pores in my material as shown in this picture


And these pore sometimes touch each other and when this happen I want them to merge and make like an 8 shape. I’m not sure if I am pretty clear but thanks in advance !

@Charles_Gueunet

Hello @Puraxx ,

Could you by any chance share a dataset corresponding to your use case ?
Usually, when I have to merge surfaces intersecting each other I use the Alpha Wrapping from Vespa.
However, I am not sure it will completely work here, as it seems your dataset may have internal holes in some cases that would be missed.

Anyway, if you can share it, I would be happy to play around with it to try to find a solution

Hi,
Thank you for your answer !
Im sorry, I could not reply earlier. here you can find attached to this message a dataset.

Thanks in advance !
Donnees_bulles.csv (858.0 KB)

Hello @Puraxx

The good solution for your mesh would be to apply a boolean operation between all disconnected spheres.
This is not (yet) trivially doable in ParaView. The pipeline I have in mind would be:

  • apply a Connected Component filter to identify each shpere
  • use the resulting field to drive a redistribute dataset, need this branch to be merged in VTK and then ParaView, so not possible yet. This would result in a multiblock with one block per sphere.
  • Use a vtkForEach (need to beexposed in ParaView) or a ttkForEach to traverse each block
    • apply a VESPA Boolean Operation filter to merge all these sphere into a final mesh.

As you can see, several part are missing for this clean pipeline.
For a quick a dirty version, I have tried the alpha wrapping and generated porous_merged.vtp.
I used an Alpha of 0.21** and an Offset of 0.01.
Due to how the alpha wrapping works, the result is 1% larger than the original mesh. You can try to compensate this by reducing the initial radius of each sphere by as much as you add with the alpha wrapping.
Aslo, this result has a lot of triangle and leads to quite a heavy dataset compared to the initial file.

Hope that helps