Skip to content

Nmesh section 4 - relaxation mesher internals#14

Draft
epituch wants to merge 3 commits into
mainfrom
nmesh-section4
Draft

Nmesh section 4 - relaxation mesher internals#14
epituch wants to merge 3 commits into
mainfrom
nmesh-section4

Conversation

@epituch
Copy link
Copy Markdown
Contributor

@epituch epituch commented Apr 23, 2026

Summary

Section 4 of the nmesh migration is implemented on this branch.

  • Replaces the OCaml-backed core meshing path with a pure Python relaxation mesher.
  • Adds FEM geometry construction from bodies, hints, density rules, and periodic bookkeeping.
  • Implements seed preparation for fixed, mobile, simple, boundary, and hint-driven points.
  • Ports the iterative relaxation loop with neighbor, shape, volume, and irrelevant-element forces.
  • Adds boundary-aware motion constraints, force projection, corner suppression, and convergence checks.
  • Adds numba-accelerated neighbor-force kernels for the hot path.
  • Builds final topology in Python, including Delaunay simplices, surfaces, links, and mesh assembly.
  • Preserves backend integration through the existing mesher entry points.
  • Refactors the new mesher into focused modules: geometry, seeding, forces, engine, topology, density, and jit.
  • Improves internal readability with docstrings, type hints, and smaller helper functions.
  • Adds deterministic integration coverage for fixed-seed, periodic, and hint-driven meshing.
  • Expands regression tests for force behavior, boundary handling, projection, and topology filtering.
  • Updates project dependencies required by the Python mesher path, including scipy and numba.

@epituch epituch changed the title Nmesh section4 Nmesh section 4 - relaxation mesher internals Apr 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant