Skip to main content

ASE-fast — Atomic Simulation Environment with Rust acceleration

Project description

https://gitlab.com/ase/ase/-/raw/master/doc/static/ase256.png

https://badge.fury.io/py/ase.svg https://gitlab.com/ase/ase/badges/master/coverage.svg?job=coverage-combine

ASE-fast is a drop-in replacement for ASE with optional Rust-accelerated hot paths. No code changes required — install the Rust extensions and every compatible call is automatically routed to the fast path.

Measured speedups on Apple M-series (arm64, Python 3.13):

Operation

Speedup

Neighbor list (scalar cutoff)

13.6×

Neighbor list (per-atom radii)

12.2×

Neighbor list (dict cutoffs)

9.1×

VASP POSCAR write

6.3×

VASP POSCAR read

3.3×

Extended XYZ write (large atoms)

3.5×

Simple XYZ write

2.3×

Minkowski reduction

2.6×

ASE is a set of tools and Python modules for setting up, manipulating, running, visualizing and analyzing atomistic simulations.

Upstream webpage: https://ase-lib.org/

Requirements

Optional:

  • Flask (for ase.db web-interface)

  • spglib (for symmetry operations)

  • Rust + maturin (to build the optional Rust fast-path extensions)

Installation

Pure-Python install (same as upstream ASE):

pip install ase

Development install from this repository:

pip install -e .

Testing

Please run the tests:

$ ase test  # takes 1 min.

and send us the output if there are failing tests.

Contact

Feel free to create Merge Requests and Issues on our GitLab page: https://gitlab.com/ase/ase

For regular support, please use the mailing list or chat rather than GitLab.

Example

Geometry optimization of hydrogen molecule with NWChem:

>>> from ase import Atoms
>>> from ase.optimize import BFGS
>>> from ase.calculators.nwchem import NWChem
>>> from ase.io import write
>>> h2 = Atoms('H2',
               positions=[[0, 0, 0],
                          [0, 0, 0.7]])
>>> h2.calc = NWChem(xc='PBE')
>>> opt = BFGS(h2, trajectory='h2.traj')
>>> opt.run(fmax=0.02)
BFGS:   0  19:10:49    -31.435229     2.2691
BFGS:   1  19:10:50    -31.490773     0.3740
BFGS:   2  19:10:50    -31.492791     0.0630
BFGS:   3  19:10:51    -31.492848     0.0023
>>> write('H2.xyz', h2)
>>> h2.get_potential_energy()  # ASE's units are eV and Ang
-31.492847800329216

This example requires NWChem to be installed.

$ ase gui h2.traj

Contributors

  • Original ASE team (DTU Physics and many others) — see upstream AUTHORS file

  • Andrei Voicu Tomut — Rust acceleration layer (ase-fast), type hints, error messages, LLM builder

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ase_fast-3.29.0b1.tar.gz (3.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ase_fast-3.29.0b1-cp313-cp313-macosx_11_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

File details

Details for the file ase_fast-3.29.0b1.tar.gz.

File metadata

  • Download URL: ase_fast-3.29.0b1.tar.gz
  • Upload date:
  • Size: 3.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for ase_fast-3.29.0b1.tar.gz
Algorithm Hash digest
SHA256 52c0724259e1582006a08a818a13238d1c6be2ee40a1ea0d5d86357e51750ead
MD5 cf97f5542dae771c7f565df57135c1de
BLAKE2b-256 72f8f42008c7c6eab3402e489c578c659a11662c39f97679672175e3c3866a0e

See more details on using hashes here.

File details

Details for the file ase_fast-3.29.0b1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ase_fast-3.29.0b1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 24a2ddbf4cfb44a1d0a714703141db94cc9e226fbf69fe352ac6dcec31610d10
MD5 b00596b61588250a881d77c54f9e248c
BLAKE2b-256 bdd7cdbdc6e06677548bb53940ade3c0a4cfff6cd6c070c11e1b125870786153

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page