Skip to content

Rewrite core architecture - #89

Merged
maltezfaria merged 1 commit into
mainfrom
core-rewrite
Jun 20, 2026
Merged

maltezfaria merged 1 commit into
mainfrom
core-rewrite

Conversation

@maltezfaria

Copy link
Copy Markdown
Owner

This PR is a full review and rewrite of the library (assisted by Claude). Its goal is to streamline the interface, improve on the NarrowBandMeshField support, and various performance tweaks (including multi-threaded support). I tried to split this into smaller PRs, but things got too tangled and complex, so I am accepting this as a major rewrite.

Replace the MeshField{V,M,B,D}/AbstractDomain hierarchy with a unified
AbstractMeshField{N,T,V} and make the narrow band a field subtype
(NarrowBandMeshField) carrying its own active node/cell indices.

- decouple interpolation into a thread-safe InterpolatedField wrapper and
  move Bernstein polynomial machinery into bernstein.jl
- move signed-distance shapes into sdf.jl and reinitialization onto the new
  interpolation interface
- replace the simulation log with prehook/posthook callbacks
- refactor derivatives, level-set terms, time integrators and the evolution
  loop against the new field interface
- add levelsetops.jl with grid geometry operators and set operations
- simplify boundary conditions (bc_stencil mechanism, add SymmetryBC, drop
  time-dependent Dirichlet)
- update Makie/MMG extensions and docs for the new API

The ImplicitIntegration quadrature extension is intentionally held back for a
follow-up PR.
@codecov

codecov Bot commented Jun 20, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 85.62341% with 113 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.42%. Comparing base (e3c2767) to head (7ea1559).

Files with missing lines Patch % Lines
src/levelsetops.jl 79.52% 26 Missing ⚠️
ext/MakieExt.jl 0.00% 20 Missing ⚠️
src/sdf.jl 84.46% 16 Missing ⚠️
src/meshfield.jl 91.52% 15 Missing ⚠️
src/interpolation.jl 82.27% 14 Missing ⚠️
src/timestepping.jl 88.31% 9 Missing ⚠️
src/levelsetequation.jl 61.53% 5 Missing ⚠️
src/LevelSetMethods.jl 0.00% 4 Missing ⚠️
ext/MMGSurfaceExt.jl 0.00% 1 Missing ⚠️
ext/MMGVolumeExt.jl 0.00% 1 Missing ⚠️
... and 2 more

❗ There is a different number of reports uploaded between BASE (e3c2767) and HEAD (7ea1559). Click for more details.

HEAD has 1 upload less than BASE
Flag BASE (e3c2767) HEAD (7ea1559)
2 1
Additional details and impacted files
@@             Coverage Diff             @@
##             main      #89       +/-   ##
===========================================
- Coverage   89.71%   76.42%   -13.30%     
===========================================
  Files          16       17        +1     
  Lines        1702     1442      -260     
===========================================
- Hits         1527     1102      -425     
- Misses        175      340      +165     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@maltezfaria
maltezfaria merged commit e756b82 into main Jun 20, 2026
5 of 6 checks passed
@maltezfaria
maltezfaria deleted the core-rewrite branch June 20, 2026 14:29
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