Skip to content

Repository files navigation

Pulse-optimised circuit elements for scalable and noise-resilient quantum chemistry

DOI

This is the source code reproduces the data and figures presented in:

Henrik Gothen, Christopher K. Long, Djamila Hiller, Yunming Qian, Crispin H. W. Barnes, Normann Mertig, and David R. M. Arvidsson-Shukur. Pulse-optimised circuit elements for scalable and noise-resilient quantum chemistry. 2026. doi: https://doi.org/10.48550/arXiv.2606.17357. arXiv: 2606.17357 [quant-ph]

It builds upon a C++ library and several Python liraries developed for the article: Long, C.K., Mayhall, N.J., Economou, S.E. et al. Minimal state-preparation times for silicon spin qubits. npj Quantum Inf 11, 113 (2025) https://doi.org/10.1038/s41534-025-01027-8

Figure 4 Flagship figure of the article (Fig. 4)

Installation

This project uses Poetry for dependency management and requires Python 3.12.

Install Poetry if it is not already available:

pip install poetry

Clone the repository and install the project dependencies:

git clone https://github.com/hgothen/PulseBasedCircuitElementsVQA.git
cd pulsebasedcircuitelementsvqa
poetry install

Commands can be run inside the Poetry environment with:

poetry run <command>

Reproducing the results

The scripts used to generate the data and figures are available as Poetry tasks through poethepoet.

Run tasks with:

poetry run poe <task-name>

for example:

Generate data for flagship figure (Fig. 4)

Generate the single-qubit-excitation data:

poetry run poe generate_data_fig4_sqe

This runs:

python data_generation_fig4.py sqe 2

where the final argument, 2, specifies the number of CPUs used by the data-generation script. The same works for the double qubit excitation. Just replace sqe with dqe. The full set of available tasks can be found in the pyproject.toml.

Full reproduction workflow

To install the environment and reproduce Figure 4 from scratch, run the following commands. I recommend running the data generation commands in seperate terminals and increasing the number of CPUs (in this example: 4) according to availability. I tested this code on an Apple Silicon M3 and the data generation for the double qubit excitation takes 5-6 days using five cores.

poetry install
poetry shell
python data_generation_fig4.py sqe 4
python data_generation_fig4.py dqe 4
python figure_generation_fig4.py

Use the same workflow for the remaining figures.

Updates

This repository will only be updated to fix bugs that prevent reproducing the data presented in the article, to update citations, or if the article is updated. To ensure reproducibility of the article any bugs that are found that have impacted the data in the article will not be fixed unless our article is also updated.

About

A code base to find pulse sequences for a SiMOS quantum processor to produce qubit excitations for variational quantum algorithms.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages