Changelog

Git master branch

Version 3.25.0

I/O

  • Moved Postgres, MariaDB and MySQL backends to separate project: https://gitlab.com/ase/ase-db-backends. Install from PyPI with pip install ase-db-backends (MR: !3545).

  • BREAKING ase.io.orca \(read_orca_output\) now returns Atoms with attached properties. \(ase.io.read\) will use this function. The previous behaviour (return results dictionary only) is still available from function \(read_orca_outputs\). (MR: !3599)

  • Added write_castep_geom() and write_castep_md() (MR: !3229)

  • Fixed \(:mod:`ase.data.pubchem\) module to convert # in SMILES to HEX %23 for URL (MR: !3620).

  • ase.db: Unique IDs are now based on UUID rather than pseudorandom numbers that could become equal due to seeding (MR: !3614).

  • ase.db: Fix bug where unique_id could be converted to float or int (MR: !3613).

  • Vasp: More robust reading of CHGCAR (MR: !3607).

  • Lammpsdump: Read timestep from lammpsdump and set element based on mass (MR: !3529).

  • Vasp: Read and write velocities (MR: !3597).

  • DB: Support for LMDB via \(ase-db-backends\) project (MR: !3564, MR: !3639).

  • Espresso: Fix bug reading \(alat\) in some cases (MR: !3562).

  • GPAW: Fix reading of total charge from text file (MR: !3519).

  • extxyz: Somewhat restrict what properties are automatically written (MR: !3516).

  • Lammpsdump: Read custom property/atom LAMMPS dump data (MR: !3510).

Calculators

  • More robust reading of Castep XC functional (MR: !3612).

  • More robust saving of calculators to e.g. trajectories (MR: !3610).

  • Lammpslib: Fix outdated MPI check (MR: !3594).

  • Morse: Optionally override neighbor list implementation (MR: !3593).

  • EAM: Calculate stress (MR: !3581).

  • A new Calculator ase.calculators.tersoff.Tersoff has been added. This is a Python implementation of a LAMMPS-style Tersoff interatomic potential. Parameters may be passed directly to the calculator as a ase.calculators.tersoff.TersoffParameters object, or the Calculator may be constructed from a LAMMPS-style file using its from_lammps classmethod. (MR: !3502)

Optimizers

  • Fix step counting in the CellAwareBFGS (MR: !3588).

  • Slightly more efficient/robust GoodOldQuasiNewton (MR: !3570).

Molecular dynamics

  • Merged \(self.communicator\) into \(self.comm\) (MR: !3631).

  • Improved random sampling in countour exploration (MR: !3643).

  • Fix small energy error in Langevin dynamics (MR: !3567).

  • Isotropic NPT with MTK equations (MR: !3550).

  • Bussi dynamics now work in parallel (MR: !3569).

  • Improvements to documentation (MR: !3566).

  • Make Nose-Hoover chain NVT faster and fix domain decomposition with Asap3 (MR: !3571).

  • NPT now works with cells that are upper or lower triangular matrices (MR: !3277) aside from upper-only as before.

  • Fix inconsistent irun() for NPT (MR: !3598).

GUI

Development

  • Changelog is now generated using scriv (MR: !3572).

  • CI cleanup; pypi dependencies in CI jobs are now cached (MR: !3628, MR: !3629).

  • Maximum automatic pytest workers reduced to 8 (MR: !3628).

  • Ruff formatter to be gradually enabled across codebase (MR: !3600).

Other changes

  • standard_form() can convert to upper triangular (MR: !3623).

  • Bugfix: get_duplicate_atoms() now respects pbc (MR: !3609).

  • Bugfix: Constraint masks in cell filters are now respected down to numerical precision. Previously, the constraints could be violated by a small amount (MR: !3603).

  • Deprecate lazyproperty() and lazymethod() since Python now provides functools.cached_property() (MR: !3565).

  • Remove \(nomad-upload\) and \(nomad-get\) commands due to incompatibility with recent Nomad (MR: !3563).

  • Fix normalization of phonon DOS (MR: !3472).

  • PlottingVariables towards rotating the camera rather than the atoms (MR: !2895).

Version 3.24.0

Requirements

Atoms

DB

  • Ensure correct float format when writing to Postgres database (MR: !3475)

Structure tools

Calculators / IO

  • Amber: Fix scaling of velocities in restart files (MR: !3427)

  • Amber: Raise an error if cell is orthorhombic (MR: !3443)

  • CASTEP

    • BREAKING Removed legacy read_cell and write_cell functions from ase.io.castep. (MR: !3435)

    • .castep file reader bugfix for Windows (MR: !3379), testing improved (MR: !3375)

    • fix read from Castep geometry optimisation with stress only (MR: !3445)

  • EAM: Fix calculations with self.form = “eam” (MR: !3399)

  • FHI-aims

  • FileIOSocketClientLauncher: Fix an unintended API change (MR: !3453)

  • FiniteDifferenceCalculator: added new calculator which wraps other calculator for finite-difference forces and strains (MR: !3509)

  • GenericFileIOCalculator fix interaction with SocketIO (MR: !3381)

  • LAMMPS

  • MixingCalculator: remove requirement that mixed calculators have common implemented_properties (MR: !3480)

  • MOPAC: Improve version-number parsing (MR: !3483)

  • MorsePotential: Add stress (by finite differences) (MR: !3485)

  • NWChem: fixed reading files from other directories (MR: !3418)

  • Octopus: Improved IO testing (MR: !3465)

  • ONETEP calculator: allow pseudo_path to be set in config (MR: !3385)

  • Orca: Only parse dipoles if COM is found. (MR: !3426)

  • Quantum Espresso

    • allow arbitrary k-point lists (MR: !3339)

    • support keys from EPW (MR: !3421)

    • Fix path handling when running remote calculations from Windows (MR: !3464)

  • Siesta: support version 5.0 (MR: !3464)

  • Turbomole: fixed formatting of “density convergence” parameter (MR: !3412)

  • VASP

    • Fixed a bug handling the ICHAIN tag from VTST (MR: !3415)

    • Fixed bugs in CHG file writing (MR: !3428) and CHGCAR reading (MR: !3447)

    • Fix parsing POSCAR scale-factor line that includes a comment (MR: !3487)

    • Support use of unknown INCAR keys (MR: !3488)

    • Drop “INCAR created by Atomic Simulation Environment” header (MR: !3488)

    • Drop 1-space indentation of INCAR file (MR: !3488)

    • Use attached atoms if no atom argument provided to ase.calculators.vasp.Vasp.calculate() (MR: !3491)

GUI

  • Refactoring of ase.gui.view.View to improve API for external projects (MR: !3419)

  • Force lines to appear black (MR: !3459)

  • Fix missing Alt+X/Y/Z/1/2/3 shortcuts to set view direction (MR: !3482)

  • Fix incorrect frame number after using Page-Up/Page-Down controls (MR: !3481)

  • Fix incorrect double application of \(repeat\) to \(energy\) in GUI (MR: !3492)

Molecular Dynamics

Optimizers

  • BREAKING The master parameter to each Optimizer is now passed via **kwargs and so becomes keyword-only. (MR: !3424)

  • Pass comm to BFGS and CellAwareBFGS as a step towards cleaner parallelism (MR: !3397)

  • BREAKING Removed deprecated force_consistent option from Optimizer (MR: !3424)

Phonons

Pourbaix (MR: !3280)

  • New module ase.pourbaix written to replace ase.phasediagram.Pourbaix

  • Improved energy definition and diagram generation method

  • Improved visualisation

Spectrum

  • BREAKING ase.spectrum.band_structure.BandStructurePlot: the plot_with_colors() has been removed and its features merged into the plot() method.

Misc

  • Cleaner bandgap description from ase.dft.bandgap.GapInfo (MR: !3451)

Documentation

Testing

  • Remove some dangling open files (MR: !3384)

  • Ensure all test modules are properly packaged (MR: !3489)

Units

  • Added 2022 CODATA values (MR: !3450)

  • Fixed value of vacuum magnetic permeability _mu0 in (non-default) CODATA 2018 (MR: !3486)

Maintenance and dev-ops

Earlier releases

Releases earlier than ASE 3.24.0 do not have separate release notes and changelog. Their changes are only listed in the Release notes.