Releases: JuliaMolSim/Molly.jl
Releases · JuliaMolSim/Molly.jl
v0.21.2
v0.21.1
Non-breaking changes
- Compatibility bounds are updated for various packages.
Bug fixes
- A bug in boundary gradient calculation is fixed.
v0.21.0
Breaking changes
- Observable functions for
GeneralObservableLogger
now need to accept arbitrary keyword arguments, for example by addingkwargs...
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
andcurrent_potential_energy
can be used in logging functions to reuse properties calculated in the simulation step. They default tonothing
when the properties are not available.- Interaction types are allowed to be different for each replica in a
ReplicaSystem
.
Performance improvements
PotentialEnergyLogger
,TotalEnergyLogger
andForceLogger
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
Breaking changes
apply_constraints!
andSHAKE
are removed as part of the changes to constraints.- The
System
constructor for AtomsBase.jl systems is changed to takeforce_units
andenergy_units
as keyword arguments rather than positional arguments. The defaults are consistent with the rest of Molly. velocity_autocorr
is removed sinceAutoCorrelationLogger
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
andcheck_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
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 aSystem
.ImplicitSolventOBC
,ImplicitSolventGBN2
andMullerBrown
are changed to be calculators. - The type parameters of
System
andReplicaSystem
are changed.
New features
forces
,accelerations
,potential_energy
,total_energy
,virial
andpressure
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
andReplicaSystem
now have adata
field, set with thedata
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
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
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
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
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
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 thanu"u"
. The default Boltzmann constantk
is chosen based on theenergy_units
given to aSystem
.
New features
- A constructor for
System
is added to convert from an AtomsBase.jlAbstractSystem
. - 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.