Skip to content

Releases: sloisel/MultiGridBarrier.jl

v0.12.5

29 May 12:24

Choose a tag to compare

MultiGridBarrier v0.12.5

Diff since v0.12.4

v0.12.4

27 May 14:08

Choose a tag to compare

MultiGridBarrier v0.12.4

Diff since v0.12.3

v0.12.3

20 May 23:16

Choose a tag to compare

MultiGridBarrier v0.12.3

Diff since v0.12.2

v0.12.2

20 May 21:48

Choose a tag to compare

MultiGridBarrier v0.12.2

Diff since v0.12.1

v0.12.1

20 May 15:48

Choose a tag to compare

MultiGridBarrier v0.12.1

Diff since v0.12.0

v0.12.0

20 May 07:13

Choose a tag to compare

MultiGridBarrier v0.12.0

Diff since v0.11.41

Breaking changes

  • Geometry and MultiGrid are now separate types. A mesh constructor returns a single-level Geometry;
    the multigrid hierarchy is a distinct MultiGrid built from it. Build the hierarchy with amg(geom)
    (algebraic multigrid, the new default) or the legacy geometric_mg(geom, L).
  • Solver renamed: amgbmgb_solve, and AMGBSOLMGBSOL. The solver now takes a MultiGrid, e.g.
    mgb_solve(amg(fem2d_P2()); p=1.5).
  • fem2d renamed to fem2d_P2; new fem2d_P1 added. Mesh constructors are now fem1d, fem2d_P1,
    fem2d_P2, fem3d, spectral1d, spectral2d, each returning a Geometry.
  • Geometry.x is now an order-3 tensor (V, N, D)V vertices per element, N elements, D spatial
    dimensions — replacing the flat (V*N, D) matrix.
  • find_boundary(geom) now returns Vector{Tuple{Int,Int}} of (vertex, element) pairs, and amg(; dirichlet_nodes=…) takes the same tuple-pair format (enables mixed Dirichlet/Neumann boundary conditions).
  • One-shot *_solve convenience functions removed (fem1d_solve, fem2d_solve, fem3d_solve,
    spectral1d_solve, spectral2d_solve). Use mgb_solve(amg(<constructor>()); …) instead.
  • GPU API simplified. The *_cuda / *_cuda_solve exports and the multi-GPU distributed code path were
    removed. To run on GPU, using CUDA, CUDSS_jll first, then convert with native_to_cuda(geom_or_mg) and call
    mgb_solve.
  • Phase 1 (feasibility/centering) now runs entirely on the fine quadrature rule. The hierarchical
    coarse-quadrature centering was removed; the feasibility subproblem path-follows on the fine rule and
    early-stops on strict feasibility. Internal AMG fields (R_coarse, D_levels, refine_u, coarsen_u,
    refine_z, coarsen_z) and mgb_phase1 were removed.

New features

  • amg(geom) algebraic-multigrid hierarchy — solve on a single user-supplied or externally generated
    mesh, with no geometric refinement schedule required.
  • Zoo submodule with six convex variational test problems: elasto-plastic torsion, minimal surface,
    vector p-harmonic maps, Norton–Hoff power-law elasticity, ROF total-variation denoising, and the two-sided
    obstacle problem.
  • subdivide(geom, L) mesh-refinement utility; convex_piecewise constraint;
    native_to_cuda(::NamedTuple) for running Zoo problems on GPU.
  • Structured block-diagonal Hessian assembly shared across CPU and GPU (cuDSS sparse-direct solve on GPU),
    giving a large GPU speedup and ~2× on CPU.

Merged pull requests:

v0.11.41

09 Feb 13:11

Choose a tag to compare

MultiGridBarrier v0.11.41

Diff since v0.11.40

v0.11.40

08 Feb 17:13

Choose a tag to compare

MultiGridBarrier v0.11.40

Diff since v0.11.39

v0.11.39

06 Jan 22:57

Choose a tag to compare

MultiGridBarrier v0.11.39

Diff since v0.11.38

v0.11.38

01 Jan 17:39

Choose a tag to compare

MultiGridBarrier v0.11.38

Diff since v0.11.37