Creating a distributed triangulation from a series of TIFF images

37 views
Skip to first unread message

akanksha mishra

unread,
Mar 8, 2022, 7:46:16 PM3/8/22
to deal.II User Group
Hi, 
I am trying to create a voxel-based mesh by reading TIFF files obtained from the CT scanning of the specimen. The geometry has a lot of pores, and of course, these elements should be removed from the triangulation object. 
I tried to create first a structured grid using subdivided hyper-rectangle and then removed the cells which corresponded to pores using the create_triangulation_with_removed_cells. I managed to do this for one single image by using parallel::distributed::triangulation. However, this strategy won't work when I try to read a lot of images and create a 3d mesh. Because in this case, the coarse mesh itself is quite large. And also reading from an externally created mesh file is taking forever in this case.
I want to ask if there is a simple way to create a voxel-based mesh for the parallel::fullydistributed::triangulations and easily remove the cells which correspond to air?

Bruno Turcksin

unread,
Mar 9, 2022, 10:30:14 AM3/9/22
to deal.II User Group
Hello,

Instead of creating a mesh with holes in it. You can use FE_Nothing for the cells that are in a hole. The advantage is that you can use a much simpler mesh. The disadvantage is that the hole is inside the domain. It's not on the boundary of the domain and so it might be a little more complicated to deal with boundary condition at the interface with the hole.

Best,

Bruno

akanksha mishra

unread,
Mar 9, 2022, 12:45:58 PM3/9/22
to deal.II User Group
Hello, 

thank you so much for the message. I thought about it before and will definitely explore this option more. But there is one problem. Usually, half the voxels in the TIFF image stack correspond to air, both outside the specimen and inside the specimen (in form of pores). So from what I understand, if I use the FE_Nothing approach, then I am using double the cells that I intend to work with, and of course I will have to either request more processors or increase the memory requirement per processor. Is this right? Or am I misunderstanding something?

That is why is possible, I would prefer to remove the cells that I don't need. However, I cannot find a way to do it for distributed triangulation. If anyone has experience with this, I request your help.

Thanks and best regards, 
Akanksha 

Bruno Turcksin

unread,
Mar 9, 2022, 1:09:38 PM3/9/22
to deal.II User Group
Akanksha,

The number of cells is not that important. What matters is the number of degrees of freedom. If you add a bunch of cells that use FE_Nothing, the effect on the performance will be very limited. There is nothing to do during assembly for these cells and since they don't have degrees of freedom, they don't matter when you solve the system. The code will require slightly more memory but not that much.

Best,

Bruno

akanksha mishra

unread,
Mar 9, 2022, 1:28:46 PM3/9/22
to dea...@googlegroups.com
Dear Bruno, 

Thanks a lot. I will try this approach.

Thanks again, 
Akanksha 

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dealii+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/e3b6651d-fba2-4150-9a2a-92b2a8e2c033n%40googlegroups.com.

Reply all
Reply to author
Forward
0 new messages