Skip to content

Fixes for BDDC#5152

Open
pbrubeck wants to merge 21 commits into
releasefrom
pbrubeck/fix/bddc
Open

Fixes for BDDC#5152
pbrubeck wants to merge 21 commits into
releasefrom
pbrubeck/fix/bddc

Conversation

@pbrubeck

@pbrubeck pbrubeck commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Description

Internal fixes required for BDDCPC to work on primal elasticity problems.

Adds new options -pc_bddc_use_divergence_mat and -pc_bddc_use_discrete_gradient. Their defaults are the correct ones for the Riesz map in the de Rham complex, H(curl) needs the gradient, while H(div) needs the divergence. The H1 Riesz map does not need an extra operator. However, elasiticity problems are posed on H1, but BDDC would need to be aware of the divergence, so in this case the user must prescribe it.

@pbrubeck pbrubeck force-pushed the pbrubeck/fix/bddc branch from e11e7da to 2f8b06c Compare June 6, 2026 12:25
Comment thread firedrake/preconditioners/bddc.py
Comment thread firedrake/preconditioners/bddc.py Outdated
Comment thread tests/firedrake/regression/test_bddc.py
@pbrubeck pbrubeck force-pushed the pbrubeck/fix/bddc branch from 804646e to 1bc6e36 Compare June 8, 2026 10:24
Comment thread tests/firedrake/regression/test_bddc.py Outdated
Comment thread tests/firedrake/regression/test_bddc.py
Comment thread firedrake/preconditioners/bddc.py Outdated
Comment thread firedrake/preconditioners/bddc.py Outdated
Comment thread firedrake/preconditioners/bddc.py Outdated
default values for options should guarantee robustness wrt H1,Hdiv and Hcurl problems
Comment thread tests/firedrake/regression/test_bddc.py Outdated
Comment thread tests/firedrake/regression/test_bddc.py Outdated
@@ -34,9 +34,12 @@ class BDDCPC(PCBase):
the options:
- ``'bddc_cellwise'`` to set up a MatIS on cellwise subdomains if P.type == python,
- ``'bddc_matfree'`` to set up a matrix-free MatIS if A.type == python,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you do matrix-free MatIS? Then the divergence matrix can be passed that way, I only need the action of its local part (in MATIS sense) on a given vector

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, we can

@pbrubeck pbrubeck Jun 15, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need to fix support for matfree A in BDDC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants