Releases: sloisel/MultiGridBarrier.jl
Releases · sloisel/MultiGridBarrier.jl
v0.12.5
MultiGridBarrier v0.12.5
v0.12.4
MultiGridBarrier v0.12.4
v0.12.3
MultiGridBarrier v0.12.3
v0.12.2
MultiGridBarrier v0.12.2
v0.12.1
MultiGridBarrier v0.12.1
v0.12.0
MultiGridBarrier v0.12.0
Breaking changes
GeometryandMultiGridare now separate types. A mesh constructor returns a single-levelGeometry;
the multigrid hierarchy is a distinctMultiGridbuilt from it. Build the hierarchy withamg(geom)
(algebraic multigrid, the new default) or the legacygeometric_mg(geom, L).- Solver renamed:
amgb→mgb_solve, andAMGBSOL→MGBSOL. The solver now takes aMultiGrid, e.g.
mgb_solve(amg(fem2d_P2()); p=1.5). fem2drenamed tofem2d_P2; newfem2d_P1added. Mesh constructors are nowfem1d,fem2d_P1,
fem2d_P2,fem3d,spectral1d,spectral2d, each returning aGeometry.Geometry.xis now an order-3 tensor(V, N, D)—Vvertices per element,Nelements,Dspatial
dimensions — replacing the flat(V*N, D)matrix.find_boundary(geom)now returnsVector{Tuple{Int,Int}}of(vertex, element)pairs, andamg(; dirichlet_nodes=…)takes the same tuple-pair format (enables mixed Dirichlet/Neumann boundary conditions).- One-shot
*_solveconvenience functions removed (fem1d_solve,fem2d_solve,fem3d_solve,
spectral1d_solve,spectral2d_solve). Usemgb_solve(amg(<constructor>()); …)instead. - GPU API simplified. The
*_cuda/*_cuda_solveexports and the multi-GPU distributed code path were
removed. To run on GPU,using CUDA, CUDSS_jllfirst, then convert withnative_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. InternalAMGfields (R_coarse,D_levels,refine_u,coarsen_u,
refine_z,coarsen_z) andmgb_phase1were removed.
New features
amg(geom)algebraic-multigrid hierarchy — solve on a single user-supplied or externally generated
mesh, with no geometric refinement schedule required.Zoosubmodule 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_piecewiseconstraint;
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:
- Bump julia-actions/cache from 2 to 3 (#23) (@dependabot[bot])
- Bump codecov/codecov-action from 5 to 6 (#24) (@dependabot[bot])
- Bump julia-actions/setup-julia from 2 to 3 (#25) (@dependabot[bot])