Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release featomic torch v0.6.0 rc2 #363

Merged
merged 2 commits into from
Dec 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
37 changes: 37 additions & 0 deletions featomic-torch/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Changelog

All notable changes to featomic are documented here, following the [keep
a changelog](https://keepachangelog.com/en/1.1.0/) format. This project follows
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased](https://github.com/metatensor/featomic/)

<!-- Possible sections for each package:

### Added

### Fixed

### Changed

### Removed
-->

### Added

- C++ and Python TorchScript bindings to `featomic`, making all calculators
accessible from TorchScript models.

- Integration of the TorchScript calculators with
[metatensor-torch-atomistic](https://docs.metatensor.org/latest/atomistic/index.html),
using the `System` class from this package as a system provider, and
integrating with neighbor lists provided by the simulation engine through
metatensor.

- Automatic integration with (Py)Torch automatic differentiation system. If any
of the inputs requires gradients, then `featomic-torch` will compute them,
store them, and integrate them with a custom backward function on the
calculator output.

- Re-export of Python tools for Clebsch-Gordan tensor products from `featomic`,
in a TorchScript-compatible way.
2 changes: 1 addition & 1 deletion featomic-torch/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.6.0-rc1
0.6.0-rc2
2 changes: 1 addition & 1 deletion featomic-torch/tests/cmake-project/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ project(featomic-torch-test-cmake-project CXX)
# We need to update the REQUIRED_FEATOMIC_VERSION in the same way we update the
# featomic version for dev builds
include(../../cmake/dev-versions.cmake)
set(REQUIRED_FEATOMIC_TORCH_VERSION "0.6.0-rc1")
set(REQUIRED_FEATOMIC_TORCH_VERSION "0.6.0-rc2")
create_development_version("${REQUIRED_FEATOMIC_TORCH_VERSION}" FEATOMIC_TORCH_FULL_VERSION "featomic-torch-v")
string(REGEX REPLACE "([0-9]*)\\.([0-9]*).*" "\\1.\\2" REQUIRED_FEATOMIC_TORCH_VERSION ${FEATOMIC_TORCH_FULL_VERSION})
find_package(featomic_torch ${REQUIRED_FEATOMIC_TORCH_VERSION} REQUIRED)
Expand Down
61 changes: 61 additions & 0 deletions featomic/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Changelog

All notable changes to featomic are documented here, following the [keep
a changelog](https://keepachangelog.com/en/1.1.0/) format. This project follows
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased](https://github.com/metatensor/featomic/)

<!-- Possible sections for each package:

### Added

### Fixed

### Changed

### Removed
-->


### Added

- Multiple atomistic features calculators with a native implementation:
- SOAP spherical expansion, radial spectrum, power spectrum and spherical
expansion for pairs of atoms;
- LODE spherical expansion;
- Neighbor list;
- Sorted distances vector;
- Atomic composition.

- All the calculator outputs are stored in
[metatensor's](https://docs.metatensor.org/) `TensorMap` objects. This allow
to both store the features in a very sparse format, saving memory; and to
store different irreducible representations (for SO(3) equivariant atomsitic
features)

- Most of the calculators can compute gradients with respect to `positions`,
`cell` or `stress`, storing them in the `gradient()` of metatensor's
`TensorBlock`.

- All the native calculators are exposed through a C API, and accessible from
multiple languages: Rust, C++ and Python.

- Interface to mutliple system providers, and a way to define custom system
providers in user code. The following system providers are supported from
Python: ASE (https://wiki.fysik.dtu.dk/ase/); chemfiles
(https://chemfiles.org/); and PySCF (https://pyscf.org/)

- Python-only calculators, based on Clebsch-Gordan tensor products to combine
equivariant featurizations. This includes
- PowerSpectrum, able to combine two different spherical expansions
- `EquivariantPowerSpectrum`, the same but producing features both invariant
and covariant with respect to rotations
- `DensityCorrelations` to compute arbitrary body-order density correlations;
- `ClebschGordanProduct`, the core building block that does a single
Clebsch-Gordan tensor product.

- Python tools to define custom atomic density and radial basis functions, and
then compute splines for the radial integral apearing in SOAP and LODE
spherical expansions. This enables using these native calculators with
user-defined atomic densities and basis functions.
Loading