A pure-python project to generate input files for various common computational chemistry workflows. This means:
- Generating input structures for
jobflow/ Fireworks- From unified
tomlinputs
- From unified
- ORCA blocks (NEB, geometry scans, extras) and eOn renderers via Jinja templates
- Shared units and helpers with
rgpycrumbs(rgpycrumbs>=1.3)
This is a spin-off from wailord (here) which is meant to handle aggregated
runs in a specific workflow, while pychum is meant to generate single runs.
It is also a companion to chemparseplot (v1.8+ recommended) which provides
uniform visualizations for the outputs of various computational chemistry
programs. Install with pip install pychum (Python ≥3.10); develop with pixi run -e test test or uv sync --extra test.
pychum is part of the rgpycrumbs suite of interlinked libraries.
- Jobflow support
- Along with Fireworks
- Unit aware conversions
- Via
pint
- Via
- NEB calculations
- ORCA
- EON
- Single point calculations
- ORCA
- EON
I needed to run a bunch of systems. jobflow / Fireworks / AiiDA were ideal,
until I realized only VASP is really well supported by them.
Also there were some minor problems with the ORCA input parser…
- It chokes on multiple
#symbols, so# MaxIter 50 # somethingwill error out onSOMETHING - No real ordering or syntax highlighting in major IDEs
Along with other minor inconveniences which make for enough friction over time to necessitate this library.
The simplest usage is via the CLI:
uv run pychum --help
# Or alternatively
python -m pychum.cli --help
Before writing tests and incorporating the functions into the CLI it is helpful to often visualize the intermediate steps. For this we can setup a complete development environment including the notebook server.
uv sync --all-extras
uv run jupyter lab --ServerApp.allow_remote_access=1 \
--ServerApp.open_browser=False --port=8889
Then go through the nb folder notebooks.
Changes are to be made in the following files under the pychum/engine/orca/ folder:
- The relevant
.jinjafile in the_blocksdirectory - The configuration loading mechanism in
config_loader.py - The
dataclassesfolder - A sample test
.tomlfile undertests/test_orca
While working on this, it may be instructive to use the nb folder notebooks.
Also all PRs must include a full test suite for the new blocks.
The readme can be constructed via:
./scripts/org_to_md.sh readme_src.org readme.md
MIT. However, this is an academic resource, so please cite as much as possible via:
- The Zenodo DOI for general use.
- The
wailordpaper for ORCA usage

