Introduction

radpair is a Python-based simulation routine for continuous-wave electron paramagnetic resonance (cw-EPR) spectra of singlet-born spin-correlated radical pairs. It uses an analytic solution of the Hamiltonian and a pseudo-secular approximation for the hyperfine couplings, enabling fast computation without numerical diagonalisation of the spin Hamiltonian.

The implementation is based on a Fortran 77 program originally developed for a phd thesis. The Python port preserves the physical model while modernising the code structure and leveraging NumPy and SciPy for vectorised array operations.

Note

A reference to the original thesis and relevant publications will be added here in a future update.

Capabilities

  • Simulation of cw-EPR spectra for radical pairs with up to five anisotropic nuclei groups.

  • Each nuclei group can be assigned as donor or acceptor.

  • Support for the zero-field splitting (ZFS) tensor with parameters D and E, exchange interaction J, and anisotropic g-tensors.

  • Optional interpolation for refined orientation grids.

  • Single-core and multi-core execution via multiprocessing.Pool.

Module Overview

Module

Description

radpair.core

Entry points for single-core (do_simulation) and multi-core (do_simulation_multicore) simulation.

radpair.classes

Matrix class for tensor rotation and Core class representing a group of chemically equivalent nuclei.

radpair.functions

Math helpers: unit conversion, Pascal triangles, tensor rotation, and spherical grid generation.

radpair._wrappers

Decorators for timing, benchmarking, and multi-core parallelisation.