index | modules | gitlab | page source

# Detailed release notes

## Git master branch

### Requirements

- The minimum supported Python version has increased to 3.9 (MR: !3473)

- Support numpy 2 (MR: !3398, MR: !3400, MR: !3402)

- Support spglib 2.5.0 (MR: !3452)

### Atoms

- New method `get_number_of_degrees_of_freedom()` (MR: !3380)

- New methods `get_kinetic_stress()`, `get_kinetic_stresses()` (MR: !3362)

- Prevent truncation when printing Atoms objects with 1000 or more atoms (MR: !2518)

### DB

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

### Structure tools

- Add atom tagging to `ase.build.general_surface` (MR: !2773)

- Fix bug where code could return the wrong lattice when trying to fix the handedness of a 2D lattice (MR: !3387)

- Major improvements to `find_optimal_cell_shape()`: improve target metric; ensure rotationally invariant results; avoid negative determinants; improved performance via vectorisation (MR: !3404, MR: !3441, MR: !3474). The `norm` argument to `get_deviation_from_optimal_cell_shape()` is now deprecated.

- Performance improvements to `ase.spacegroup.spacegroup.Spacegroup` (MR: !3434, MR: !3439, MR: !3448)

- Deprecated `ase.spacegroup.spacegroup.get_spacegroup()` as results can be misleading (MR: !3455).

### 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

  - make free_energy the default energy (MR: !3406)

  - add legacy DFPT parser hook (MR: !3495)

- 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

  - fixed a bug reading dump file with only one atom (MR: !3423)

  - support initial charges (MR: !2846, MR: !3431)

- 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

- Added Bussi thermostat `ase.md.bussi.Bussi` (MR: !3350)

- Added Nose-Hoover chain NVT thermostat `ase.md.nose_hoover_chain.NoseHooverChainNVT` (MR: !3508)

- Improve `force_temperature` to work with constraints (MR: !3393)

- Add `**kwargs` to MolecularDynamics, passed to parent Dynamics (MR: !3403)

- Support modern Numpy PRNGs in Andersen thermostat (MR: !3454)

### 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

- Fix scaling of phonon amplitudes (MR: !3438)

- Implement atom-projected PDOS, deprecate `ase.phonons.Phonons.dos()` in favour of `ase.phonons.Phonons.get_dos()` (MR: !3460)

- Suppress warnings about imaginary frequencies unless `ase.phonons.Phonons.get_dos()` is called with new parameter `verbose=True` (MR: !3461)

### 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

- The “legacy functionality” section has been removed (MR: !3386)

- Other minor improvements and additions (MR: !2520, MR: !3377, MR: !3388, MR: !3389, MR: !3394, MR: !3395, MR: !3407, MR: !3413, MR: !3416, MR: !3446, MR: !3458, MR: !3468)

### 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

- Set up ruff linter (MR: !3392, MR: !3420)

- Further linting (MR: !3396, MR: !3425, MR: !3430, MR: !3433, MR: !3469, MR: !3520)

- Refactoring of `ase.build.bulk` (MR: !3390), `ase.spacegroup.spacegroup` (MR: !3429)