-
Notifications
You must be signed in to change notification settings - Fork 170
AuxiliaryOperatorSNES
& FieldsplitSNES
#4544
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
Draft
JHopeCollins
wants to merge
9
commits into
main
Choose a base branch
from
JHopeCollins/auxiliary-snes
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pbrubeck
reviewed
Sep 5, 2025
Returns | ||
------- | ||
F : ufl.Form | ||
The preconditioning nonlinear form. |
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.
Suggested change
The preconditioning nonlinear form. | |
The preconditioning linear Form (may be nonlinear in func). |
pbrubeck
reviewed
Sep 5, 2025
y.aypx(-1, x) | ||
|
||
def form(self, snes, state, func, test): | ||
"""Return the preconditioning nonlinear form and boundary conditions. |
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.
Suggested change
"""Return the preconditioning nonlinear form and boundary conditions. | |
"""Return the preconditioning residual Form and boundary conditions. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Some Python type SNES classes for building nonlinear solvers
AuxiliaryOperatorSNES
A nonlinear version of
AuxiliaryOperatorPC
, for building nonlinear preconditioners from approximate operators, e.g. preconditioned nonlinear Richardson iterations.Still to do:
FieldsplitSNES
A nonlinear version of
PCFieldsplit
,it can use either additive (Jacobi) or multiplicative (Gauss-Seidel) versions, exactly analogous to the linear version.Still to do (mostly adding options to match PCFieldsplit):
snes_fieldsplit_%d_fields
.snes_fieldsplit_%d_fields
.snes_fieldsplit_default
.fieldsplit
prefix. If we collect them ininitialize
and pass them as a dictionary to the NLVS of each field, they will take lower priority than anyfieldsplit_%d
options in the global dictionary (including those put there by the parent NLVS).view
method.update
method need to contain anything?