Skip to content

Code

I develop computational tools to push the boundaries of what is possible in kinetic modeling. By connecting atomistic calculations with reaction discovery and evolving reaction networks, I aim to capture chemistry beyond fixed mechanisms and idealized structures.

Research software

OGKMC

Online Graph Kinetic Monte Carlo

  • Python 3.10+
  • ASE compatible
  • Open source

From atomic structures
to reaction kinetics

Build a catalyst, introduce reactants, and discover the elementary steps that connect them to unknown products. OGKMC calculates the energetics and follows the evolving chemistry with kinetic Monte Carlo.

Illustrative workflow

Follow the chemistry

Start with a catalyst and reactants

Build a periodic slab or nanoparticle, or load an existing catalyst. OGKMC constructs gas-phase reactants from SMILES and represents the atomic structure as a connectivity graph.

Catalyst structure · Reactants · Atomic connectivity

Find the chemistry the surface can support

Enumerate adsorption sites and prune unstable placements. Discover adsorption and desorption, with optional diffusion and bond-forming or bond-breaking channels.

Surface placements · Elementary steps · Stability checks

Connect elementary steps to their rates

Use an ASE-compatible calculator for endpoint relaxations and transition-state searches. Derive rates from electronic energies, with optional vibrational free-energy corrections, and reuse matching calculation records.

Energetics · Transition states · Calculation reuse

Let the reaction network grow with the chemistry

Advance the system with kinetic Monte Carlo and expand the network as new surface species appear. Save events, trajectories, and checkpoints for analysis and restart.

Kinetic Monte Carlo · Network expansion · Persistent outputs

A reaction network that grows

Discover adsorption, desorption, diffusion, and bond-changing steps. Expand the network during KMC as new species become available.

Your level of theory

Use ASE-compatible calculators to evaluate structures and transition states, including machine-learning interatomic potentials.

Calculate once

Match local atomic environments as graphs and reuse compatible stored calculations when the same chemistry appears again.

Beyond the trajectory

Trace the chemistry
back to the events

Keep the atomic structures, reaction history, and calculation records behind a run. Analyze product formation and reconstruct mechanisms from the events that actually occurred.

Atomic trajectoriesFollow structures through the simulation

.extxyz

Event historiesInspect reactions, rates, and simulation time

.jsonl

Restart checkpointsContinue a run from its saved state

.pkl

Analysis reportsConnect products with reaction pathways

.html

Work with OGKMC

Your first run starts here

Full quickstart
ogkmc / getting startedSHELL

Create a Python environment

Python 3.10+ · macOS / Linux shell

git clone https://github.com/rjbunting/ogkmc.git
cd ogkmc
python -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[cli]"

Validate, check, then simulate

Save the README’s complete first-run configuration as quickstart.yaml.

ogkmc validate-config quickstart.yaml
ogkmc preflight quickstart.yaml --check-calculator
ogkmc run quickstart.yaml

Turn an event history into a report

Use the output directory from the quickstart configuration.

ogkmc analyze runs/quickstart
ogkmc report runs/quickstart

The quickstart uses ASE’s EMT calculator to check the workflow. Production studies need a calculator appropriate to the chemistry, with any required model files and dependencies installed separately.