Questions regarding parallel::shared::Triangulation and partitioning

18 views
Skip to first unread message

Nihar Bhardwaj Darbhamulla

unread,
Dec 2, 2025, 10:47:41 PM (5 days ago) Dec 2
to deal.II User Group
I have a parallel::shared::Triangulation, which due to load balancing reasons, I have had to partition as shown below.

Screenshot from 2025-12-02 19-30-32.png

The reason for this partitioning is that the mesh undergoes computation in phases. Given this partitioning, I am attempting to renumber dofs first by Cutthill McKee followed by block wise renumbering. However on doing either operation, my renumbering gets skewed with number of degrees of freedom far exceeding the balance. I have attached the output of locally_owned_dofs() below from each partition before and after renumbering. The number of dofs associated with each block also appear to shuffle around. In this case, what would be a viable way forward since my objective is to construct and use block preconditioners for my problem. Screenshot from 2025-12-02 19-47-13.png


Thanks,
Nihar

Wolfgang Bangerth

unread,
Dec 5, 2025, 12:40:23 PM (2 days ago) Dec 5
to dea...@googlegroups.com
On 12/2/25 20:47, Nihar Bhardwaj Darbhamulla wrote:
>
> The reason for this partitioning is that the mesh undergoes computation in
> phases. Given this partitioning, I am attempting to renumber dofs first by
> Cutthill McKee followed by block wise renumbering. However on doing either
> operation, my renumbering gets skewed with number of degrees of freedom far
> exceeding the balance. I have attached the output of locally_owned_dofs()
> below from each partition before and after renumbering. The number of dofs
> associated with each block also appear to shuffle around. In this case, what
> would be a viable way forward since my objective is to construct and use block
> preconditioners for my problem.

Nihar:
I'm not entirely sure I understand what you see. It would probably help if you
created a small test case that showed how you ended up with the problem.

In any case, if I interpret things right, then you partition the mesh so that
the two halves have roughly equal number of cells. That's how it should be. Do
you have different numbers of degrees of freedom on cells, via the hp
framework? If so, you may of course get different numbers of DoFs on each
partition -- just because the number of cells in each partition is balanced
does not mean that the number of DoFs is balanced if cells have different
numbers of local DoFs. If that's not the case: How do you calculate the number
of DoFs owned by each partition?

Best
W.
Reply all
Reply to author
Forward
0 new messages