-
Notifications
You must be signed in to change notification settings - Fork 178
BDDC: cellwise subdomains, matfree MatIS, and user-defined primal vertices #4757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
8414e2d to
29972f5
Compare
29972f5 to
9e69d99
Compare
868f5c8 to
af8b9e8
Compare
5d4cdbd to
34bad7b
Compare
34bad7b to
2df0024
Compare
ffca638 to
2f2e77d
Compare
363c075 to
9961010
Compare
9961010 to
825d2ef
Compare
119e9f2 to
d78a670
Compare
…roject/firedrake into pbrubeck/bddc-primal-vertices
JHopeCollins
left a comment
There was a problem hiding this 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.
| - ``'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. |
There was a problem hiding this comment.
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.
- Is this tested?
- The description of what the
Functioncan/should be is a bit unclear to me. What values should be in theDG(0)Function? Can I provide Functions in other spaces?
| if variant == "fdm": | ||
| sp["mat_type"] = "matfree" |
There was a problem hiding this comment.
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}.") |
There was a problem hiding this comment.
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?
| 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}.") |
Description
This PR adds new features for BDDC.
-bddc_cellwiseenables cellwise subdomains.-bddc_matfreeenables a matfree MatIS to be used for the interior solver.appctx["primal_markers"].