# Tuning the bddc preconditioner

3 months 2 weeks ago #2961
Hi,

I have a symmetric indefinite matrix to solve,
K = [A, B]
[B^T -S].
Minres with a block diagonal preconditioner
M = [A^{-1} 0]
[0, S^{-1}]
works quite well for this particular system.

Here A is roughly a (h.o.) mass matrix and S is the diffusion operator.
I was wondering if the bddc preconditioner can be separately applied to the sub matrices A and S, instead of directly on the big matrix K by default?

Also, how can I change the coarsetype in bddc to other solvers like the ones in the petsc library?

Best regards,
Guosheng

3 months 2 weeks ago #2962 by lkogler

I was wondering if the bddc preconditioner can be separately applied to the sub matrices A and S, instead of directly on the big matrix K by default?

You could set up two seperate bddc preconditioners and then use BlockMatrix.

Also, how can I change the coarsetype in bddc to other solvers like the ones in the petsc library?

This does not currently work with the PETSc interface, sorry.

Best,
Lukas

3 months 2 weeks ago #2963
How to apply bddc to submatrices? Do I need to create separate bilinear forms for each block, or can I directly work with the big bilinear form by providing the active dofs?
Here is a minimal code:
(u,p) , (v,q) = fes.TnT()
a = BilinearForm(fes, condense=True)
a.Assemble()