{"id":4433,"library":"ase","title":"Atomic Simulation Environment (ASE)","description":"The Atomic Simulation Environment (ASE) is a comprehensive Python library designed for setting up, manipulating, running, visualizing, and analyzing atomistic simulations. It offers a flexible framework that integrates with various external simulation codes through its Calculator interface, supporting methods ranging from Density Functional Theory (DFT) to semi-empirical and classical interatomic potentials. ASE is actively maintained with frequent feature and bugfix releases; the current stable version is 3.28.0.","status":"active","version":"3.28.0","language":"en","source_language":"en","source_url":"https://gitlab.com/ase/ase","tags":["physics","chemistry","materials science","simulation","atomistic","DFT","molecular dynamics"],"install":[{"cmd":"pip install ase","lang":"bash","label":"Install stable release from PyPI"}],"dependencies":[{"reason":"Core dependency for numerical operations, especially array handling.","package":"numpy"},{"reason":"Required for the Graphical User Interface (GUI) on some systems (e.g., Debian/Ubuntu).","package":"python3-tk","optional":true},{"reason":"The `ase.ga` module moved to a standalone project `ase-ga` in version 3.27.0. Install separately if genetic algorithm functionality is needed.","package":"ase-ga","optional":true}],"imports":[{"symbol":"Atoms","correct":"from ase import Atoms"},{"note":"Example of importing a built-in calculator.","symbol":"EMT","correct":"from ase.calculators.emt import EMT"},{"note":"Example of importing an optimizer.","symbol":"BFGS","correct":"from ase.optimize import BFGS"}],"quickstart":{"code":"from ase import Atoms\nfrom ase.calculators.emt import EMT\nfrom ase.optimize import BFGS\nfrom ase.io import write\n\n# Create a molecule (H2)\nh2 = Atoms('H2', positions=[[0, 0, 0], [0, 0, 0.7]])\n\n# Attach a calculator (Empirical Potential)\nh2.calc = EMT()\n\n# Optimize the geometry\noptimizer = BFGS(h2, trajectory='h2.traj')\noptimizer.run(fmax=0.02)\n\n# Print final energy and write structure\nprint(f'Final potential energy: {h2.get_potential_energy():.3f} eV')\nwrite('H2.xyz', h2)","lang":"python","description":"This example demonstrates how to create an `Atoms` object, attach a simple `EMT` calculator, perform a geometry optimization using `BFGS`, and save the final structure and energy. ASE defaults to eV and Å for units."},"warnings":[{"fix":"Upgrade Python to 3.10+ or use an older ASE version if Python 3.9- is required.","message":"ASE now requires Python 3.10 or newer, starting with version 3.27.0. Ensure your Python environment meets this requirement.","severity":"breaking","affected_versions":">=3.27.0"},{"fix":"Install `ase-ga` separately via `pip install ase-ga` if you use genetic algorithms.","message":"The `ase.ga` (genetic algorithm) module has moved to a standalone project, `ase-ga`, in version 3.27.0. It is no longer part of the main `ase` package.","severity":"breaking","affected_versions":">=3.27.0"},{"fix":"Review custom optimizer implementations or code interacting with optimizer internals. Adapt to the new arbitrary degrees of freedom interface.","message":"The Optimizable interface (used by Optimizers) changed in version 3.26.0 to work with arbitrary degrees of freedom instead of Cartesian (Nx3) ones. This can break code that uses internal Optimizer features like `converged()`.","severity":"breaking","affected_versions":">=3.26.0"},{"fix":"Adjust code that reads ORCA output to expect an `Atoms` object, or explicitly call `read_orca_outputs()` for the dictionary-only return.","message":"The `ase.io.orca.read_orca_output` function now returns an `Atoms` object with attached properties, instead of just a results dictionary. The previous behavior is available via `ase.io.orca.read_orca_outputs()`.","severity":"breaking","affected_versions":">=3.25.0"},{"fix":"Pass `master` as a keyword argument (e.g., `BFGS(atoms, master=...)`) and remove any usage of `force_consistent` from optimizer initialization.","message":"The `master` parameter to Optimizers is now keyword-only. The `force_consistent` option has been removed from `Optimizer`.","severity":"deprecated","affected_versions":">=3.24.0 (exact version for `force_consistent` removal is not specified, but mentioned around 3.25.0 news)"}],"env_vars":null,"last_verified":"2026-04-12T00:00:00.000Z","next_check":"2026-07-11T00:00:00.000Z"}