Skip to content

Conversation

@pbrubeck
Copy link
Contributor

@pbrubeck pbrubeck commented Nov 28, 2025

Description

This PR adds new features for BDDC.

  1. The solver option -bddc_cellwise enables cellwise subdomains.
  2. The solver option -bddc_matfree enables a matfree MatIS to be used for the interior solver.
  3. User-defined coarse degrees of freedom can be specified through appctx["primal_markers"].

@pbrubeck pbrubeck force-pushed the pbrubeck/bddc-primal-vertices branch from 8414e2d to 29972f5 Compare December 1, 2025 16:00
@pbrubeck pbrubeck force-pushed the pbrubeck/bddc-primal-vertices branch from 29972f5 to 9e69d99 Compare December 1, 2025 17:07
@pbrubeck pbrubeck changed the base branch from main to pbrubeck/submesh-comm-self December 1, 2025 17:07
@pbrubeck pbrubeck force-pushed the pbrubeck/bddc-primal-vertices branch from 868f5c8 to af8b9e8 Compare December 2, 2025 17:46
@pbrubeck pbrubeck force-pushed the pbrubeck/submesh-comm-self branch 3 times, most recently from 5d4cdbd to 34bad7b Compare December 10, 2025 15:02
@pbrubeck pbrubeck force-pushed the pbrubeck/submesh-comm-self branch from 34bad7b to 2df0024 Compare December 10, 2025 15:02
@pbrubeck pbrubeck force-pushed the pbrubeck/bddc-primal-vertices branch from ffca638 to 2f2e77d Compare December 10, 2025 17:36
@pbrubeck pbrubeck force-pushed the pbrubeck/submesh-comm-self branch from 363c075 to 9961010 Compare December 10, 2025 17:53
@pbrubeck pbrubeck force-pushed the pbrubeck/submesh-comm-self branch from 9961010 to 825d2ef Compare December 10, 2025 18:06
Base automatically changed from pbrubeck/submesh-comm-self to main December 12, 2025 09:44
@pbrubeck pbrubeck force-pushed the pbrubeck/bddc-primal-vertices branch from 119e9f2 to d78a670 Compare December 12, 2025 10:21
@dham dham marked this pull request as draft January 6, 2026 16:43
@pbrubeck pbrubeck marked this pull request as ready for review January 9, 2026 15:01
@pbrubeck pbrubeck requested a review from JHopeCollins January 26, 2026 14:46
Copy link
Member

@JHopeCollins JHopeCollins left a comment

Choose a reason for hiding this comment

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

Generally looks fine, I just have some small questions.

Comment on lines +46 to +49
- ``'primal_markers'`` a Function marking degrees of freedom to be included in the
coarse space. If a DG(0) Function is provided, then all degrees of freedom on the cell
are marked as primal. Alternatively, primal_markers can be a list with the global
degrees of freedom to be included in the coarse space.
Copy link
Member

Choose a reason for hiding this comment

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

Thanks for adding these to the docstring. I just have a couple of questions.

  1. Is this tested?
  2. The description of what the Function can/should be is a bit unclear to me. What values should be in the DG(0) Function? Can I provide Functions in other spaces?

Comment on lines 72 to 73
if variant == "fdm":
sp["mat_type"] = "matfree"
Copy link
Member

Choose a reason for hiding this comment

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

Can this be included in the if-else blocks above? It's easier to read if the logic is together.

assemblers.append(assembleP)

if P.type != "is":
raise ValueError(f"Expecting P to be either 'matfree' or 'is', not {P.type}.")
Copy link
Member

Choose a reason for hiding this comment

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

Wouldn't this currently error even for P.type == "python"? Does that mean that the matfree branches aren't actually being tested?

Suggested change
raise ValueError(f"Expecting P to be either 'matfree' or 'is', not {P.type}.")
elif P.type != "is":
raise ValueError(f"Expecting P to be either 'matfree' or 'is', not {P.type}.")

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.

4 participants