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.
- 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
- 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
- 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
- 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
- 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
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
- Corrected units in jupyter notebook example files
- Corrected units for the optical channel class
- Bug fixes for tutorial scripts
- 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
- 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
- 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
- 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
- Bug fixes to the GUI and QKD tests
- 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
- 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 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 beenn fixed
- Removed support for scipy version 1.11. This is currently causing some issues with qutip.
- 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