Skip to main content

SEAMM Atomic Charges Plug-in

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

A SEAMM plug-in for computing atomic (partial) charges from a converged electron density.

Features

This plug-in is a post-processing step: it runs after a quantum-chemistry step (VASP, Gaussian, Psi4, ORCA, …) that has produced an electron density, reads that density, and uses a real-space density-partitioning program to assign a partial charge to each atom. The charges are written back into the configuration as a labeled charge set (e.g. charges_DDEC6) so several schemes can coexist on the same structure.

Supported methods

  • DDEC6 (via the Chargemol program) – ESP-faithful, chemically transferable charges that work for molecular and periodic systems, including metals. The recommended general-purpose / force-field charge.

  • Bader / QTAIM (via the Henkelman bader code) – a rigorous topological partition of the density, the charge solid-state users expect.

Both consume a real-space density grid (or cube), so they apply equally to periodic and molecular calculations. They need the all-electron density from the upstream step (for VASP, CHGCAR plus AECCAR0/AECCAR2 via LAECHG=.TRUE.).

Acknowledgements

Developed by the Molecular Sciences Software Institute (MolSSI), which receives funding from the National Science Foundation under award CHE-2136142.

History

2026.8.7 – Bugfix: DDEC6 now works for charged systems (ions)
  • DDEC6 via Chargemol previously failed for any charged structure (an ion, or a charged BSSE fragment): ORCA’s orca_2aim always writes <Net Charge> 0.0 in the .wfx it produces, regardless of the molecule’s actual charge – confirmed on ORCA 6.1.1 for both a cation (Na+) and an anion (Cl-), even though the wfx’s own electron count is correct. Chargemol cross-checks the two and refuses to run, reporting “the quantum chemistry program you used to generate the wfx file contains a bug.” This step now corrects the <Net Charge> field to the structure’s actual charge (already known from the configuration) before handing the file to Chargemol, working around the ORCA bug rather than waiting on a fix from the vendor.

  • Right-clicking the node in the graphical flowchart editor did nothing – no Edit/Delete menu – because the Tk node never overrode right_click to actually post the popup menu (the base class only builds it; a subclass must call tk_popup itself). Added the same right_click override the cookiecutter template and other steps already use.

2026.7.14 – Control Chargemol’s core (OpenMP thread) count
  • The ncores option in the [atomic-charges-step] configuration is now wired to Chargemol via OMP_NUM_THREADS (it was previously documented but had no effect). ‘available’ (default) uses all cores the job/machine provides; an integer caps it. This matters most when running directly on a machine (no queuing system), where Chargemol’s OpenMP would otherwise use every core on the node.

  • The output now reports the number of threads used, and a line at the end of the step with the wall-clock time in seconds.

2026.7.13.1 – Bugfix: clearer Chargemol failures; skip incomplete densities
  • When Chargemol fails to produce charges, the error now quotes its real log (<input>.output) instead of the empty stdout.txt – so causes like “Could not find a suitable reference density” are shown directly. Chargemol writes its diagnostics to that log, not to stdout.

  • The atomic-densities directory is now used only if it actually contains the DDEC6 reference densities (c2_*.txt); an empty or incomplete directory is skipped in favor of the complete set bundled in the seamm-chargemol conda environment. This avoids a silent Chargemol failure when the configured directory exists but is not populated.

  • The bundled densities are now located by asking conda for the environment’s actual prefix, not by deriving it from the conda executable’s path. This fixes non-standard/HPC conda layouts where the derivation was wrong, so the densities silently were not found and DDEC6 failed.

2026.7.13 – Option to set the charges on the structure
  • New Set as the atomic charges on the structure option (default off). When on, the computed charges are also written to the structure’s standard per-atom charge attribute (in addition to the labeled charges_<label> column), so they travel with the structure – e.g. to write them to an extended-XYZ (extxyz) file for machine-learning training.

2026.6.29 – Run Chargemol from a dedicated conda environment
  • The installer now creates a ‘seamm-chargemol’ conda environment containing Chargemol (for DDEC6), and the step runs Chargemol in that environment – no hand-built installation or PATH setup is needed. Run ‘atomic-charges-step-installer install’ to set it up.

  • The reference atomic densities are found automatically inside the seamm-chargemol environment; the ‘DDEC reference densities’ setting is now needed only to point at a different copy.

2026.6.28 – Citations, charge normalization, and GUI fixes
  • The DDEC6 (Manz & Limas) and Bader (Henkelman) methodology papers are now cited for the charge method that is run.

  • The charges are normalized to the known net charge of the system with a small, reported uniform shift; this can be turned off.

  • Accepts an analytic wavefunction (.wfx) from a preceding ORCA step, in addition to Gaussian, for molecular DDEC6.

  • Fixed: the Results tab in the GUI was empty and selected results were not saved. The atomic charges, net charge, residual, and method are now listed and stored.

  • The charge method now offers Bader only when a density grid is available (a periodic/VASP density or explicit files); molecular densities offer DDEC6. Bader reports a clear message that it awaits periodic support.

2026.6.27 – Initial release of the Atomic Charges step
  • Computes DDEC6 atomic charges (via Chargemol) from a molecular Gaussian wavefunction (.wfx), storing them as a labeled charge set on the structure.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

atomic_charges_step-2026.8.7.tar.gz (327.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

atomic_charges_step-2026.8.7-py2.py3-none-any.whl (32.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file atomic_charges_step-2026.8.7.tar.gz.

File metadata

  • Download URL: atomic_charges_step-2026.8.7.tar.gz
  • Upload date:
  • Size: 327.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for atomic_charges_step-2026.8.7.tar.gz
Algorithm Hash digest
SHA256 b302904857cb11ebdd3d8d20984055d4b829f36c5d5dd5a6f169bd0295fd7c24
MD5 b4b950242f8db4aae87f2d9565c48db9
BLAKE2b-256 e4155d910d8ddee96d15fae4d057873eeb279f4fd1b2ea450bf1724e83285bf6

See more details on using hashes here.

File details

Details for the file atomic_charges_step-2026.8.7-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for atomic_charges_step-2026.8.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4edf9326caaac93e3810b10e14e9b1b83e834ba22a7e0f31b5eaf782b37fb5fb
MD5 aac69a38b05ec8d90194d2af2d5dd468
BLAKE2b-256 057b8ab14d35d0ec5c5001982594f81f2e753cb9824c663ba2fd4a17724a5e1b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page