Changelog¶
All notable changes to this project will be documented in this file.
The format is based on a mixture of Keep a Changelog and Common Changelog. This project adheres to Semantic Versioning, with the exception that minor releases may include breaking changes.
Unreleased¶
0.6.0 - 2026-07-06¶
Added¶
added analytical noise characterization module and digital twin pipeline ([#288]) (@aleramos119, @aaronleesander)
added memory characterization module for analyzing non-Markovian processes (#482) (@aaronleesander)
added an MPO constructor for static one- and two-ion trapped-ion Hamiltonians in the position basis (#476) (@linusschulte)
added orthogonality center tracking (#477) (@aaronleesander)
extended get_state functionality to Lindblad (#475) (@aaronleesander)
extended EquivalenceChecker output to include entropy and the resulting diff data structure (#364) (@yiranwang-phys)
OpenQASM2 and 3 files can now be read directly by the Simulator and EquivalenceChecker (#464) (@Marerido)
improved Qiskit gate compatibility with matrix fallback (#464) (@aaronleesander)
added MPO zip-up as default long-range gate application method (#449) (@aaronleesander)
parallelized MPO equivalence checker (#448) (@aaronleesander)
added tebd/hybrid/tdvp options for circuit simulation (#441) (@aaronleesander)
added Krylov tolerance as high-level parameter (#439) (@aaronleesander)
added accuracy presets to simulation parameters (#438) (@aaronleesander)
added
Simulatorclass that owns execution-side configuration and dispatches to all simulation backends, and aResultdataclass returned bySimulator.run(#430) (@aaronleesander)added linalg submodule to open a new path for optimizations and stop BLAS thread oversubscription for stability (#429) (@aaronleesander)
added high-level State and Hamiltonian classes at user-facing level (#426) (@aaronleesander)
added Fermionic and Jordan-Wigner MPO encodings of 1D Fermi-Hubbard model (#220) (@thilomueller)
added deterministic ensemble evolution with optional autocorrelator and two-time correlator outputs, including periodic-wrap two-site observable support on
(L-1, 0)(#409) (@Gauthameshwar)
Changed¶
added trapped-ion position-grid guide and
hamiltoniansfactory section (#476) (@linusschulte)simplified user-facing top-level imports (#467) (@aaronleesander)
updated documentation structure and content (#465) (@aaronleesander)
changed analog simulation default mode to 2TDVP (#458) (@aaronleesander)
overhauled TDVP backend (#457) (@aaronleesander)
changed default to TEBD in digital circuit simulation (#445) (@aaronleesander)
refactored public API to use Simulator, Result, and EquivalenceChecker classes (#430) (@aaronleesander)
sped up and stabilized test suite (#428) (@aaronleesander)
changed
simulator.runto acceptState | list[State]andHamiltonianfor analog simulations instead ofMPS/MPO(#422) (@aaronleesander)changed solver to representation and updated noise-free simulation paths (#422) (@aaronleesander)
Removed¶
removed the free
mqt.yaqs.simulator.runfunction; call sites must migrate toSimulator(...).run(...)(#430) (@aaronleesander)removed
show_progressand (unused)num_threadskeyword arguments fromAnalogSimParams,StrongSimParams, andWeakSimParams; passshow_progresstoSimulatorinstead (#430) (@aaronleesander)
Fixed¶
fixed mcwf/lindblad ordering not matching tjm (#481) (@aaronleesander)
added regression tests for tjm and mcwf jump probabilities (#479) (@aaronleesander)
fixed NoiseModel factor order when two-site indices are normalized (#396) (@aleramos119)
refactored observable handling in simulator to preserve user order (#447) (@aaronleesander)
added tests to ensure qubit ordering matches Qiskit (#446) (@aaronleesander)
minor cleanup (#420) (@aaronleesander)
0.5.0 - 2026-05-12¶
Added¶
added
MPS(..., state="haar-random")initializer using Haar-random isometries with optional bond-dimension cap viapad(#400) (@Gauthameshwar)added process tomography for non-Markovian noise (#344) (@aaronleesander)
added ability to measure in X or Y basis (#339) (@aaronleesander)
added Arnoldi iteration as alternative to Lanczos method (#338) (@aaronleesander)
added Monte Carlo Wavefunction solver (#333) (@aaronleesander)
added Lindblad solver for small systems (#330) (@aaronleesander)
Noise model strengths can now be sampled from a normal distribution (#329) (@aaronleesander)
Changed¶
changed Lindblad and MCWF solvers to use sparse implementation (#338) (@aaronleesander)
Fixed¶
fixed numba attempting to parallelize in already parallelized processes (#337) (@aaronleesander)
fixed potential memory leak in parallelization (#336) (@aaronleesander)
0.4.0 - 2026-02-05¶
Added¶
added ability to schedule jumps (#319) (@aaronleesander)
added multi-threading setting for noise-free ones (#316) (@aaronleesander)
Minor improvements to TDVP performance (#311) (@aaronleesander)
⚡️ Improve Lanczos iteration and use numba for significant speedup (#310) (@aaronleesander)
Changed¶
♻️ Change Pauli summation to use finite state machine construction (#308) (@aaronleesander)
🔧 Replace
mypywithty(#304) (@denialhaag)
Removed¶
👷♂️ Stop testing on x86 macOS systems (#310) (@aaronleesander)
0.3.3 - 2026-01-12¶
Added¶
updated bib and readme with Nature Communications publication (#298) (@aaronleesander)
updates MPO class to allow construction of arbitrary Pauli Hamiltonians (#216) ([@aaronleesander, @thilomueller])
added faster paths for TDVP dense effective Hamiltonian (#280) (@aaronleesander)
added more stable and faster SVD and QR implementation (#278) (@aaronleesander)
TDVP now utilizes a dense Hamiltonian for small tensor sizes (adjusted by global variable DENSE_THRESHOLD) (#261) (@aaronleesander)
Updated readability of TDVP subfunctions and Lanczos method (#261) (@aaronleesander)
Fixed¶
Fixed bug where two-site dissipative processes were computed in loop (#290) (@aaronleesander)
Fixed a truncation bug in TDVP sometimes leading to over-truncation (#274) (@aaronleesander)
Updated Lanczos method’s vdot order to match mathematical expectations (#261) (@aaronleesander)
0.3.2 - 2025-10-16¶
If you are upgrading: please see UPGRADING.md.
Added¶
✨ Make it possible to return final state without setting dummy observables (#214) (@aaronleesander)
👷 Enable testing on Python 3.14 (#212) (@denialhaag)
Removed¶
🔥 Drop support for Python 3.9 (#180) (@denialhaag)
Fixed¶
🐛 Fix project bar of simulator (#213) (@aaronleesander)
0.3.1 - 2025-08-29¶
📚 Refer to the GitHub Release Notes for previous changelogs.