Skip to main content

Quantum Color Centers Analysis Toolbox

Project description

Quantum Color Centers Analysis Toolbox

Logo

DOI Documentation PyPI PyPI Downloads

Pylint Ruff Tests

QuaCCAToo is a Python library for simulating and analyzing spin dynamics of color centers for quantum technology applications. The library provides several predefined pulsed sequences, analysis methods and quantum systems divided into four integrated modules: qsys, pulsed_sim, analysis and exp_data. The systems' time evolution under pulsed experiments are calculated through quantum master equations based on the provided Hamiltonian, with realistic pulses in the laboratory frame without rotating frame approximations. The software is built on top of QuTip, inheriting its object-oriented framework and the Qobj class. The code is continously improved and maintained using pytest, ruff, pylint and ty.

For learning more about the package, we recommend first checking the tutorials section.

If you used QuaCCAToo in your work, please cite Digital Twin Simulations Toolbox of the Nitrogen-Vacancy Center in Diamond.

Links

Installation

We strongly recommend using a virtual environment (use whichever tool like venv/conda/uv that you prefer) so that the system Python remains untouched.

pip install quaccatoo

Check here for detailed installation instructions.

Note for Windows/macOS Users

QuaCCAToo is best optimized to run on GNU/Linux systems. More specifically, the parallel_map method from QuTip, which QuaCCAToo heavily relies on, does not work properly on Windows. This leads to severe slow downs in simulations and even crashes in some hardware. macOS machines have not been tested by us.

Featured In

  • L. Tsunaki, A. Singh, S. Trofimov, & B. Naydenov. (2025). Digital Twin Simulations Toolbox of the Nitrogen-Vacancy Center in Diamond. Advanced Quantum Technologies, e00691. doi: 10.1002/qute.202500691.
  • L. Tsunaki, A. Singh, K. Volkova, S. Trofimov, T. Pregnolato, T. Schröder, & B. Naydenov. (2025). Ambiguous resonances in multipulse quantum sensing with nitrogen-vacancy centers. Physical Review A, 111(2), 022606. doi: 10.1103/PhysRevA.111.022606.
  • L. Tsunaki, M. Dotan, K. Volkova, & B. Naydenov. (2025). Quantum gates via dynamical decoupling of a central qubit on IBMQ and 15N-vacancy centers in diamond. Physical Review A, 113, 042627. doi: 0.1103/6st7-qh12.
  • S. Trofimov, C. Thessalonikios, V. Deinhart, A. Spyrantis, L. Tsunaki, K. Volkova, K. Höflich, & B. Naydenov. (2026). Local nanoscale probing of electron spins using NV centers in diamond. 10.1016/j.diamond.2026.113530.

If you used QuaCCAToo in your work, please let us know so we can add it to the list!

Class Hierarchy

QuaCCAToo is an object-oriented package organized with the following classes:

  • QSys defines the quantum system of the problem. It has an obligatory intrinsic internal Hamiltonian $H_0$, optional initial state, observable and a set of collapse operators. On QSys, calculates the eigenstates and eigenvalues of the system and has methods for truncating the systems and adding other spins. QuaCCAToo provides NV as a predefined system for nitrogen vacancy centers in diamonds, more systems will be provided soon.
  • PulsedSim contains the logic for performing the simulation of pulsed experiments upon a QSys object. It has attributes of a pulse sequence containing a set of pulses and free evolutions, control Hamiltonian $H_1$, experiment variable and simulation results. Many predefined common pulse sequences are given in predef_seqs and predef_dd_seqs modules. Different pulse shapes are predefined in the pulse_shapes module.
  • ExpData is a class to load experimental data and perform basic data processing, such as rescaling, subtracting columns or performing polynomial baseline corrections.
  • Analysis can be used either on simulation or experimental results, with a series of methods like for fitting (based on lmfit), Fourier transforms and data comparison. The class can also used for plotting the results in multiple forms, including density matrix histograms and Bloch spheres. Several fit models and functions relevant for analysis of color centers are provided in the fit_functions module.

Class diagram

Contribution guidelines

Any contribution or bug report are welcome.

  • To contribute, fork the main branch and make a pull request.
  • We use hatch/hatchling as the build backend. The other development dependencies include pytest, ruff, pylint and ty. They can be installed by running pip install -e '.[dev]' from within the cloned repository. See here for details.
  • Properly document everything in details following the numpy docstring format.
  • Test your branch by running pytest and the tutorial notebooks.
  • Add corresponding tests to every new method, function or functionality in general.
  • Run pylint quaccatoo within the directory to check for code quality and ensure no new warnings are introduced.
  • Please pay attention to linter warnings (ruff check) and format your code with ruff format. Also recommended is to run ty check for type hints.
  • Module level refactors require corresponding changes in the sphinx setup, too.
  • Use US-English, not British-English. Eg: analyze instead of analyse, color instead of colour, center instead of centre.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quaccatoo-1.2.0.tar.gz (68.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quaccatoo-1.2.0-py3-none-any.whl (60.6 kB view details)

Uploaded Python 3

File details

Details for the file quaccatoo-1.2.0.tar.gz.

File metadata

  • Download URL: quaccatoo-1.2.0.tar.gz
  • Upload date:
  • Size: 68.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.5 cpython/3.14.5 HTTPX/0.28.1

File hashes

Hashes for quaccatoo-1.2.0.tar.gz
Algorithm Hash digest
SHA256 e9cd52770fb78e0a6fe6b19d07b2364f07d2699f2d26b4f3d7bc909a3ff2c80f
MD5 ee0628ac59691fb1f83a5723d1ab20bb
BLAKE2b-256 d4d98091d972d37e4ae30b28d2747c2ed4d920859c73d580d7cd0ecf13b8d07b

See more details on using hashes here.

File details

Details for the file quaccatoo-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: quaccatoo-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 60.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.5 cpython/3.14.5 HTTPX/0.28.1

File hashes

Hashes for quaccatoo-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 20c73356cd4229f8174807ce8089e38092041391164c380394bde8c4faaa4909
MD5 ef7cc10f420d87a2b0eed3a95bd90437
BLAKE2b-256 ebe576faf375c35a3ad193fb52201f8ea669e8c4ec4f84514da449043b4e68fd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page