All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add support for Python 3.13
- Add support for the latest Numpy (2.2), SciPy (1.14), and QuTiP (5.0)
- Updated the demos of the tutorial for easy of understanding.
- Updated some comments, typing, arguments, and some other minor changes.
- Changelog updates:
- Reversed the changelog, now the latest version update is at the top of the changelog, instead of previously at the bottom.
- Added the timestamp for the version updates.
- Removed support for Python 3.9
- Add new class BellDiagonalState for Bell Diagonal State.
- Add new Quantum Manager for Bell Diagonal State, i.e., QuantumManagerBellDiagonal.
- Add new class SingleHeralded BSM to support single heralded entanglement generation.
- Add support for time-dependent decoherence for the Bell Diagonal State in Memory class.
- Remove existing handlers in logging before setting the new handler
- Use
Read the Docs
for documentation. Update documentation. Old documentation website becomes obsolete. - Update comments and README.md
- Fix a bug in reservation protocol and routing protocol that may lead to route for src->dst being different than dst->src when the network has same length edges.
- We have an Icon for SeQUeNCe!
pip install sequence
is now available!src
folder is renamed tosequence
- Add
sequence/constants.py
to organize the common constants - Add support for Python 3.12
- Add
pyproject.toml
- Various refactoring, include but not limited to updating variable/method names, moving/deleting code, adding/rewriting comments, and making the code more succinct, etc.
- In README.md, installation with option
--editable
is encouraged. logging
looks better- In
class Reservation
, added attributeentanglement_number
andid
- Update
ResourceReservationProtocol.load_rules()
- Move
utils/json_config_generators/generator_utils.py
tosequence/utils/config_generator.py
- Removed support for Python 3.8
- Removed
setup.py
- Removed
MANIFEST.in
- Moved around and added a few files in the
examples
folder- These are primarily for the IEEE QCE 2023 conference
- Modified the topology output of the GUI to be compatible with new topology upgrades
- Several bug fixes in the GUI
- Added some groundwork for future topology upgrades
- made numerous bug fixes:
- BSM and optical channel components received fixes
- Some residual bugs with GUI usage have been fixed
- Error with typing in Fock quantum manager has been fixed
- Removed support for scipy version 1.11. This is currently causing some issues with qutip.
- Fock state density matrix encoding
- Quantum manager to use fock state density matrix
- Add truncation attribute to quantum managers; Hilbert space dimension is truncation + 1
- Supports error channels based on kraus operators and direct operator action on state
- Hardware models to use fock state density matrix
- Absorptive quantum memory built on AFC
- Interference and direct detection for state tomography
- Moved around and updated some error checking
- Temporarily removed mpich testing for python 3.8 and 3.9 (broken)
- Added some additional error checking to individual quantum states
- This includes additional error checking in the
Photon
class
- This includes additional error checking in the
- The
entangle
method for thePhoton
andFreeQuantumState
classes has been changed tocombine_state
- Updated chapter 1 tutorial in the documentation to match code example
- residual
json5
references in examples
- Bug fixes to the GUI and QKD tests
- Added more scripts for the QCE 2022 conference
- Fixed some bugs in the GUI code for classical communication delay
- Removed
mpi4py
from install instructions on the README
- Moved all parallel execution code to the parallel directory
- Now installed as separate package
psequence
- New setup.py file and makefile specified in parallel folder
- Minimum sequence requirement 0.5.1
- Now installed as separate package
- Parallel scripts are temporarily broken, will need to be rewritten for new structure
- Removed
mpi4py
andpytest-mpi
requirements for main package
- Tutorial materials for IEEE Quantum Week 2022 tutorial session
- Reworked interface for nodes and hardware elements
- New Entity interface for receiving/passing photons
- New method for nodes to handle incoming and outgoing qubits
- Polished observer functionality
- Reworked some protocols to utilize new interface
- Some bug fixes for GUI
- GUI for ease of simulation setup
- Framework for future GUI usage to run simulations
- This feature is currently unimplemented and will not work
- Package dependencies for GUI (dash and plotly)
- Updated version requirement for numpy
- This removes support for Python 3.7 and below
- Bug fixes to tutorial chapter 3
- Typo fixes to docstrings in reservation.py
- Corrected units in jupyter notebook example files
- Corrected units for the optical channel class
- Bug fixes for tutorial scripts
Mirror
class for simple reflection of photons- Sends photon to another node with quantum channel connection to the local node
- Quantum++ package acknowledgement to README
- parallel execution for the kernel module
parallel
directory with useful tools- Python and C++ servers for managing parallel kernel executions
- Many examples for parallel execution
- updated documentation with parallel code
- utility files for generating network config JSON files
Topology
class has been made into a simplified base classRouterNetTopo
andQKDTopo
classes added for specific network types
- tweaked library dependencies
- added
mpi4py
andmpi-pytest
requirements for parallel execution - removed
json5
requirement
- added
- serialization of messages, circuits
- base classes for applications and quantum manager states
- photon loss method
Photon.add_loss()
- moved all random number generation to network nodes
- includes all components and quantum manager functions
- utilizes
Entity.get_generator()
method
- reworked timeline events to handle cross-process events
- most protocols and components now use strings instead of explicit instances for classes
- tweaked process of entangelement and reservation protocols
EventList
structure and interface withTimeline
Timeline
timing display
- quantum state manager for quantum memories
- quantum circuit class (for use with quantum memories)
qutip
library dependency
- rewrite of quantum entanglement class
- change all optical channels to one-way
- logging functionality with
log
module - cached quantum state measurement
- changed all quantum state representations from list to tuple
- event removal system
- example scripts now use
Timeline.seed()
method Timeline
event removal method
- observer functionality for entities
- README file for documentation
- some method-level docstrings
- convert all component constructors from keyword to positional arguments
- change documentation directory from
sphinx
todocs
- push/pop functions for entities and non-stack protocols
- some unnecessary entity attributes