Skip to content
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

Use block preconditioner for mixed Poisson problem #3580

Merged
merged 31 commits into from
Jan 11, 2025

Conversation

garth-wells
Copy link
Member

@garth-wells garth-wells commented Dec 28, 2024

Switch to a diagonal block preconditioner, with Hypre Auxiliary Space (AMS) for the $H({\rm div})$ block. AMS works in this case because the demo is 2D, in which case RT elements are just a rotation of Nedelec elements. If Hypre is not available (not configured with PETSc or running with complex floats, which are not supported by Hypre) use LU for the $H({\rm div})$ block.

For a 3D mixed Poisson demo, we would need to use the Hypre Auxiliary-space Divergence Solver (ADS) in place of AMS. This requires the 'discrete curl' operator (see #3587).

This change fixes issues with some LU solvers and saddle point problems.

@garth-wells garth-wells added the demo New demo or demo enhancements/improvements label Dec 28, 2024
@garth-wells garth-wells requested a review from jorgensd January 6, 2025 17:31
@garth-wells garth-wells added this to the 0.10.0 milestone Jan 6, 2025
@garth-wells garth-wells requested a review from jpdean January 7, 2025 17:56

# +
a_p00 = inner(sigma, tau) * dx + inner(div(sigma), div(tau)) * dx
a_p11 = inner(u, v) * dx
Copy link
Member

Choose a reason for hiding this comment

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

Same comment as above wrt. extract_blocks.
If we want to highlight both methods in 1 demo, we could keep this one as is as it is the simplest one.

@jorgensd
Copy link
Member

jorgensd commented Jan 8, 2025

@garth-wells In general a really nice addition to DOLFINx. I added some thoughts regarding the demo above.

garth-wells and others added 3 commits January 8, 2025 10:17
Co-authored-by: Jørgen Schartum Dokken <[email protected]>
Co-authored-by: Jørgen Schartum Dokken <[email protected]>
Co-authored-by: Jørgen Schartum Dokken <[email protected]>
@garth-wells garth-wells enabled auto-merge January 11, 2025 14:20
@garth-wells garth-wells added this pull request to the merge queue Jan 11, 2025
Merged via the queue into main with commit 3888650 Jan 11, 2025
34 checks passed
@garth-wells garth-wells deleted the garth/mixed-poisson-block branch January 11, 2025 15:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
demo New demo or demo enhancements/improvements
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants