Applying multigrid to one part of the domain

39 views
Skip to first unread message

Nihar Bhardwaj Darbhamulla

unread,
Sep 3, 2025, 2:18:18 PMSep 3
to deal.II User Group
I am trying to develop a Stokes-Darcy solver. In this regard, I would like to apply geometric multigrid as a preconditioner to the Darcy part of the domain. Overall, I'm treating the Stokes-Darcy system discretization using an hp::FECollection object, and attaching it to a dof handler. 

Following step-56, I would like to attach a darcy_dof_handler to the darcy degrees of freedom. However, this is not possible through the existing distribute_mg_dofs() functionality, as hp::FECollection is not supported through the DoFHandler. 

I can understand why applying geometric multigrid to a part of the existing grid would be challenging, as we do not discriminate between Cartesian and generalized domains within the deal.II framework. 

Are there any work-arounds which do not require me to setup dofs for the entire FESystem everywhere on the mesh, and apply constraints on individual parts of the domain?


Peter Munch

unread,
Sep 5, 2025, 3:38:36 AMSep 5
to deal.II User Group
You can try out MGTransferGlobalCoarsening  (see https://dealii.org/developer/doxygen/deal.II/step_75.html). The infrastructure is quite flexible.

Best,
Peter

Nihar Bhardwaj Darbhamulla

unread,
Sep 17, 2025, 9:38:56 PM (5 days ago) Sep 17
to deal.II User Group
I believe MGTransferGlobalCoarsening does not work with hp::FECollection. I use hp::FECollection for a variable number of dofs on two different parts of the domain. One part has Q2-Q1 elements, and the other has Q2 elements, with interface conditions. As an alternative, I have set up two triangulations with two dof_handlers. The only thing which remains is setting up the off-diagonal blocks which couple these matrices. How can I go about this ?

Nihar
Reply all
Reply to author
Forward
0 new messages