Skip to content

Releases: JuliaMolSim/Molly.jl

v0.21.2

17 Oct 13:47
Compare
Choose a tag to compare

Non-breaking changes

  • Updates are made for AtomsBase.jl 0.4. AtomsBase is no longer re-exported.

v0.21.1

08 Jul 15:21
Compare
Choose a tag to compare

Non-breaking changes

  • Compatibility bounds are updated for various packages.

Bug fixes

  • A bug in boundary gradient calculation is fixed.

v0.21.0

30 Apr 13:25
Compare
Choose a tag to compare

Breaking changes

  • Observable functions for GeneralObservableLogger now need to accept arbitrary keyword arguments, for example by adding kwargs... to the function call. This allows the logging changes described below.

Non-breaking changes

  • Support for Julia versions before 1.9 is dropped. A package extension, rather than Requires.jl, is used to provide visualize when GLMakie.jl is imported.

New features

  • ASECalculator is added, allowing Python ASE calculators to be used in Molly. The code is in a package extension available when PythonCall.jl is imported. It is the user's responsibility to have the required Python packages installed. Examples of using MACE and psi4 are given.
  • current_forces and current_potential_energy can be used in logging functions to reuse properties calculated in the simulation step. They default to nothing when the properties are not available.
  • Interaction types are allowed to be different for each replica in a ReplicaSystem.

Performance improvements

  • PotentialEnergyLogger, TotalEnergyLogger and ForceLogger avoid recomputation when the relevant properties are calculated in the simulation step.

Bug fixes

  • MollyCalculator now works in two dimensions and for other floating point types.

v0.20.0

19 Mar 14:14
Compare
Choose a tag to compare

Breaking changes

  • apply_constraints! and SHAKE are removed as part of the changes to constraints.
  • The System constructor for AtomsBase.jl systems is changed to take force_units and energy_units as keyword arguments rather than positional arguments. The defaults are consistent with the rest of Molly.
  • velocity_autocorr is removed since AutoCorrelationLogger provides a more general version of this functionality.

New features

  • Support for constraints is improved and documented with SHAKE_RATTLE allowing the SHAKE and RATTLE algorithms to be applied as appropriate to most simulators. DistanceConstraint, disable_constrained_interactions!, apply_position_constraints!, apply_velocity_constraints!, check_position_constraints and check_velocity_constraints are all added. Constraints are not currently compatible with GPU simulation.
  • Gradients with respect to the boundary can now be calculated in some contexts.

Community

  • A logo is added to the project.

Bug fixes

  • A bug in FENEBond potential energy calculation is fixed.

v0.19.0

08 Feb 12:43
Compare
Choose a tag to compare

Breaking changes

  • General interactions are changed to use the AtomsCalculators.jl interface, allowing simulations to be run with calculators from other packages. A tuple of interactions compatible with the AtomsCalculators.jl interface should be given to general_inters when constructing a System. ImplicitSolventOBC, ImplicitSolventGBN2 and MullerBrown are changed to be calculators.
  • The type parameters of System and ReplicaSystem are changed.

New features

  • forces, accelerations, potential_energy, total_energy, virial and pressure now calculate the neighbors by default when called without neighbors. If they are being reused, neighbors should be pre-computed as before for performance.
  • System and ReplicaSystem now have a data field, set with the data keyword argument to the constructors, that can be used to store arbitrary data. This data can be accessed inside simulators.
  • LennardJonesSoftCore, CoulombSoftCore and custom atom types are now compatible with gradients.

v0.18.4

01 Jan 23:07
Compare
Choose a tag to compare

Bug fixes

  • A bug that prevented system setup on Julia 1.7 is fixed.
  • A type preservation bug in the rdf function is fixed.

v0.18.3

04 Dec 11:23
Compare
Choose a tag to compare

New features

  • Compatibility with AtomsCalculators.jl is added via MollyCalculator.
  • The documentation on setting up systems from structure files is improved.
  • A list of relevant publications is added to the documentation.

Community

  • The Contributor Covenant Code of Conduct is added to the project.

Bug fixes

  • A bug in the NoseHoover simulator when not using units is fixed.

v0.18.2

14 Nov 23:20
Compare
Choose a tag to compare

Performance improvements

  • The vector function for calculating the displacement between coordinates accounting for periodic boundary conditions is made faster, improving simulation performance on CPU and GPU.

v0.18.1

26 Oct 18:41
Compare
Choose a tag to compare

New features

  • Simulation of overdamped Langevin dynamics is added as OverdampedLangevin.

Performance improvements

  • The performance of force calculation without a neighbor list on the GPU is significantly improved.

Bug fixes

  • A bug in compatibility with SimpleCrystals.jl is fixed.

v0.18.0

01 Sep 18:28
Compare
Choose a tag to compare

Breaking changes

  • Molar units are made more consistent throughout the package. If force and energy units are molar then the atomic masses should have a molar dimension, e.g. u"g/mol" rather than u"u". The default Boltzmann constant k is chosen based on the energy_units given to a System.

New features

  • A constructor for System is added to convert from an AtomsBase.jl AbstractSystem.
  • During System setup, checks are made for a consistent unit system and appropriate errors are thrown.
  • Calculation of the hydrodynamic radius is added as hydrodynamic_radius.
  • The charges function is added to give the partial charges of the atoms in a system.

Bug fixes

  • Issues with AtomsBase.jl integration are fixed.