# Release notes ## Unreleased - mmCIF (`.cif`/`.bcif`) structure files can now be used for classical MD with OpenMM XML force fields, not only PDB. mmCIF preserves the full bond graph (including inter-residue bonds such as disulfides) and avoids PDB's 99,999-atom serial limit; it is the preferred structure format for the OpenMM XML route. - `acemd.protocols.setup_equilibration` / `setup_production` now read the `system.yaml` handoff emitted by HTMD `openmm.build`, assembling the input file (structure, ordered parameters, box) automatically. ## 4.0.11 (2025-03-13) - Support for OpenMM XML force field files (in combination with a PDB structure file). - Added support for simulating triclinic boxes (truncated octahedra, rhombic dodecahedra). - Removed `parmed` parsers; ACEMD now depends only on OpenMM. Fixes non-bonded CHARMM forces. ## 4.0.9 (2025-02-25) - Improved protocol setup for CHARMM systems with multiple `prm` files. - Fixed a bug where minimization was incorrectly performed on restarts. - Added support for virtual sites (TIP4P water models). - Massive speed-up for AceFF NNP simulations using CUDA graphs. - Improved solvent handling — no more HMR on rigid water molecules. ## 4.0.1 (2024-12-05) - Added Python setup for equilibration and production protocols. - Fixed incorrect total charge of molecules in NNP/MM simulations. - Documented warnings for NNP/MM on charged molecules. ## 4.0.0 (2024-12-01) - Added support for NNP/MM simulations. - Support for OpenMM 8+. - Added `.yaml` and `.json` input files. - Simplified the input-file options. - New external-force description format. - Added a basic Python API for executing simulations. ## 3.7.3 (2024-01-02) - Fix license checking again. ## 3.7.2 (2023-06-07) - Fix license checking. ## 3.7.1 (2023-04-14) - Fix the reading of `parmfile` when it does not have an extension. - Update MoleculeKit to fix an atom-selection issue when passing a list of integers to a float property. ## 3.7.0 (2023-03-27) - Removed the device and virtualization limits for non-commercial users. - Renamed the package and executable from `acemd3` to `acemd`. The old name still works for backward compatibility. ## 3.6.0 (2023-02-01) - Updated to OpenMM 7.7. - Replaced the old atom-selection code with MoleculeKit (fully compatible with HTMD). - Improved the setup of the implicit solvent. - Improved the configuration-file parser to give better error messages. - Improved license checking and notifications. - Improved documentation. - Fixed the pinning of the CUDA Toolkit package so the latest compatible toolkit is installed. ## 3.5.1 (2022-09-30) - Fix a licensing issue. ## 3.5.0 (2021-09-27) - Updated to OpenMM 7.5.1 and PLUMED 2.7.1. - Implemented support for IBM POWER9 (ppc64le) machines. - Improved CHARMM parameter parser ([CHARMM-GUI](https://www.charmm-gui.org/)-generated files are parsed without errors). - Implemented trajectory output of force and velocities (`trajForceFile` and `trajVelocityFile`). ## 3.4.1 (2021-04-21) - Fix a dependency conflict with HTMD. ## 3.4.0 (2021-03-30) - Updated to OpenMM 7.5.0 and PLUMED 2.7.0. - Improved conda package; started using the conda-forge channel for dependencies. - Refactored license checking and implemented the `--license` argument. - Refactored the CMAP parameter parser and improved error messages. - Switched to the standard PLUMED parser after it was fixed. ## 3.3.0 (2020-06-23) - Implemented PLUMED support. - Updated to OpenMM 7.4.2. - Refactored the PRMTOP parser and improved error messages. - Refactored the command-line parser and improved logging. ## 3.2.4 (2020-04-23) - Fixed a bug in the CHARMM improper dihedrals. - Fixed occasional crashes due to the Boost library. - Fixed the documentation of `fbRefCoor`. ## 3.2.3 (2019-11-12) - Fixed the DCD writer to include the size of a simulation box. - Fixed overwriting/appending of trajectory files. - Fixed `--ngpus` for more than 4 GPUs. ## 3.2.2 (2019-10-08) - Fixed a corruption of the restart file. - Fixed the name of the velocity file (`output.vel.coor` → `output.vel`). ## 3.2.1 (2019-09-20) - Fixed the input-file reader to handle tabs as separators. ## 3.2.0 (2019-08-27) - Implemented the multi-step integrator (`slowPeriod`). - Implemented a DCD trajectory writer. - Uniform input keywords. - Limit restart to the same GPU. - Implemented a trajectory writer for forces (`trajForceFile`). - Implemented a keyword (`stepZero`) to enable output at step 0. - Implemented the `--deterministic` argument. - Refactored code and improved log messages. - Improved testing. - Updated performance benchmarks. - Updated documentation. ## 3.1.2 (2019-06-04) - Fixed a bug in the PDB reader again! ## 3.1.1 (2019-05-08) - Fixed a bug in the PDB reader (only two characters of a residue name were read). ## 3.1.0 (2019-04-18) - Optimised the code for performance. - Implemented the `--precision` argument. - Updated documentation. - Added performance benchmarks. - Fixed a bug in the setup of constraints. - Fixed a bug in the minimizer to handle constraints correctly. ## 3.0.4 (2019-02-27) - Fixed a code to report a correct version. ## 3.0.3 (2019-02-25) - Improved the setup of group restraints. - Improved energy conservation of the simulations. - Enabled the minimizer to switch temporarily to CPU to avoid overflow. - Extended the test suite of the code. - Fixed a bug in the MD loop to run the exact number of steps. - Fixed a bug in the minimizer to write the minimized positions. - Fixed a bug in the minimizer to apply restraints. - Fixed the restart of simulations. ## 3.0.2 (2018-03-28) - Implemented the implicit-solvent model. - Improved package building. - Made the packages self-contained (no dependencies). ## 3.0.1 (2017-12-18) - Fixed a bug in the license validation. ## 3.0.0 (2017-12-12) - Initial release of the new ACEMD.