Wavefunction analysis, made reproducible.
A unified post-processing toolkit for turning quantum-chemistry calculations into traceable, reproducible, review-ready results.
Get started · CLI reference · Validation · Citation
openWFN connects scientific analysis, automation, validation evidence, and research output through one typed calculation model. It works locally through the command line or Python, from individual calculations and high-throughput collections.
Analyze · Automate · Validate · Publish
- Analyze molecular structure, orbitals, electron density, atomic populations, electrostatic potential, vibrational modes/spectra, excited states, and derived properties.
- Automate with stable CLI commands, a typed Python API, structured results, resumable batches, and JSON/CSV exports.
- Validate using explicit capability status, parser provenance, transformations, numerical controls, and fixture-backed evidence.
- Publish durable reports, figures, cube files, structures, and batch manifests.
Stable release 0.11.0
openWFN 0.11.0 integrates native Hirshfeld analysis, vibrational spectroscopy,
and method-general excited-state/UV–Vis post-processing into the public stable
package. Install the exact release with
python -m pip install "openwfn[interop,resources]==0.11.0".
See the release notes.
Stable package status does not make every scientific analysis Validated. The machine-readable validation manifest remains the authoritative capability-status registry:
- ordinary Hirshfeld populations/charges are Validated only for the named H/C/N/O all-electron ten-case scope and fixed tolerances;
- vibrational spectroscopy remains Experimental pending independent external spectroscopy validation;
- excited-state and UV–Vis analyses remain Experimental pending named independent cross-program/method validation.
The release retains the versioned 11-molecule everyday-QC corpus and runs a 110-command bounded workflow/resource matrix against both the built wheel and the package downloaded back from public PyPI.
Hirshfeld population analysis
openwfn calculation.fchk population hirshfeld
Ordinary neutral-pro-atom Hirshfeld analysis reports closure diagnostics and does not renormalize final charges to hide numerical residuals. Unsupported elements, ECP/pseudopotential ambiguity, and ghost-center ambiguity fail explicitly rather than using guessed pro-atoms.
Vibrational spectroscopy
openwfn frequency.log vibrations
openwfn frequency.log spectra ir --fwhm 20 --points 2001 --export ir.csv
openwfn frequency.log spectra raman --export raman.svg
Gaussian Raman activities are preserved as source activities and are not silently converted to experimental Raman intensities. Imaginary frequencies remain signed in source data and are excluded from broadened physical curves with explicit warnings. See the vibrational spectroscopy method page.
Excited states and UV–Vis
openwfn excited.log excited states
openwfn excited.log excited state 1
openwfn excited.log excited dipoles
openwfn excited.log spectra uvvis --fwhm-ev 0.20 --export uvvis.svg
The typed excited-state layer supports the implemented Gaussian, ORCA, and
Q-Chem source adapters while preserving source method detail and explicit
amplitude conventions. UV–Vis broadening is performed in energy space and the
wavelength-domain curve uses the energy-to-wavelength Jacobian rather than
relabeling the same y-array. Missing oscillator strengths are not treated as
zero; dark f=0 states remain valid source states. See
Excited states and UV–Vis.
Install
openWFN supports Python 3.10–3.13.
Install the stable release:
python -m pip install --upgrade openwfn
openwfn --version
Install the exact release when reproducing research:
python -m pip install openwfn==0.11.0
First analysis
openwfn examples install ./openwfn-examples
openwfn ./openwfn-examples/water.fchk doctor
openwfn ./openwfn-examples/water.fchk summary
openwfn ./openwfn-examples/water.fchk orbitals frontier
The same install command also places the versioned 11-molecule release corpus in
./openwfn-examples/everyday-qc/ for reproducible workflow checks.
For your own calculation, replace the example path:
openwfn molecule.fchk summary
Run a collection of calculations with resumable, structured output:
openwfn batch ./calculations \
--analyses summary,frontier \
--output-dir ./results \
--resume
Use JSON when another program will consume the result:
openwfn --format json --output summary.json molecule.fchk summary
Scientific correctness safeguards
openWFN uses source-faithful electronic metadata wherever Gaussian FCHK provides it. ECP and ghost centers use the file's effective nuclear charges instead of blindly substituting atomic numbers, and density validation prefers the source electron-count records. Population and density conservation failures return partial results with warnings rather than presenting inconsistent numbers as clean successes.
For unrestricted calculations, request the spin-complete frontier view with openwfn FILE orbitals frontier --spin all; batch workflows support the same spin selection. Post-HF files explicitly report when the available SCF density is being analyzed rather than implying that a correlated density was used.
The default density spacing of 0.15 bohr is an accuracy/performance tradeoff, not a universal convergence guarantee. Check the returned conservation status and converge spacing/padding for the system and property being reported.
Capability map
| Area | Current capability | Status |
|---|---|---|
| Parsing and structure | FCHK records, molecular state, geometry, topology | Stable |
| Orbitals | Alpha/beta and spin-complete frontier energies and HOMO–LUMO information | Stable interface; fixture-backed regressions |
| Population | Mulliken and symmetric Löwdin populations and charges | Stable interface; conservation checked and fixture-scoped |
| Hirshfeld population | Ordinary neutral-pro-atom H/C/N/O populations/charges | Validated only for the named ten-case all-electron scope |
| Density | Total, alpha, beta, and spin integration and cube export | Validated only for named active validation fixtures and tolerances |
| Electrostatic potential | Nuclear and charge-model point ESP | Stable interface; special-case regressions included |
| Gaussian-integral electronic/total ESP | AO-density Coulomb integrals with independent references | Validated for the eleven-case set |
| Grid electronic/total ESP | Numerical Coulomb evaluation | Experimental |
| Vibrational spectroscopy | Native Gaussian modes, IR intensity, Raman activity, broadened curves, source vectors | Experimental; independent validation pending |
| Excited states / UV–Vis | Gaussian/ORCA/Q-Chem source states, dipoles, oscillator-strength sticks and broadened profiles | Experimental; independent cross-program validation pending |
| Automation | Versioned results, batch manifests, discovery, resume, JSON and CSV | Stable |
| Research reports | HTML/Markdown reports, tables, figures, structures, vibrational/excited-state sections | Stable interface; individual analysis status retained |
| Interactive workbench | Offline workspaces, surfaces, signed geometry readouts, Vibrations and Excited States workspaces | Stable interface; displayed scientific status retained |
| Additional input formats | Optional IOData ingestion and file-specific capabilities | Stable fixture contract; requires the interop extra |
| QC output properties | Source-reported extraction with optional cclib | Experimental; not a complete wavefunction |
| Local MCP | Read-only stdio tools for registered analyses with validated scalar parameters | Stable local interface; no remote service |
“Validated” is deliberately scoped. Review the validation evidence and limitations before research use.
Input support
Version 0.11.0 includes optional interoperability support and the release safety
contracts established on the 0.10 line. See the
0.11.0 release notes.
Install python -m pip install "openwfn[interop]==0.11.0" for additional formats.
The optional reader is pinned to IOData 1.0.1 and has a
25-format ingestion matrix with
capability discovery. Format ingestion does
not imply that every file has orbitals, density, or an applicable analysis.
The cross-format validation compares five water
representations from one originating calculation; it is not broad independent
scientific validation.
Gaussian formatted-checkpoint (.fchk) remains the preferred full-wavefunction
path. Gaussian .chk is a proprietary binary format; openWFN calls Gaussian's
separately installed formchk utility and does not decode it directly.
XYZ, MOL/SDF, and PDB inputs provide structure-only records. The optional
backend also reads structure, periodic, grid, and integral-only formats; use
openwfn FILE capabilities to check the actual data before analysis.
In openWFN 0.11.0, use --input-format FORMAT_ID when a filename is ambiguous
(for example, a GAMESS .dat). A structure without a complete wavefunction gets
a partial summary; it does not get inferred orbitals, density, or electron
counts. Mixed batches can use --format-map and record unsupported files with
reasons in the manifest. A batch exits nonzero if any input fails or is
unsupported. See the batch guide for the
exact contract.
openwfn calculation.chk formchk calculation.fchk
openwfn calculation.fchk convert --to sdf --output molecule.sdf
openwfn calculation.fchk density cube density.cube
Documentation
Output properties preview
Version 0.11.0 can extract source-reported properties from QC text output through the optional cclib reader:
python -m pip install "openwfn[outputs]==0.11.0"
python -m openwfn.cli --format json calculation.out properties
Python exposes the same result through openwfn.read_output(path). See the
output properties preview for units, provenance,
missing-data behavior and the current Experimental validation boundary.
- First analysis
- CLI workflows
- Complete CLI reference
- Python API
- Scientific methods
- Vibrational spectroscopy
- Excited states and UV–Vis
- Validation status
- Optional workbench
- Troubleshooting
Security and privacy
Computations are local, but input and generated artifacts can contain unpublished research. Never post private checkpoint files, credentials, personal filesystem paths, or license details in public issues. Read the security and data-privacy guide.
Development
python -m pip install -e ".[test,docs]"
python -m pytest
python -m ruff check .
python scripts/run_validation.py
python scripts/check_docs.py --root .
python -m mkdocs build --strict
Metadata
Release files for openwfn 0.11.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openwfn-0.11.0.tar.gz | 869.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openwfn-0.11.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.7 MB
Release files / openwfn-0.11.0.tar.gz
| Download URL | openwfn-0.11.0.tar.gz |
|---|---|
| Size | 869.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ddc58ba16a185a3ef295bf60a56ea980320b9005a6b114008da8491daa2a37ed
|
|
BLAKE2b-256 checksum How to use checksums |
7e6745abda6dfeb61df5d8a2ee805ea5841c841571e300d0301d658468869bdc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / openwfn-0.11.0-py3-none-any.whl
| Download URL | openwfn-0.11.0-py3-none-any.whl |
|---|---|
| Size | 875.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6f8fef866de0e950bf944dd524f53ed07c0d68178389242b703effb3f4142368
|
|
BLAKE2b-256 checksum How to use checksums |
f4b02868d8baab88a3c5647a7f9dfab343e1fa63104ad756256d32cac735c1cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency log