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
Flagship figure of the article (Fig. 4)
This project uses Poetry for dependency management and requires Python 3.12.
Install Poetry if it is not already available:
pip install poetryClone the repository and install the project dependencies:
git clone https://github.com/hgothen/PulseBasedCircuitElementsVQA.git
cd pulsebasedcircuitelementsvqa
poetry installCommands can be run inside the Poetry environment with:
poetry run <command>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 the single-qubit-excitation data:
poetry run poe generate_data_fig4_sqeThis runs:
python data_generation_fig4.py sqe 2where 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.
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.pyUse the same workflow for the remaining figures.
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.