Skip to content

Latest commit

 

History

History
114 lines (73 loc) · 3.79 KB

CHANGELOG.md

File metadata and controls

114 lines (73 loc) · 3.79 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

2.0.0 - 2024-10-28

The main changes of this release include support for Monte Carlo algorithms and performance improvements.

Added

  • The ForceField object has a new method compute that can selectively compute the energy only or the energy, forces and the force-contribution to the pressure. This improves the efficiency in applications where derivatives are of interest, e.g. in Monte Carlo simulations.
  • The ForceField object is extended with try_move and accept_move to support (relatively) efficient Monte Carlo algorithms with TinyFF.
  • Basic analysis routines for radial distribution functions and autocorrelation functions.

Changed

  • Many performance improvements!
  • The ForceField class requires the NBuild instance to be provided as a keyword argument. For example: ForceField([LennardJones()], nbuild=NBuildSimple).
  • The ForceField.__call__ method is replaced by ForceField.compute, which has a different API with a new nderiv=0 arguments. By default, only the energy is computed. You must request forces and pressure explicitly by setting nderiv=1. The function always returns a list of results, even if nderiv=0.
  • The PairwiseTerm.compute (previously PairwisePotential.compute) has a new API: it takes an nderiv arguments to decide what is computed (energy or energy and derivative). It returns a list of requested results. By default, only the energy is computed.
  • The ForceTerm.__call__ method has been replaced by PairwiseTerm.compute_nlist. (This method is primarily for internal usage.)
  • Module reorganization to simplify the usage of TinyFF: all relevant functions and classes can be imported from the top-level tinyff package.
  • Module reorganization: all pairwise potentials are now defined in tinyff.pairwise, instead of tinyff.forcefield.
  • The NBuildCellLists has an additional mandatory keyword argument: nbin_approx, which is the approximate number of binds in which the cell is split up. The recommended setting is natom / 100.

Removed

  • The ForceTerm base class has been removed.

1.0.0 - 2024-10-10

Changed

  • Refactor ForceField class to facilitate future extensions.
  • Refactor neighborlist API, to prepare for more efficient implementations.

0.2.2 - 2024-10-09

Fixed

  • Fix leaking of wrapped coordinates when writing PDB file.

0.2.1 - 2024-10-08

Fixed

  • Fix bug in PairwiseForceField class: use rmax only, never rcut.
  • Fix version import.
  • Fix pressure-related terminology.

0.2.0 - 2024-10-07

Changed

  • Add mandatory rcut option to build_random_cell.

0.1.0 - 2024-10-06

Added

  • Add a stride option to the trajectory writers.
  • Add method dump_single method to PDBWriter to write one-off file with a single snapshot.

Changed

  • By default, run only 100 optimization steps in build_random_cell.
  • Wrap atoms back into the cell when writing PDB trajectory files, for nicer visual.
  • Stricter consistency checking between multiple dump calls in NPYWriter.

0.0.0 - 2024-10-06

Initial release. See README.md for a description of all features.