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.

Metadata

Release files for atomic-charges-step 2026.8.7

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

Source distribution (sdist)

Source distribution for atomic-charges-step 2026.8.7
File Size Uploaded
atomic_charges_step-2026.8.7.tar.gz 327.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for atomic-charges-step 2026.8.7
File Interpreter ABI Platform
atomic_charges_step-2026.8.7-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 359.8 kB

Release files / atomic_charges_step-2026.8.7.tar.gz

Download URL atomic_charges_step-2026.8.7.tar.gz
Size 327.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b302904857cb11ebdd3d8d20984055d4b829f36c5d5dd5a6f169bd0295fd7c24
BLAKE2b-256 checksum
How to use checksums
e4155d910d8ddee96d15fae4d057873eeb279f4fd1b2ea450bf1724e83285bf6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / atomic_charges_step-2026.8.7-py2.py3-none-any.whl

Download URL atomic_charges_step-2026.8.7-py2.py3-none-any.whl
Size 32.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
4edf9326caaac93e3810b10e14e9b1b83e834ba22a7e0f31b5eaf782b37fb5fb
BLAKE2b-256 checksum
How to use checksums
057b8ab14d35d0ec5c5001982594f81f2e753cb9824c663ba2fd4a17724a5e1b
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.8.7 This release

2 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