Changelog#
Git master branch#
Version 3.25.0#
I/O#
Moved Postgres, MariaDB and MySQL backends to separate project: 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()andwrite_castep_md()(MR: !3229)Fixed \(:mod:`ase.data.pubchem\) module to convert
#in SMILES to HEX%23for 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.Tersoffhas been added. This is a Python implementation of a LAMMPS-style Tersoff interatomic potential. Parameters may be passed directly to the calculator as aase.calculators.tersoff.TersoffParametersobject, or the Calculator may be constructed from a LAMMPS-style file using itsfrom_lammpsclassmethod. (MR: !3502)
Optimizers#
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()andlazymethod()since Python now providesfunctools.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).
PlottingVariablestowards rotating the camera rather than the atoms (MR: !2895).
Version 3.24.0#
Requirements#
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). Thenormargument toget_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
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 (MR: !3485)
NWChem: fixed reading files from other directories (MR: !3418)
Octopus: Improved IO testing (MR: !3465)
ONETEP calculator: allow
pseudo_pathto be set in config (MR: !3385)Orca: Only parse dipoles if COM is found. (MR: !3426)
Quantum Espresso
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.Viewto 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_temperatureto work with constraints (MR: !3393)Add
**kwargsto MolecularDynamics, passed to parent Dynamics (MR: !3403)Support modern Numpy PRNGs in Andersen thermostat (MR: !3454)
Optimizers#
Phonons#
Fix scaling of phonon amplitudes (MR: !3438)
Implement atom-projected PDOS, deprecate
ase.phonons.Phonons.dos()in favour ofase.phonons.Phonons.get_dos()(MR: !3460)Suppress warnings about imaginary frequencies unless
ase.phonons.Phonons.get_dos()is called with new parameterverbose=True(MR: !3461)
Pourbaix (MR: !3280)#
New module
ase.pourbaixwritten to replacease.phasediagram.PourbaixImproved energy definition and diagram generation method
Improved visualisation
Spectrum#
BREAKING
ase.spectrum.band_structure.BandStructurePlot: theplot_with_colors()has been removed and its features merged into theplot()method.
Misc#
Cleaner bandgap description from
ase.dft.bandgap.GapInfo(MR: !3451)
Documentation#
Testing#
Units#
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.