seamm-ff-util 2025.8.1
seamm_ff_util
License: BSD-3-Clause
Keywords: seamm_ff_util

==========================
SEAMM Forcefield Utilities
==========================

.. image:: https://img.shields.io/travis/molssi-seamm/seamm_ff_util.svg
   :target: https://travis-ci.org/molssi-seamm/seamm_ff_util
   :alt: Build Status

.. image:: https://codecov.io/gh/molssi-seamm/seamm_ff_util/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/molssi-seamm/seamm_ff_util
   :alt: Code Coverage

.. image:: https://github.com/molssi-seamm/seamm_ff_util/workflows/CodeQL/badge.svg
   :target: https://github.com/molssi-seamm/seamm_ff_util/security/code-scanning
   :alt: Code Quality

.. image:: https://github.com/molssi-seamm/seamm_ff_util/workflows/Release/badge.svg
   :target: https://molssi-seamm.github.io/seamm_ff_util/index.html
   :alt: Documentation Status

.. image:: https://img.shields.io/pypi/v/seamm_ff_util.svg
   :target: https://pypi.python.org/pypi/seamm_ff_util
   :alt: PyPi VERSION

The SEAMM Forcefield Utilities read and write forcefields, assigns them to molecules, and creates energy expressions.


* Free software: BSD license
* Documentation: https://seamm_ff_util.readthedocs.io.


Features
--------

* TODO

Credits
-------

This package was created with Cookiecutter_ and the `molssi-seamm/cookiecutter-seamm-plugin`_ project template.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`molssi-seamm/cookiecutter-seamm-plugin`: https://github.com/molssi-seamm/cookiecutter-seamm-plugin

Developed by the Molecular Sciences Software Institute (MolSSI_),
which receives funding from the `National Science Foundation`_ under
award OAC-1547580 and CHE-2136142.

.. _MolSSI: https://www.molssi.org
.. _`National Science Foundation`: https://www.nsf.gov


=======
History
=======
2025.8.1 -- Bugfix: tabulated angles cause a crash
   * The changes for tracking the original parameters introduced an error into the code
     handling tabulated angles. This is now fixed.
   * Added the element symbol corresponding to the atom type in the energy
     expression. This allows LAMMPS to add the correct element symbol to trajectories,
     if desired.

2025.5.26 -- Track more of the original parameters
   * Added tracking of the original parameters for cross terms like bond-bond terms.
   * Improved chacking for duplicate parameters to remove most duplicates, except for
     class 2 forcefields, where the cross terms must have the same terms as the
     diagonal time, i.e. angle and bond-bond terms must share a list of angles.

2025.5.23 -- Added charges in templates and tracking original parameters
   * Added charges in templates, which override any assignment from the bond increments
     or charges for the atom types.
   * Track the original parameters before any unit conversions or other transformations,
     so that they can be printed along with the actual parameters used by e.g. LAMMPS.
   * Improved checking for duplicate parameters in the energy expression.

2025.4.7 -- Added ability to handle ReaxFF forcefields
   * Added code to handle ReaxFF forcefield.
   * Added seamm-reaxff utility to import forcefields in the standard Reax/LAMMPS format
     into SEAMM's format.
   * Added handling of a metadata section in the forcefields to be able to support the
     various types of forcefields.

2025.3.16 -- Added handling of Dreiding forcefield.

2025.1.21 -- Bugfix: torsions in 3-membered rings
   * The code allowed the torsion around a 3-membered ring which had the same atom at
     each end of the torsion. This is not a valid torsion, and the code now checks for
     it and removes it.

2024.6.27 -- Support for local forcefield files
   * Added support for local forcefields files which can either be used directly
     or included by existing files.
   * Added URI handler to support local files
   * Added support for BibTex references in forcefield files, and automatically adding
     citations to the Reference Handler.
   * Add 'fragments' section to forcefields for atom-typing via a fragment or entire
     molecule. This supports using LigParGen for OPLS-AA forcefields.

2023.8.27 -- Added support for tabulated angle potentials

2023.4.6 -- Added support for Buckingham potentials
   * Also improved unit handling across all terms in forcefields.

2023.3.5 -- Added molecule numbers for LAMMPS input
   * Added the molecule number for each atom for when using LAMMPS

2023.2.6 -- Added handling of OPLS-AA forcefield
   * Added handling of the OPLS-AA forcefield
   * Moved documentation to new MolSSI theme and diátaxis layout
   * Cleaned up internal dependencies and workflows for GitHub

2022.5.29 -- Fixed bug typing larger systems
   * Fixed bug with atom typing due to limit in matches. by @paulsaxe in #59

2022.2.3 -- Fixed bug due to changing ordering of atoms.
   * Fixed bug with atom type assignment due to changed order of atoms. In the process,
     switch to using RDKit directly, which is both more direct and avoids the ordering
     problem.

0.1.0 -- (2017-12-05)
   * First release on PyPI.