Skip to main content

SEAMM Packmol Plug-in

GitHub pull requests Build Status Code Coverage Code Quality Documentation Status PyPi VERSION

A SEAMM plug-in for building periodic boxes of fluid using Packmol

This plug-in takes the molecule in the current system and creates a periodic box containing many copies of the molecule in order to simulate a fluid.

Features

  • Multiple ways to specify final cell:

    • Size of the cubic cell and density or number of molecules or number of atoms.

    • Volume and density or number of molecules or number of atoms.

    • density and size of the cubic cell or volume or number of molecules or of atoms.

Acknowledgements

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

Developed by the Molecular Sciences Software Institute (MolSSI), which receives funding from the National Science Foundation under awards OAC-1547580 and CHE-2136142

History

2026.10.17 – Bugfix: the packed system had no name
  • The system Packmol makes is now named after what is in it, e.g. “512 H2O, 9 Na+, 9 Cl-”, and its configuration “packed”, rather than left with an empty name that the following steps kept. The structure handling’s choices of names are now applied too; a name given as text may use {composition}. The default configuration name is now “keep current name” rather than a SMILES string of the whole box.

  • Bugfix: the charge of the packed system is an integer; a fractional value broke naming it by SMILES.

2026.10.15 – Bugfix: molecules overlapped across the faces of a periodic cell
  • Packmol’s periodic boundary conditions, used for periodic cells, do not keep molecules apart across the faces of the cell: in a cell of 512 waters, 25 to 53 pairs were closer than 1.8 Å, some at 0.8 Å, so the MD that followed could fail at once with “Lost atoms”. The molecules are now packed 1 Å inside each face, so they are at least 2 Å from those across it.

2026.10.12 – Forcefields from the Model Chemistry step
  • The molecules are typed with a forcefield chosen in a Model Chemistry step (FF@oplsaa, …) as well as with the Forcefield step’s.

  • Requires forcefield-step 2026.10.12.1.

2026.10.10 – Concentrations, documentation, and structures as sources keep their bonds
  • The amount of each fluid molecule can be given as a proportion, a molality (mol/kg of solvent) or a molarity (mol/L), and the proportions by number of molecules or by mass, e.g. 1.0 M LiPF6 in EC:DMC 3:7 by weight. The molecules given as proportions are the solvent. Molarity is not offered when the volume comes from the Ideal Gas Law.

  • The table of what was packed gives the requested and actual amounts of each molecule, its molarity and, for molecules other than the solvent, its molality.

  • New user guide and getting-started pages, with three example flowcharts.

  • Bugfix: with two or more structures from the database as sources (e.g. PF6/initial and LiEC4/initial), every source after the first lost its bonds, so the forcefield could not be assigned (PF6- was seen as a P plus six F atoms). The step also deleted the bonds of every structure in the database. Source structures are now left untouched.

  • Bugfix: rectangular boxes sized from a volume, density or the Ideal Gas Law now have the side ratios given in the dialog; before, they were ignored.

  • Bugfix: the “-” button of a molecule removed the wrong row after an earlier row had been removed.

  • Bugfix: without a packmol.ini the step failed unless SEAMM was installed with conda. It now finds Packmol on the PATH and records it in packmol.ini.

  • A source given only by its configuration name now uses the current system, and a solute’s proportion no longer changes the numbers of atoms or the mass.

  • Flowcharts that get the amount of fluid from the density or the Ideal Gas Law now validate; the unused “gap” parameter says so.

  • Removed the unused Docker image and its release job; the tests now run with the package’s own dependencies, on Python 3.12.

2026.3.1 – Internal: switching from deprecated library pkg_resources to importlib

2026.1.7 – Enhancement: using periodic packing now in Packmol
  • Added support for the PBC boundary conditions now that they are implemented in Packmol. This seems to lead to considerably better packing, particulalrly with periodic solutes like MOF’s and zeolites.

2025.12.19 – Bugfix: initialization of random numbers
  • Added the command to the Packmol input to set the random seed using the system clock so that each run is different.

2025.9.6 – Bugfixes: centering of solute and using variables for compounds
  • Fixed a problem centering a solute in a cubic cell.

  • Fixed problems using variables for the compounds, counts, etc. in the input.

  • Fixed a problem if the number of molecules of a compound is zero. Now it is just ignored.

2025.6.20 – Added support for MACE PyTorch potentials

2025.3.9 – Update for new installer
  • Changes in the installer required changes for codes that installed background codes, like PACKMOL. This update allows PACKMOL to be automatically installed.

2025.1.29 – Bugfixes: executable and SMILES
  • The configuration for the executable was not set up correctly.

  • There was a bug due to change in the SMILES interface for configurations.

2024.7.25 – Bugfix: initial setup of packmol.ini file
  • The initial setup of the packmol.ini file did not add the information for Conda. This release fixes that problem.

2024.6.29 – Bugfix: bonding incorrect in some cases.
  • The use of PDB with Packmol could in some cases lead to multiple bonds in the wrong place. This release fixes that problem.

2024.6.21.2 – Another internal release for Docker.

2024.6.21.1 – Internal release for Docker
  • There was an internal issue creating the Docker image.

2024.6.21 – Switching to RDKit for SMILES
  • Using RDKit for SMILES since we found some issues with OpenBabel, and also the atom typing uses RDKit, so this is more compatible.

2024.3.19 – Updated installer for new scheme
  • packmol-step-installer now uses the new scheme, which supports both Conda and Docker installation.

  • Added seamm-packmol Docker image

2024.1.16 – Adding support for containers
  • Added the ability to work in Docker containers.

2023.9.6 – Using fractional coordinates for periodic systems.
  • By convention, SEAMM is using fractional coordinates for periodic systems. The PACKMOL step was creating periodic structures with Cartesian coordinates, which can be a bit confusing, though it did not affect any reauls. This change fixes the issue.

2023.2.15 – Restructured documentation and moved to new theme.

2022.5.31 – Substantial enhancements

Added ability to solvate molecules and increased the options to include

  • spherical regions

  • cubic and rectangular regions

  • cubic and rectangular unit cells for periodic systems

  • input molecules from any combination of system/configurations and SMILES

  • reworked GUI to be more intuitive.

2021.11.27 – Fixed bug with atom types.

2021.10.25 – Bugfix for problems with ideal gas approach.

2021.8.29 – Multiple different molecules available via SMILES

This release adds

  • the ability to directly generate multiple different molecules from SMILES, giving the stoichiometry for packing into the fluid box.

  • specifying the desired cell with the temperature and pressure, along with one of the volume, length of the box side, number of molecules or number of atoms. This uses the ideal gas law, so will only be reasonable at higher temperatures and lower densities.

Additionally, internally the release adds integration tests to check whether the module works properly in the SEAMM environment.

2021.6.3 – internal change for improvements in parsing the commandline

2021.5.25 – Added installer for Packmol executable.

2021.2.11 (11 February 2021)

  • Updated the README file to give a better description.

  • Updated the short description in setup.py to work with the new installer.

  • Added keywords for better searchability.

2021.2.4 (4 February 2021)

  • Updated for compatibility with the new system classes in MolSystem 2021.2.2 release.

2020.12.5 (5 December 2020)

  • Internal: switching CI from TravisCI to GitHub Actions, and in the process moving documentation from ReadTheDocs to GitHub Pages where it is consolidated with the main SEAMM documentation.

2020.11.2 (2 November 2020)

  • Updated to be compatible with the new command-line argument handling.

2020.10.7 (7 October 2020)

  • Added citations to be printed and stored.

2020.9.29 (29 September 2020)

  • Updated to be compatible with the new system classes in MolSystem.

2020.8.1 (1 August 2020)

  • Fixed bugs in the edit dialog.

0.9 (15 April 2020)

  • General bug fixing and code cleanup.

  • Part of release of all modules.

0.7.0 (17 December 2019)

  • General clean-up of code and output.

  • Part of release of all modules.

v0.3.0 (27 August 2019)

  • First running version with reasonable output.

0.2.0 (13 August 2019)

  • First release on PyPI.

Metadata

Release files for packmol-step 2026.10.17

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for packmol-step 2026.10.17
File Size Uploaded
packmol_step-2026.10.17.tar.gz 337.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for packmol-step 2026.10.17
File Interpreter ABI Platform
packmol_step-2026.10.17-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 367.4 kB

Release files / packmol_step-2026.10.17.tar.gz

Download URL packmol_step-2026.10.17.tar.gz
Size 337.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f726beecf1148407c2e0d32b38ca45ec8f42cc0d60622b8ab0f3d173a1fc8ef2
BLAKE2b-256 checksum
How to use checksums
0fd5847d6364fa53c0e8fa846b24f22de80880dd8b2b10ca021877f55dd1f43d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / packmol_step-2026.10.17-py2.py3-none-any.whl

Download URL packmol_step-2026.10.17-py2.py3-none-any.whl
Size 30.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
5538892a0f660c3243392e7148a2a1d9207dfc8b7b9010e8c8cab8fdb2b8e3b7
BLAKE2b-256 checksum
How to use checksums
f1c99c16a798fdb10646200371ff0a895c013da069bd7fcecba1ed52a6656f7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

2026.10.17 This release

2 release files

0.9

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.3.0

2 release files

0.2.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page