Preprint
Machine Learning

The atomic simulation environment—a Python library for working with atoms

Ask Hjorth Larsen(University of the Basque Country), Jens Jørgen Mortensen(Technical University of Denmark), Jakob Blomqvist(Malmö University), Ivano E. Castelli(University of Copenhagen), Rune Christensen(Technical University of Denmark), Marcin Dułak(Technical University of Denmark), Jesper Friis(SINTEF), Michael N. Groves(Aarhus University), Bjørk Hammer(Aarhus University), Cory Hargus(Brown University), Eric Hermes(University of Wisconsin–Madison), Paul C Jennings(Technical University of Denmark), Peter Bjerre Jensen(Technical University of Denmark), James R. Kermode(University of Warwick), John R. Kitchin(Carnegie Mellon University), Esben L. Kolsbjerg(Aarhus University), Joseph Kubal(Purdue University West Lafayette), Kristen Kaasbjerg(Technical University of Denmark), Steen Lysgaard(Technical University of Denmark), Jón Bergmann Maronsson, Tristan Maxson(Purdue University West Lafayette), Thomas Olsen(Technical University of Denmark), Lars Pastewka(Karlsruhe Institute of Technology), Andrew A. Peterson(Brown University), C. Rostgaard(Technical University of Denmark), Jakob Schiøtz(Technical University of Denmark), Ole Schütt(ETH Zurich), Mikkel Strange(Technical University of Denmark), Kristian Sommer Thygesen(Technical University of Denmark), Tejs Vegge(Technical University of Denmark), Lasse B. Vilhelmsen(Aarhus University), Michael Walter(University of Freiburg), Zhenhua Zeng(Purdue University West Lafayette), Karsten W. Jacobsen(Technical University of Denmark)
March 21, 2017Journal of Physics Condensed Matter4,493 citations

4.5k

Citations

190

Influential Citations

Journal of Physics Condensed Matter

Venue

2017

Year

Abstract

The atomic simulation environment (ASE) is a software package written in the Python programming language with the aim of setting up, steering, and analyzing atomistic simulations. In ASE, tasks are fully scripted in Python. The powerful syntax of Python combined with the NumPy array library make it possible to perform very complex simulation tasks. For example, a sequence of calculations may be performed with the use of a simple 'for-loop' construction. Calculations of energy, forces, stresses and other quantities are performed through interfaces to many external electronic structure codes or force fields using a uniform interface. On top of this calculator interface, ASE provides modules for performing many standard simulation tasks such as structure optimization, molecular dynamics, handling of constraints and performing nudged elastic band calculations.

Analysis

Why This Paper Matters

The Atomic Simulation Environment (ASE) addresses a critical need in computational materials science and chemistry: the ability to script and automate complex atomistic simulations in a flexible, high-level programming language. Before ASE, researchers often had to manually prepare input files, run external codes, and parse outputs, which was time-consuming and error-prone. ASE provides a unified Python interface that abstracts away the heterogeneity of external simulation codes, allowing users to focus on the scientific problem rather than the technical details of each code.

By leveraging Python and NumPy, ASE enables users to perform sophisticated simulation workflows with simple scripting constructs, such as for-loops for parameter sweeps or complex sequences of calculations. This lowers the barrier to entry for newcomers and increases productivity for experienced researchers. The uniform calculator interface means that switching between different electronic structure codes or force fields requires minimal code changes, promoting reproducibility and code reuse.

Moreover, ASE's built-in modules for common tasks like structure optimization, molecular dynamics, and nudged elastic band calculations provide ready-to-use tools that can be easily integrated into larger workflows. This has made ASE a cornerstone of many computational studies, as evidenced by its high citation count (over 4,400). The paper itself serves as a comprehensive introduction and reference for the library, documenting its design philosophy and capabilities.

Technical Contributions

  • Uniform calculator interface: ASE defines a consistent API for energy, forces, stresses, and other quantities, with adapters for many external codes (e.g., GPAW, VASP, Quantum ESPRESSO) and force fields. This allows users to switch calculators with minimal code changes.
  • Python-based scripting: All tasks are scripted in Python, enabling the use of Python's powerful syntax and libraries (e.g., NumPy) for complex simulation logic, data analysis, and visualization.
  • Built-in simulation modules: ASE includes modules for structure optimization (e.g., BFGS, L-BFGS), molecular dynamics (e.g., Langevin, Verlet), constraint handling, and nudged elastic band calculations for transition state finding.
  • Atomistic data structures: ASE provides classes for representing atoms, molecules, and periodic structures, with methods for manipulating geometry, reading/writing common file formats, and building supercells.
  • Extensibility: The library is designed to be easily extended with new calculators, algorithms, and analysis tools, fostering a community-driven ecosystem.

Results

The paper does not present quantitative performance metrics or comparative benchmarks; instead, it describes the software's architecture and features. However, the widespread adoption of ASE (over 4,400 citations) attests to its effectiveness and utility. The uniform interface has been implemented for a large number of external codes, and the built-in modules have been used in numerous scientific studies. The paper includes examples of scripting complex tasks, demonstrating the power and simplicity of the approach.

Significance

ASE has had a profound impact on the field of computational materials science and chemistry by providing a flexible, open-source platform for atomistic simulations. It has enabled researchers to automate repetitive tasks, easily compare different simulation methods, and build complex workflows that would be difficult to implement otherwise. The library's design has influenced other scientific software projects, and its continued development (with contributions from a large community) ensures its relevance. While the paper is not about machine learning per se, ASE is increasingly used in ML-driven materials discovery, where it serves as a backend for generating training data and running simulations with ML potentials. Thus, ASE is a foundational tool that supports both traditional and ML-accelerated computational research.