QuaCCAToo: Quantum Color Centers Analysis Toolbox

_images/QuaCCAToo_logo.svg DOI Documentation 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.

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

The documentation for QuaCCAToo is available here. Merge requests welcome at the Github repository!

To see usage examples, check the tutorial notebooks linked here. They contain:

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 (NV_Sys) 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.

_images/class_diagram.svg