Multigrid/BDDC Preconditioner applied to Stokes

Hi everyone,

I have tried to apply the bddc and multigrid preconditioners to the Stokes problem, discretised Taylor-Hood elements.
https://ngsolve.org/media/kunena/attachments/830/StokesMultigrid.py
Unfortunately I have come across the following issues,
[ol]
[li]BDDC with GMRes: The pressure error stops converging after some mesh refinements, even with a very small tollerance and a large number of gmres iterations. A direct solver on the other hand gives pressures which continue to converge.
[/li]
[li] Multigrid with static condensation: Numeric factorization fails when the matrix is assembled (this did not happen on a Poission example).
[/li]
[li] Multigrid without static condensation: Segfault see
https://ngsolve.org/media/kunena/attachments/830/segfault.txt.
[/li]
[/ol]

Can anyone help me with these problems?

Best wishes,
Henry

Attachment: segfault.txt

Attachment: StokesMultigrid.py

I’m sorry, I attached the wrong python script. The new file illustrates the three issues I ran into.

Multigrid for compound spaces doesn’t do something useful (I thought it would just do jacobian or something like that). The reason is that the spaces implement the “good” blocks for the blockjacobi preconditioner and the dofs for the coarse inverse. For a useful preconditioner for compound spaces you need to build the blocks yourself, as explained in 2.1.2 Building blocks for programming preconditioners — NGS-Py 6.2.2302 documentation

I agree, segfaults are not the nicest way to tell you that :wink:

Hi Christopher,

thanks for clarifying what the problem was :slight_smile:

Best wishes, Henry