Skip to content

Commit a5d5afc

Browse files
committed
Update version and changelog.
1 parent 8091a95 commit a5d5afc

3 files changed

Lines changed: 118 additions & 98 deletions

File tree

docs/changes.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,16 @@ nav_order: 3
66

77
# Change Log
88

9-
## Unreleased
9+
## 4.0.3
10+
- **New: LAMMPS integration for TensorNet and M3GNet potentials (#815).** `matgl.ext.lammps.LAMMPSMatGLModel`
11+
exports a PyG `Potential` to a TorchScript artifact (via the new `mgl create-lammps-model` CLI subcommand),
12+
consumed by a `pair_matgl` CPU pair style and a `pair_matgl/kk` Kokkos GPU pair style shipped under
13+
`lammps/`. The export wrapper uses a kernel-composition pattern (`_TensorNetKernel` / `_M3GNetKernel`)
14+
with the strain/autograd machinery in the outer module; M3GNet required pure-tensor, script-safe ports of
15+
the three-body indexer and basis (`create_line_graph_torch`, `_m3gnet_three_body_basis_torch`). Includes
16+
drop-in CMake snippets, build instructions, parity tests, and CI jobs. Single-GPU only for Kokkos
17+
(multi-rank Kokkos + libtorch is unreliable). Fixes a ghost-row folding bug that caused a ~30-42 eV energy
18+
gap vs the ASE calculator.
1019
- **Fix: `SoftExponential` activation autograd correctness and NaN safety (#788).** `forward` now selects
1120
its `alpha < 0` / `alpha > 0` / `alpha ≈ 0` branches with `torch.where` instead of a Python `if` on the
1221
learnable `alpha` parameter. The old `if self.alpha < 0.0` forced a host-device sync and dropped the
@@ -26,6 +35,19 @@ nav_order: 3
2635
(~19× at `n_passes=20` on M3GNet, GPU). Numerically equivalent to the naive loop; engaged only when
2736
a probe proves the head is the model's terminal op, otherwise falls back automatically (e.g. CHGNet,
2837
which pools after dropout).
38+
- **Fix: training checkpoints loadable under `torch.load(weights_only=True)` (#802).** `ModelLightningModule`
39+
/ `PotentialLightningModule` pickled optimizer/scheduler objects (and a numpy `element_refs` array) into
40+
the checkpoint hyperparameters, so resuming via `Trainer.fit(ckpt_path=...)` broke under torch ≥ 2.6's
41+
`weights_only=True` default. Optimizer/scheduler are now excluded from `save_hyperparameters` (their state
42+
is already in `optimizer_states` / `lr_schedulers`) and `element_refs` is stored as a plain list.
43+
- **Fix: silent mismatch between dataset and model element lists (#819).** Added a guard that reads
44+
`element_types` from the dataset's converter (the actual source that stamps `graph.node_type`) and
45+
validates it against `model.element_types`, catching a common fine-tuning misconfiguration that
46+
previously failed silently.
47+
- **Fix: load MatPES datasets from JSONL on Hugging Face.** `MGLDatasetLoader` now downloads the
48+
line-delimited `.jsonl` files (dataset and per-element atomrefs) that `materialyze/matpes` moved to;
49+
monty's `loadfn` parses them transparently.
50+
- **New: stress warning added to `JAXPESCalculator`.**
2951

3052
## 4.0.2
3153
- **Bug fix: charges restored for charge-predicting potentials (QET) in the ASE calculators.**

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ dependencies = [
5757
"pymatgen-core>=2026.5.18",
5858
"huggingface_hub>=0.24",
5959
]
60-
version = "4.0.2"
60+
version = "4.0.3"
6161

6262
[project.scripts]
6363
mgl = "matgl.cli:main"

0 commit comments

Comments
 (0)