Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
132 commits
Select commit Hold shift + click to select a range
1e88c69
Add LAMMPS export and benchmark infrastructure
jameskermode Jan 6, 2026
3535517
Add ETACE LAMMPS export tutorial and documentation
jameskermode Jan 6, 2026
a125118
Restore export-ci.yml workflow lost in rebase
jameskermode Jan 6, 2026
e56f712
Update export CI to test ETACE models, remove outdated ACEModel tests
jameskermode Jan 6, 2026
cb04425
Remove ACE registry from CI (ACEpotentials now in General)
jameskermode Jan 6, 2026
67fc49c
Fix export tests: use ETACE for multispecies, loosen tolerances to 1e-10
jameskermode Jan 6, 2026
a9f9ca6
Fix polynomial recurrence in ETACE export to match P4ML
jameskermode Jan 6, 2026
a470238
Add workflow_dispatch trigger to export-ci.yml
jameskermode Jan 6, 2026
b596da0
Mark juliac compilation step as optional in CI
jameskermode Jan 6, 2026
a784f26
Make library-dependent CI jobs conditional on juliac success
jameskermode Jan 6, 2026
b1f52d5
Add compact code generation for reduced export file size
jameskermode Jan 6, 2026
0372f90
Simplify export generator code: remove dead code and merge radial basis
jameskermode Jan 6, 2026
d256b3f
Extract species dispatch helper functions to reduce code duplication
jameskermode Jan 6, 2026
ded91b9
Split export_ace_model.jl into modular files for maintainability
jameskermode Jan 6, 2026
b5a77f4
Fix CI: documentation errors and make juliac compilation mandatory
jameskermode Jan 6, 2026
116a938
Use JuliaC.jl package instead of bundled juliac.jl script
jameskermode Jan 6, 2026
4d60bcc
Fix JuliaC.jl compilation workflow: add LinkRecipe step
jameskermode Jan 6, 2026
4f5cca0
Fix CI: use test_etace_model.jl for library compilation
jameskermode Jan 6, 2026
3d0c24b
Fix CI: use cpu_target='generic' for portable library compilation
jameskermode Jan 6, 2026
be76e6c
Relax energy conservation test thresholds for random CI model
jameskermode Jan 6, 2026
a99fcab
Relax MPI energy drift threshold for random CI model
jameskermode Jan 6, 2026
b172ab2
Fix docs: disable execution for ETACE LAMMPS tutorial
jameskermode Jan 6, 2026
b66f4e1
Fix docs: use documenter=false for ETACE LAMMPS tutorial
jameskermode Jan 6, 2026
bbbc315
Fix stable docs not building automatically (#320) (#321)
jameskermode Jan 6, 2026
88469d0
Fix ETACE tutorial heading formatting for Literate.jl
jameskermode Jan 6, 2026
cf0f20a
Remove deprecated(?) kwarg to export_ace_model
Alexsp32 Apr 22, 2026
745e6cf
Add JLD2 to save/load models for testing.
Alexsp32 Jul 29, 2026
2efae73
Add more missing libraries to Python deployment
Alexsp32 Jul 29, 2026
278d2ab
Made export Project.toml resilient against new releases
Alexsp32 Aug 20, 2026
230ab7b
Julia lib folder name wrong way round.
Alexsp32 Aug 21, 2026
075d385
Ensure lib/julia folder exists too.
Alexsp32 Aug 21, 2026
42151c2
export: fix Hermite-spline radial dispatch for multi-species models
jameskermode Sep 15, 2026
9ea89c9
export/test: Cantor reference fixture and exported-model checker
jameskermode Sep 15, 2026
3813261
export/test: document the per-atom virial metric; de-duplicate stack …
jameskermode Sep 15, 2026
ae26a0c
export: emit the ETPairModel term (readout folded per ordered pair); …
jameskermode Sep 15, 2026
0fe5d4b
export/test: exercise every pair call site; check pair/ETACE species …
jameskermode Sep 15, 2026
7d96abc
export: one ordered pair index for every per-pair table; :polynomial …
jameskermode Sep 16, 2026
6891fd6
export: refuse un-verifiable Hermite exports; delete unmeasured speed…
jameskermode Sep 16, 2026
919d312
export: correct false accuracy claims in the tutorial; make the Hermi…
jameskermode Sep 16, 2026
da51119
export/test: real LAMMPS gates (1e-10 vs Julia, 1e-12 vs the library,…
jameskermode Sep 16, 2026
6896555
export/test: the Hermite tests state their reference, and are actuall…
jameskermode Sep 16, 2026
79d0037
export/ci: run both modes and the pair group; fail on a gate that did…
jameskermode Sep 16, 2026
e1e0ede
export: refuse :polynomial for a splinified model instead of silently…
jameskermode Sep 16, 2026
bc1d63f
export/test: run_local.sh documents the new env knobs and adds <julia…
jameskermode Sep 16, 2026
45ab9f9
export/lammps: compare_dump.py gates max|F| by default (M6)
jameskermode Sep 16, 2026
3a9bb3c
export/test: the LAMMPS gates now evaluate a model WITH a pair term (…
jameskermode Sep 16, 2026
9257f29
export/test: the MPI group compares real forces on real ranks (I3, I5…
jameskermode Sep 16, 2026
bb99589
export/ci: upload the exported .jl source alongside the compiled libr…
jameskermode Sep 16, 2026
9ec5b52
export/ci: two-rank parity step uses the export venv's Python (P1b)
jameskermode Sep 16, 2026
07c6d33
export/ci: correct the "mirrors setup_stacked_model" comment (P1c)
jameskermode Sep 16, 2026
f307bd2
export/test: fix stale find_mpirun docstring (P2)
jameskermode Sep 16, 2026
89551e4
export/test: correct the ase-ace guard string, register both reasons …
jameskermode Sep 16, 2026
d449dff
export/test: route the mpirun-absent skip through required_check (P4)
jameskermode Sep 16, 2026
0bec81f
export/ci: fix a quoting bug my own P1c comment introduced
jameskermode Sep 16, 2026
2441d30
export/ci: fix stale reference to the renamed fixture-gate check step…
jameskermode Sep 16, 2026
4ff291f
export/test: route the live lib_path/plugin_path skips through requir…
jameskermode Sep 16, 2026
954e06a
export/bench: TiAl order-4 reference-model fit script (max_level=11 -…
jameskermode Sep 16, 2026
a804955
export/bench: BLR(:svd) for the TiAl fit, cached LSQ system, multi-sp…
jameskermode Sep 16, 2026
80cccf6
export/bench: parity benchmark harness (pinned core, pace recursive) …
jameskermode Sep 16, 2026
6378688
export/bench: correct both LAMMPS invocations, measured not assumed
jameskermode Sep 16, 2026
b997885
export/bench: baseline rows (2026-09-16, core 31) in README.md Results
jameskermode Sep 16, 2026
b0a848c
export/bench: gate interlock, library-level gates, and rows that carr…
jameskermode Sep 16, 2026
e4a8d30
export/bench: gate the rank-to-rank energy relatively (1e-13), forces…
jameskermode Sep 16, 2026
9600464
export/bench: assert the 2-rank decomposition really happened, and te…
jameskermode Sep 16, 2026
3570eb8
export/bench: model_of errors on an unknown tag; state the gate/timin…
jameskermode Sep 16, 2026
cedf353
export/test: generator-to-generator parity gate (1e-13 relative), red
jameskermode Sep 16, 2026
4eb0dcd
export: radial mixing emitted from W's sparsity, unused (n,l) pruned,…
jameskermode Sep 16, 2026
2b6ab58
export/bench: B1 timing rows, and the same-session re-measurement the…
jameskermode Sep 16, 2026
ff1d87a
export: enforce the 1e-13 parity gate, and stop the radial dispatch f…
jameskermode Sep 16, 2026
8eaa83e
export/test: the workspace / re-entrancy gate, committed red
jameskermode Sep 16, 2026
2909996
export: per-neighbour stack kernel, species-block A, opaque workspace…
jameskermode Sep 16, 2026
9af0a43
export: build stamp, OMP-vs-serial gate, --species/--geom, CI OpenMP on
jameskermode Sep 16, 2026
a8b11f8
export: image-resident workspace pool; fixes a juliac-only crash
jameskermode Sep 16, 2026
d19c09e
export/test: the value/derivative energy spread is gone; gate it at zero
jameskermode Sep 16, 2026
a681600
export/bench: Task 6 rows -- B2 at 3.1-3.9x, and faster than pace on …
jameskermode Sep 16, 2026
672e9ee
export: kappa-aware virial gate, liveness sized to reach a GC, tagged…
jameskermode Sep 16, 2026
63a612a
export: measure the GC condition instead of predicting it; validate l…
jameskermode Sep 16, 2026
f4153f8
export: gate L2's finiteness clause can fail again, and is tested on …
jameskermode Sep 17, 2026
a797874
export/bench: correct the tial_poly control, and test the warm-up hyp…
jameskermode Sep 17, 2026
b826c83
export/bench: summarise_rows.py applies its exclusions instead of pri…
jameskermode Sep 17, 2026
e836517
export: DAG AA products with a C-tilde-seeded backward -- B3
jameskermode Sep 17, 2026
d5a2664
export/test: the parity gate could not build its own reference generator
jameskermode Sep 17, 2026
d94b491
export: the DAG is opt-in (aa_products=:dag); :flat stays the default…
jameskermode Sep 17, 2026
29e23e5
export/bench: Task 7's rows, the profile, and the two harness defects
jameskermode Sep 17, 2026
6cb12ae
export: fix round 1 -- the generated default is now BYTE-identical to…
jameskermode Sep 17, 2026
7f005e7
export: the carried minors, and the byte-comparison that was never co…
jameskermode Sep 17, 2026
adf3dd5
export/bench: the close-out table, the multi-rank result, and the docs
jameskermode Sep 17, 2026
554f1ec
export/bench: the protocol/tool contradiction, stated where it will b…
jameskermode Sep 17, 2026
b1cda68
export/bench: the selection rule contradicted the protocol -- fixed, …
jameskermode Sep 17, 2026
32ece2e
export/bench: the multi-rank claim was taken under the load it exists…
jameskermode Sep 17, 2026
f3c8257
export: the minors, and the figures re-derived from the committed art…
jameskermode Sep 17, 2026
17716a5
export: untrack Manifest.toml (host-local resolve), re-added by a 'gi…
jameskermode Sep 17, 2026
3786dc7
export/bench: five corrections, and the base branch's committed binar…
jameskermode Sep 17, 2026
fdce0cb
export: the virial's end-to-end gate, and three docs that steered use…
jameskermode Sep 17, 2026
568fdd2
export: the mutation count was wrong, and two qualifications the main…
jameskermode Sep 17, 2026
f0e6a12
export: remove the :hermite_spline radial mode from the generator
jameskermode Sep 17, 2026
6ccba0e
export/test: retire the Hermite groups, keep every gate that was not …
jameskermode Sep 17, 2026
8558ad4
export/bench + CI: drop the h50 tags, keep every h50 measurement
jameskermode Sep 17, 2026
fb267cd
export: remove the minimal-export path, and the docs for both removals
jameskermode Sep 17, 2026
4dee6c8
export: the parity gate can build its own reference again, and five r…
jameskermode Sep 17, 2026
fbf1c9f
export/test: a syntax gate that can fail, and three corrections to ma…
jameskermode Sep 17, 2026
9a4c86b
export/bench: the syntax gate's own file count was stale in its first…
jameskermode Sep 17, 2026
d2f880a
export: remove the unreachable classic-ACEModel radial exporter
jameskermode Sep 17, 2026
466b58f
ci: drop the obsolete ACEregistry, which 1.13's Pkg will not resolve
jameskermode Sep 17, 2026
394b70c
export/ase-ace: the Julia assets now ship inside the package
jameskermode Sep 18, 2026
a63318d
export/ase-ace: exclude Manifest.toml from the sdist too, not only th…
jameskermode Sep 18, 2026
272dab3
export/ase-ace: a supported Julia range, and a LICENSE in both artefacts
jameskermode Sep 18, 2026
abca499
export/ase-ace: one Julia dependency mechanism, not two
jameskermode Sep 18, 2026
d0b259c
export/ase-ace: a juliapkg floor this code can call, and one error path
jameskermode Sep 18, 2026
508953b
export/ase-ace: an executable override that is not an environment bypass
jameskermode Sep 19, 2026
c7a471e
export/ase-ace: the README said the opposite of the rule that ships
jameskermode Sep 19, 2026
6fb3e1a
export/ase-ace: fix the CI break from dropping ACEfit, and gate suffi…
jameskermode Sep 19, 2026
946af15
export/ase-ace: gate A derives its file list, and one live undeclared…
jameskermode Sep 19, 2026
7ba985d
export/ase-ace: two facts the README lacked, and a skip guard that ne…
jameskermode Sep 21, 2026
5f9b185
export/ase-ace: CI stops overwriting a tracked file to make its own f…
jameskermode Sep 21, 2026
926027c
export/ase-ace: make the socket backend work at all
jameskermode Sep 21, 2026
2d2811d
export/ase-ace: stop paying Julia startup once per test
jameskermode Sep 21, 2026
4a366c5
export/ase-ace: remove the socket backend
jameskermode Sep 21, 2026
e93aad0
export/ase-ace: rename server.py to julia_env.py
jameskermode Sep 22, 2026
f4b600e
export: docs and examples catch up with the socket removal
jameskermode Sep 22, 2026
b1477f6
export/ase-ace: stop multi-threaded juliacall segfaulting
jameskermode Sep 22, 2026
c27a2f8
test: regression tests for exporting ace1_model-derived ETACE models
jameskermode Oct 1, 2026
c920758
fix(et_models): convert ace1_model's ACE1_PolyEnvelope1sR pair envelope
jameskermode Oct 1, 2026
7152238
fix(export): emit spherical harmonics for Ytype=:spherical; ACE1 pair…
jameskermode Oct 1, 2026
304585b
test(export): compiled-library tier for the ace1 group; wire it into CI
jameskermode Oct 1, 2026
95f7280
docs(export): supported model types; ace1_model via its exact twin
jameskermode Oct 1, 2026
b28a5a8
Merge origin/main into lammps-export (brings in #326, the classic ACE…
jameskermode Oct 1, 2026
a4d6c49
test(export): the ace1 C-API check drives the library with the standa…
jameskermode Oct 1, 2026
800957a
Use different JuliaC cmds for v1.12, v1.13
Alexsp32 Oct 2, 2026
1acb649
Add note on network file systems.
Alexsp32 Oct 2, 2026
52b0a55
Unit test Julia v1.13 too.
Alexsp32 Oct 2, 2026
90e7dfa
Merge branch 'main' into lammps-export
jameskermode Oct 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 8 additions & 15 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@ jobs:
matrix:
version:
# - '1.10' (dramatic failures => to be understood)
- '1.11'
#- '1.11' (let's test for one non-LTS version back from the current?)
- '1.12'
- '1.13'
# - 'nightly'
python-version:
- '3.11'
Expand All @@ -42,25 +43,21 @@ jobs:
version: ${{ matrix.version }}
arch: ${{ matrix.arch }}
- uses: actions/setup-python@v2
with:
with:
python-version: ${{ matrix.python-version }}
- run: |
using Pkg
Pkg.pkg"registry add https://github.com/ACEsuit/ACEregistry"
shell: bash -c "julia --color=yes {0}"
- uses: julia-actions/cache@v2
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1

# OLD SCRIPT
# OLD SCRIPT
# steps:
# - uses: actions/checkout@v4
# - uses: julia-actions/setup-julia@v2
# with:
# version: ${{ matrix.julia-version }}
# arch: ${{ matrix.arch }}
# - uses: actions/setup-python@v2
# with:
# with:
# python-version: ${{ matrix.python-version }}
# - uses: actions/cache@v2
# env:
Expand All @@ -77,7 +74,7 @@ jobs:
# Pkg.pkg"registry add https://github.com/ACEsuit/ACEregistry"
# shell: bash -c "julia --color=yes {0}"
# - uses: julia-actions/julia-buildpkg@v1
# - name: "test-precompile"
# - name: "test-precompile"
# run: |
# using Pkg
# Pkg.precompile()
Expand All @@ -91,7 +88,7 @@ jobs:
# matrix:
# julia-version:
# - 'nightly'
# python-version:
# python-version:
# - '3.8'
# os:
# - ubuntu-latest
Expand All @@ -105,7 +102,7 @@ jobs:
# version: ${{ matrix.julia-version }}
# arch: ${{ matrix.arch }}
# - uses: actions/setup-python@v2
# with:
# with:
# python-version: ${{ matrix.python-version }}
# - uses: actions/cache@v1
# env:
Expand Down Expand Up @@ -140,10 +137,6 @@ jobs:
- uses: julia-actions/setup-julia@v2
with:
version: '1'
- run: |
using Pkg
Pkg.pkg"registry add https://github.com/ACEsuit/ACEregistry"
shell: bash -c "julia --color=yes {0}"
- uses: actions/setup-python@v2
with:
python-version: '3.11'
Expand Down
Loading
Loading