Releases: domattioli/ADMESH
admesh2D 0.5.1
admesh2D 0.5.1
First PyPI release since 0.2.1 — consolidates the unreleased 0.3–0.5 development line.
Fixed
__version__corrected0.2.1 → 0.5.1(had drifted frompyproject.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
0.2.1
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.1Documentation
- README overhaul (issue #66): Why-ADMESH section, 13-stage pipeline table,
BoundaryTypeIBTYPE 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 thetriangulate("path.14", ...)string overload. CITATION.cffadded at repo root. Software-release citation via Zenodo DOI10.5281/zenodo.20264101; algorithm citation viapreferred-citationblock 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 matchpyproject.toml(drifted to0.1.0during the spec-009 R1 tag-gate hygiene pass).
Full changelog
0.2.0
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.0from 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_pointswarm-start parameter fortriangulate()— 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
Domainpath on notched-rectangle geometry — issue #2 h_min/h_maxparameters now propagate into the size field even when no user contributions are supplied — issue #37Domain.from_mesh()produces a proper SDF for real-world ADCIRC meshes — issues #38, #39
Documentation
pfixbit-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.mdcovering 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-pinto DomI v2.1 manifest
Full changelog
0.1.0
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
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.682mean_q: 0.891 → 0.985N: 222 → 3426
Install
pip install https://github.com/domattioli/ADMESH/releases/download/v0.0.2/admesh2d-0.0.2-py3-none-any.whlfrom 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
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 varianttriangulate(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.whlFrom source:
pip install git+https://github.com/domattioli/ADMESH.git@v0.0.1from admesh.routine import triangulate
from admesh import domains
p, t = triangulate(domains.UNIT_DISK, h0=0.1)Recent fixes
distmesh2d_admeshno longer over-pins the densified boundary ring aspfix. Boundary nodes now emerge from truss equilibrium + projection atfh-driven spacing — matches MATLABGetMeshConstraints.msemantics where onlyPTS.BCconstraint points are pinned._boundary_cleanupiterates 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