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

[WIP] Extending preconditioners to handle a diagonal operator for E-field #5716

Draft
wants to merge 6 commits into
base: development
Choose a base branch
from

Conversation

debog
Copy link
Contributor

@debog debog commented Feb 28, 2025

  • Extended the CurlCurlMLMGPC interface to work with non-scalar beta coefficient. It can now be a MultiFab array (same size/layout as E-Fields) with one component representing a diagonal matrix/operator on the E-field.

  • Implemented a JacobiPC preconditioner to solve the system \sigma E = b using the Jacobi iterations. For now, \sigma is a diagonal matrix (stored as a MultiFab array (same size/layout as E-Fields) with one component. The solution is set as E = b / \sigma, so the iterations are not yet implemented. The complete Jacobi method will be implemented once non-diagonal elements of \sigma are available.

The preconditioners fetch a pointer to the matrix operator (beta or \sigma) from the implicit time integrator object.

@debog debog requested a review from JustinRayAngus February 28, 2025 00:41
@JustinRayAngus JustinRayAngus added enhancement New feature or request component: implicit solvers Anything related to implicit solvers labels Feb 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: implicit solvers Anything related to implicit solvers enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants