Skip to content

Releases: domattioli/ADMESH

admesh2D 0.5.1

15 Jun 18:54
c73845e

Choose a tag to compare

admesh2D 0.5.1

First PyPI release since 0.2.1 — consolidates the unreleased 0.3–0.5 development line.

Fixed

  • __version__ corrected 0.2.1 → 0.5.1 (had drifted from pyproject.toml).

Changed

  • Dependency pins: valence-domains>=0.4.2; [viz] chilmesh>=1.2.1,<2.
  • Source archives exclude agent/dev-process files via .gitattributes.

Since 0.2.1

  • Octree size-field, valence-domains registry redirect, README canonicalization, ENPAC benchmark migration (#154), bench_wnat.py loader fix (#158).

0.2.1

18 May 04:01

Choose a tag to compare

ADMESH 0.2.1 — docs-only patch

No code changes vs v0.2.0. Drop-in safe for existing callers. Bumps to refresh the PyPI long_description with the README overhaul from issue #66 and to publish a release that includes CITATION.cff.

Distribution: admesh2D on PyPI. Import name: admesh.

Install

pip install admesh2D==0.2.1

Documentation

  • README overhaul (issue #66): Why-ADMESH section, 13-stage pipeline table, BoundaryType IBTYPE table, 3-line Status snapshot, single deduplicated badge row, table of contents, absolute image URL for PyPI rendering.
  • Quickstart API correction: admesh.domain_from_polygon(...) (did not exist) replaced with the real surface — admesh.domains.UNIT_DISK, admesh.api.Domain(sdf=..., bbox=...), Domain.from_mesh(...), and the triangulate("path.14", ...) string overload.
  • CITATION.cff added at repo root. Software-release citation via Zenodo DOI 10.5281/zenodo.20264101; algorithm citation via preferred-citation block pointing at the 2012 Ocean Dynamics paper.
  • README Citation section now distinguishes algorithm-paper vs software-release citations.

Fixed

  • Resync admesh/__init__.py __version__ to match pyproject.toml (drifted to 0.1.0 during the spec-009 R1 tag-gate hygiene pass).

Full changelog

v0.2.0...v0.2.1

0.2.0

18 May 03:31

Choose a tag to compare

ADMESH 0.2.0

First MINOR release after v0.1.0 — adds valence balancing as a new mesh-quality stage and lands eleven issue fixes across the mesh pipeline.

Distribution: admesh2D on PyPI. Import name: admesh.

Install

pip install admesh2D==0.2.0
from admesh.routine import triangulate
from admesh import domains
p, t = triangulate(domains.UNIT_DISK, h0=0.1)

Added

  • Valence balancing via edge flipping (admesh/valence.py) — issue #27
  • initial_points warm-start parameter for triangulate() — issue #45
  • Convergence diagnostics in distmesh2d (oscillation + stagnation detection) — issue #47
  • Restored ADMESH-variant distmesh code (MeshOutput, SizeFn, distmesh2d_admesh)
  • Tier-1 / Tier-2 acceptance tests for size-field stack structural validity — issue #10
  • Holistic test suite audit (TEST-AUDIT.md) — issue #59
  • DomI cross-repo sync contract + SessionStart hook plugin auto-install

Fixed

  • 1D boundary seeding for Domain path on notched-rectangle geometry — issue #2
  • h_min / h_max parameters now propagate into the size field even when no user contributions are supplied — issue #37
  • Domain.from_mesh() produces a proper SDF for real-world ADCIRC meshes — issues #38, #39

Documentation

  • pfix bit-exact preservation contract — issue #46
  • Spec-kit planning artifacts for Gmsh I/O integration (spec 008) — issue #5
  • Spec-kit planning for PyPI namespace claim — issue #13
  • CONSTITUTION.md covering specs 001–008 — issue #57
  • Scripts audit + cleanup recommendations — issue #42

Infrastructure

  • Single-branch policy: all routine fixes land on daily-issue-fixing
  • Synced .domi-pin to DomI v2.1 manifest

Full changelog

v0.1.0...v0.2.0

0.1.0

27 Apr 13:32
fc8f588

Choose a tag to compare

Added

  • Issue #10 fix: Robust polygon SDF with winding-number testing for multiply-connected domains
  • Convergence detection in distmesh to prevent hanging on pathological size fields
  • GitHub release skill with automatic credential and metadata detection
  • PyPI publish skill with retry logic and verification
  • Comprehensive diagnostic infrastructure for mesh generation issues
  • Support for real-world ADCIRC coastal mesh fixtures (Tier-1, Tier-2)

Fixed

  • Domain.from_mesh() SDF construction for accurate boundary distance computation
  • Distmesh oscillation and timeout issues through stagnant iteration detection
  • Size-field stack domain overshoot on multiply-connected domains

Technical Details

  • Replaced bbox-based SDF heuristic with proper winding-number algorithm
  • Added convergence detection with 20-iteration stagnation threshold
  • Automated release workflow with non-interactive skill implementations

v0.0.2 — convex-corner density fix

25 Apr 02:25

Choose a tag to compare

Distribution: admesh2D on PyPI (deferred; see v0.0.1 notes). Import name: admesh.

What changed since 0.0.1

Notched-rectangle demo now refines the four convex outer corners. Previously the demo passed h0 = boundary_scale = 0.04 to triangulate(...), but the curvature stage drives fh down to ≈0.015 at sharp convex corners. With h0 > min(fh) the initial lattice is too coarse and the rejection method keeps only ~14% of points where fh asks for sub-h0 spacing — thin slivers near the corners.

Demo now samples fh on a coarse grid to estimate min(fh) and uses it as h0, mirroring MATLAB ADmeshRoutine.m:256 where hmin = min(h(:)) is computed after the size field is built.

Quality on the notched-rectangle demo:

  • min_q: 0.165 → 0.682
  • mean_q: 0.891 → 0.985
  • N: 222 → 3426

Install

pip install https://github.com/domattioli/ADMESH/releases/download/v0.0.2/admesh2d-0.0.2-py3-none-any.whl
from admesh.routine import triangulate
from admesh import domains
p, t = triangulate(domains.UNIT_DISK, h0=0.1)

PyPI

admesh2D is reserved on PyPI (the admesh namespace is occupied by an unrelated STL library). Upload requires your PyPI credentials:

python -m twine upload dist/admesh2d-0.0.2-py3-none-any.whl dist/admesh2d-0.0.2.tar.gz

🤖 Generated with Claude Code

v0.0.1 — first tagged release

25 Apr 02:20

Choose a tag to compare

First tagged release of the Python port of QuADMesh-MATLAB 01_ADMESH_Library (@ commit 19b2eb9).

Distribution name on PyPI is admesh2D (the unrelated admesh package on PyPI is an STL-manipulation library). Import name is still admesh.

What's in 0.0.1

  • All 13 ADMESH library stages on faithful ports — distance, curvature, medial axis, bathymetry, dominate-tide, boundary-condition enforcement, mesh-size, distmesh2d, mesh quality, in-polygon, inpaint-nans.
  • Two triangulation paths: canonical Persson triangulate(Domain) and the ADMESH variant triangulate(PTS, ...) with best-quality tracker + boundary cleanup + per-vertex BC labels.
  • Numba-JIT iterative mesh-size solver replacing the C mex.
  • 137 pytest tests passing (5 skipped pending MATLAB-fixture export).

Install

From wheel (this release):

pip install https://github.com/domattioli/ADMESH/releases/download/v0.0.1/admesh2d-0.0.1-py3-none-any.whl

From source:

pip install git+https://github.com/domattioli/ADMESH.git@v0.0.1
from admesh.routine import triangulate
from admesh import domains
p, t = triangulate(domains.UNIT_DISK, h0=0.1)

Recent fixes

  • distmesh2d_admesh no longer over-pins the densified boundary ring as pfix. Boundary nodes now emerge from truss equilibrium + projection at fh-driven spacing — matches MATLAB GetMeshConstraints.m semantics where only PTS.BC constraint points are pinned.
  • _boundary_cleanup iterates to fixed-point to clear sliver chains.

PyPI publication

PyPI upload of admesh2D 0.0.1 is deferred — it requires your PyPI account credentials (twine + API token). Run when ready:

python -m twine upload dist/admesh2d-0.0.1-py3-none-any.whl dist/admesh2d-0.0.1.tar.gz

🤖 Generated with Claude Code