Releases: MDIL-SNU/SevenNet
v0.10.3
[0.10.3]
Matbench
Our new model SevenNet-l3i5 is now available.
Added
- SevenNet-l3i5, checkpoint, preset. (keywords: 7net-l3i5, sevennet-l3i5)
Changed
- Fast --help (do not import torch)
- README refined
What's Changed
- Add: sevennet-l3i5 by @YutackPark in #136
- Upload l3i5 & update README.md by @JisuJung928 in #137
- Fast --help by @YutackPark in #139
- Sevennet-l3i5 unit test by @YutackPark in #141
- Fix: add l3i5 cp as data by @YutackPark in #142
New Contributors
- @JisuJung928 made their first contribution in #137
Full Changelog: v0.10.2...v0.10.3
v0.10.2
[0.10.2]
Added
- Accelerated graph build routine if
matscipy
is installed @hexagonerose - matscipy vs. ase neighborlist unit test
- If valid set is not given but data_divide_ratio is given, validaset is created using random split. (shift, scale, and conv_denoiminator uses original whole statistics)
Changed
matscipy
is included as a dependency- data_divide_ration defaults to 0.0 (meaning not used)
Fixed
- For torch version >= 2.4.0, Loading graph dataset no more raises warnings.
- Raise error when unknown element is found (SevenNetCalculator)
What's Changed
- [Feat] change ase.neighborlist to from matscipy.neighbours by @hexagonrose in #124
- [refactor] make _remove_self_edges be skipped when doing matscipy graph build by @hexagonrose in #129
- docs: update
sevenn_graph_build
of README.md by @YutackPark in #128 - [Feat] add graph build test of ase and matscipy in pytest by @hexagonrose in #131
- Add: data split by @YutackPark in #134
New Contributors
- @hexagonrose made their first contribution in #124
Full Changelog: v0.10.1...v0.10.2
v0.10.1
[0.10.1]
Added
- experimental
SevenNetAtomsDataset
which is memory efficient, can be enabled withdataset_type='atoms'
- Save meta data & statistics when the
SevenNetGraphDataset
saves its data.
Changed
- Save checkpoint_0.pth (model before any training)
SevenNetGraphDataset._file_to_graph_list
->SevenNetGraphDataset.file_to_graph_list
- Refactoring
SevenNetGraphDataset
, skips computing statistics if it is loaded, more detailed logging - Prefer use
.get
when accessing config dict
Fixed
- Fix error when loading
SevenNetGraphDataset
with other types of data (ex: extxyz) in one dataset
Full Changelog: v0.10.0...v0.10.1
What's Changed
- chore: update dependencies (PyG >= 2.5.0) by @YutackPark in #110
- v0.10.1 by @YutackPark in #112
- docs: update torch version by @YutackPark in #116
- refactor: file not found error + warnings for graph dataset by @YutackPark in #119
- merge main by @YutackPark in #122
- refactor: please use get by @YutackPark in #121
v0.10.0
[0.10.0]
SevenNet now has CI workflows and its python coverage is 78%!
Substantial changes in command-line apps and their outputs.
Previous functionalities are still accessible with correct flags (sevenn -m train_v1 ... , sevennet_graph_build --legacy ...)
Added
sevenn_preset
for below changes- [train_v2]: train_v2, with lots of refactoring, support
load_testset_path
. - [train_v2]:
SevenNetGraphDataset
replaces oldAtomGrpahDataset
, which extendsInMemoryDataset
of PyG. - [train_v2]:
sevenn_graph_build
forSevenNetGraphDataset
. - [train_v2]: Any additional datasets will be evaluated and recorded if it is given as 'load_{NAME}set_path' key.
Univ
keyword forchemical_species
- More options: energy_key, force_key, stress_key for
sevenn_graph_build
, thanase.calculator
@thangckt - OpenMPI distributed training @thangckt
Changed
- Some cumbersome things(
type_map
,requires_grad
), that hurt readability, are now hidden insideAtomGraphSequential
. log.sevenn
andlc.csv
automatically find a safe filename (log0.sevenn, log1.sevenn, ...) to avoid overwriting.- [train_v2]: train_v2 loads its training set via
load_trainset_path
, rather than previousload_dataset_path
. - [train_v2]: log.csv -> lc.csv, and columns have no units, (easier to postprocess with it) but still on
log.sevenn
. - [train_v2]: Train valid split by
ratio
is temporarily removed - Previous presets are renamed with
_v1
suffix
Fixed
- [e3gnn_serial]: can continue simulation even when atom tag becomes not consecutive (removing atom dynamically), @gasplant64
- [e3gnn_parallel]: undefined behavior when there is no atoms to send/recv (for non pbc system)
- [e3gnn_parallel]: incorrect force/stress in some edge cases (too small simulation cell & 2 process)
- [e3gnn_parallel]: revert commit 14851ef, now e3gnn_parallel is sane.
- [e3gnn_*]: += instead of = when saving virial stress and forces @gasplant64
- Now Logger correctly closes a file.
- ... and lots of small bugs I found during writing
pytest
.
New Contributors
- @thangckt made their first contribution in #89
- @gasplant64 made their first contribution in #81
- @pre-commit-ci made their first contribution in #101
v0.9.3
Warning: This release has a serious bug in LAMMPS parallel. Please use v0.9.3.post1
in the 'tags', or use pip install.
SevenNet is released to PyPI, project is managed using pyproject.toml, not setup.py
- PyPI release + docs
- torch_scatter dependency removed
- torch_geometric dependency added to the pyproject.toml
Features:
sevenn_preset
for basic training yaml filessevenn_patch_lammps
for easier installation- keyword input for pre-trained models: continue, sevenn_get_model, sevennet_calculator
Bugfix:
- C++17 for torch version > 2.0
Known bug:
- In training yaml,
scale: 'elemwise_force_rms'
is broken. Fixed in github, but not in pip.
The last snapshot of XPLOR cutoff bug
The last snapshot of SevenNet has XPLOR cutoff bug and wrong SevenNet-0 potential.
v0.9.1
This is checkpoint before updating pair_e3gnn_parallel.cpp
I have fixed bugs for small simulation cell but nswap == 6
This version could gives wrong results in the special case where
- cell is very small but still nswap == 6 (6 communication for each cubic faces).
- There exists a small overlap of cutoffs between process 2 and its PBC replicated cell.
The error is fixed but the version is not thoroughly debugged by others.
v0.9.0
Temporal release after merge from dev.
Stress calculation on serial version implemented.
sevenn_get_model
sevenn_inference
sevenn_graph_build
commend updated, README.md updated.
v0.8.1
Average num neighbor fixed.
This is backup for following merge from branch dev
First release v0.8.0
Minimal documentation for usage and installation is prepared. But still bugs are present.
Know bugs:
- When parsing VASP
OUTCARs
withstructure_list
, if the folder contains aPOSCAR
with selective dynamics, it does not read theOUTCAR
correctly. - When parsing VASP
OUTCARs
withstructure_list
, spin polarized calculations are not yet supported. - Models with a large number of parameters (>=5 message passing layers, >= 64 channels) show initial RMSEs of energy and force significantly larger than the original
nequip
. Since the difference should be marginal, we are actively investigating this issue. - The calculated stress on
LAMMPS
is incorrect. - Functionality 'continue' is unstable.