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.
- The
ForceField
object has a new methodcompute
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 withtry_move
andaccept_move
to support (relatively) efficient Monte Carlo algorithms with TinyFF. - Basic analysis routines for radial distribution functions and autocorrelation functions.
- Many performance improvements!
- The
ForceField
class requires theNBuild
instance to be provided as a keyword argument. For example:ForceField([LennardJones()], nbuild=NBuildSimple)
. - The
ForceField.__call__
method is replaced byForceField.compute
, which has a different API with a newnderiv=0
arguments. By default, only the energy is computed. You must request forces and pressure explicitly by settingnderiv=1
. The function always returns a list of results, even ifnderiv=0
. - The
PairwiseTerm.compute
(previouslyPairwisePotential.compute
) has a new API: it takes annderiv
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 byPairwiseTerm.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 oftinyff.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 isnatom / 100
.
- The
ForceTerm
base class has been removed.
1.0.0 - 2024-10-10
- Refactor
ForceField
class to facilitate future extensions. - Refactor neighborlist API, to prepare for more efficient implementations.
0.2.2 - 2024-10-09
- Fix leaking of wrapped coordinates when writing PDB file.
0.2.1 - 2024-10-08
- Fix bug in
PairwiseForceField
class: usermax
only, neverrcut
. - Fix version import.
- Fix pressure-related terminology.
0.2.0 - 2024-10-07
- Add mandatory
rcut
option tobuild_random_cell
.
0.1.0 - 2024-10-06
- Add a
stride
option to the trajectory writers. - Add method
dump_single
method toPDBWriter
to write one-off file with a single snapshot.
- 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 inNPYWriter
.
0.0.0 - 2024-10-06
Initial release. See README.md for a description of all features.