Skip to content

Version 0.2.2 #50

Closed
Closed

Description

@jmartfrut

@JuliaRegistrator register

Release notes:

p-multigrid preconditioner for MatrixFreeSolver (new API, nothing breaking).

  • PMultigrid(spaces; smoother = Chebyshev(), coarse, coarse_every): one symmetric V-cycle per Krylov iteration on nested Lagrangian levels of the same mesh (Q2 → Q1, Q3 → Q1, Q3 → Q2 → Q1). Matrix-free on the working order, assembled coarse level with its own solver (e.g. one GAMG V-cycle). Coarse operators rediscretised from the Newton's forms at the injected state; the levels follow load steps (update) and HyperFEM's Dirichlet projection.
  • Chebyshev(; degree = 2, range = 20) smoother, preconditioned by the nodal block diagonal, with a reproducible Ritz estimate of λmax.
  • Transfers: Prolongation, prolongate!, restrict! (exact transpose), inject!.
  • Nodal blocks computed from the stored point tangents (×3.5 cheaper; also used by BlockJacobi).
  • New hook preconditioner_ok: a non-finite tangent, a singular nodal block or an indefinite tangent makes the linear solve fail at once, so the Newton cuts back.
  • Measured on a unit cube (Mac M5 Max, 6 threads, PETSc serial): ×8.3 per Newton iteration at 957k dofs Q2 and ×19 at 227k Q3 against CG + GAMG on the assembled tangent, with ~4× less memory; Krylov iterations nearly mesh-independent (25 → 28).

Activity

  1. JuliaRegistrator commented on Nov 8, 2026

    @JuliaRegistrator

    Registration pull request created: JuliaRegistries/General/175337

    Tagging

    After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

    This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

    git tag -a v0.2.2 -m "<description of version>" 133e1149d4aea1d073cb83b8b0f950776d7b650f
    git push origin v0.2.2
    
  2. jmartfrut commented on Nov 8, 2026

    @jmartfrut
    MemberAuthor
  3. JuliaRegistrator commented on Nov 8, 2026

    @JuliaRegistrator

    Registration pull request updated: JuliaRegistries/General/175337

    Recommendation: add release notes

    Release notes help your users know what has changed in the new version. For breaking releases in particular, it's recommended to document what breaking changes were made (or point to where changes can be found, such as a changelog).

    To add release notes, just add markdown formatted text underneath the comment after the text "Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the release that TagBot creates. i.e.

    @JuliaRegistrator register
    
    Release notes:
    
    ## Breaking changes
    
    - blah
    

    To add release notes to this registration, just re-invoke JuliaRegistrator and the PR will be updated.

    Tagging

    After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

    This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

    git tag -a v0.2.2 -m "<description of version>" 133e1149d4aea1d073cb83b8b0f950776d7b650f
    git push origin v0.2.2
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions